OpenStack 자원 검색

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기13분
  • ServiceNow 검색 애플리케이션은 OpenStack 자원 검색 패턴을 사용하여 REST API 호출을 통해 OpenStack 자원을 찾습니다. 이러한 자원을 검색하려면 ServiceNow Store에서 검색 및 서비스 매핑 패턴 애플리케이션을 업데이트해야 합니다.

    검색는 이 패턴을 사용하여 가로 검색을 실행합니다.

    New York 릴리스 이상을 사용하는 Now Platform에서 OpenStack 자원 검색 패턴을 사용할 수 있습니다.

    스토어에서 앱 요청

    ServiceNow Store 웹 사이트를 방문하면 사용 가능한 모든 앱을 확인하고 스토어에 요청을 제출하는 방법에 대한 정보를 참조할 수 있습니다. 출시된 모든 앱의 누적 릴리스 정보는 ServiceNow Store 버전 기록 릴리스 정보를 참조하십시오.

    필요 조건

    OpenStack 요구 사항
    • OpenStack Identity 서비스 카탈로그에서 OpenStack ID 서비스 엔드포인트로 사용되는 접근 URL을 찾습니다. (예: https://<openstack dns>: <port>)
    • 프로젝트 범위 토큰을 생성할 수 있는 권한이 있는 OpenStack User를 구성합니다. 토큰을 생성하려면 도메인 ID, 사용자 이름, 암호를 설정해야 합니다.
    MID Server 요구 사항

    Cloud Discovery 전용 MID 서버를 배포하고 연결합니다.

    전용 MID 서버는 각 OpenStack 서비스를 검색할 수 있도록 OpenStack과 오픈 포트에 접근할 수 있어야 합니다.

    자격 증명
    1. ServiceNow 클라우드 서비스 계정에 대한 자격 증명을 추가합니다.
    2. 생성된 자격 증명을 사용하는 ServiceNow 클라우드 서비스 계정을 생성합니다. 계정 ID 필드에 검색할 OpenStack 프로젝트의 프로젝트 ID를 입력합니다.
    Discovery 일정 생성

    다음 Discovery 일정 중 하나를 구성합니다.

    주:
    Discovery 일정에는 OpenStack 엔드포인트 URL을 포함한 패턴 입력 변수와 일치하는 적합한 매개변수가 있어야 합니다.
    • 클라우드 서비스 계정(NP6, OP1 이상)에 대한 클라우드 자원 Discovery 일정입니다.
    • 서버리스 Discovery 일정(M, NP5, OP0)입니다.
      주:
      다음 패턴에 대해 서버리스 검색이 지원됩니다.
      • OpenStack Validate Service Account
      • OpenStack - Get Logical Datacenters
      • OpenStack - Get Compute Resources
      • OpenStack - Get Identity Resources
      • OpenStack - Get Network Resources
      • OpenStack - Get Load Balancer Resources
      • OpenStack - Get Load Balancer Resources
      • OpenStack - Get Storage Resources

    가로 검색 중 Discovery에서 수집하는 데이터

    검색된 데이터에는 다음과 같은 테이블과 필드가 포함됩니다.

    테이블 및 필드 설명
    가상 머신 인스턴스 [cmdb_ci_vm_instance]
    객체 ID [object_id] 서버 UUID입니다.
    이름 [name] 서버 이름입니다.
    상태 [status] 서버 상태입니다.
    짧은 설명 [short_description] (선택 사항) 서버 설명입니다.
    클라우드 키 쌍 [cmdb_ci_cloud_key_pair]
    객체 ID [object_id] 키 쌍 UUID입니다.
    이름 [name] 참조하는 데 사용되는 키 쌍 이름입니다.
    지문 [finger_print] Keypair 지문입니다.
    클라우드 부하 분산 장치 [cmdb_ci_cloud_load_balancer]
    객체 ID [object_id] 부하 분산 장치 ID입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 자원 설명입니다.
    설치 상태 [install_status] 자원 프로비저닝 상태입니다.
    운영 상태 [operational_status] 자원 운영 상태입니다.
    부하 분산 장치 수신기 [cmdb_ci_lb_listener]
    객체 ID [object_id] 수신기 ID입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    provisioning_status 자원의 프로비저닝 상태입니다.
    protocol_port 자원에 대한 프로토콜 포트 번호입니다.
    protocol 자원에 대한 프로토콜입니다. HTTP, HTTPS, TCP, TERMINATED_HTTPS 또는 UDP 중 하나입니다.
    listener_port
    부하 분산 장치 풀 [cmdb_ci_lb_pool]
    객체 ID [object_id] 풀 ID입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    설치 상태 [install_status] 자원 프로비저닝 상태입니다.
    운영 상태 [operational_status] 자원 운영 상태입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 자원 설명입니다.
    부하 분산 방법 [load_balancing_method] 풀에 대한 부하 분산 알고리즘입니다. LEAST_CONNECTIONS, ROUND_ROBIN, SOURCE_IP 또는 SOURCE_IP_PORT 값 중 하나입니다.
    부하 분산 장치 풀 구성원 [cmdb_ci_lb_pool_member]
    객체 ID [object_id] 풀 구성원 ID 입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    설치 상태 [install_status] 자원 프로비저닝 상태입니다.
    IP 주소 [ip_address] 백엔드 구성원 서버 IP 주소입니다.
    저장소 볼륨 [cmdb_ci_storage_volume]
    객체 ID [object_id] 볼륨 UUID입니다.
    이름 [name] 볼륨 이름입니다.
    상태 [status] 볼륨 상태입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    저장소 유형 [storage_type] 연결된 볼륨 유형입니다.
    저장소 볼륨 스냅샷 [cmdb_ci_storage_vol_snapshot]
    객체 ID [object_id] 볼륨 UUID입니다.
    이름 [name] 볼륨 이름입니다.
    상태 [status] 볼륨 상태입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    이미지 [cmdb_ci_os_template]
    객체 ID [object_id] 사용자 정의 이미지 UUID입니다.
    이름 [name] 이미지 이름입니다. 값은 null(JSON Null 데이터 형식)일 수 있습니다.
    상태 [status] 이미지 상태입니다.
    네트워크 [cmdb_ci_network]
    객체 ID [object_id] 네트워크 ID입니다.
    이름 [name] 사람이 읽을 수 있는 네트워크 이름입니다.
    운영 상태 [operational_status] 네트워크 상태입니다. 가능한 값은 활성, 다운, 빌드 또는 오류입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    클라우드 서브넷 [cmdb_ci_cloud_subnet]
    객체 ID [object_id] 서브넷 ID입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    DHCP 사용 설정 [is_dhcp_enabled] 서브넷에 DHCP가 사용 설정되어 있는지 여부입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    보안 그룹 [cmdb_ci_compute_security_group]
    객체 ID [object_id] 보안 그룹 ID입니다.
    이름 [name] 사람이 읽을 수 있는 자원 이름입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    보안 그룹 규칙 [cmdb_ci_compute_security_group_rule]
    이름 [name] 이 필드의 값은 object_id 필드와 같습니다.
    객체 ID [object_id] 보안 그룹 규칙 ID입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    Ethertype [ethertype] Ethertype입니다. IPv4 또는 IPv6여야 합니다. CIDR에 표시되는 주소가 수신 또는 발신 규칙과 일치해야 합니다.
    포트 범위 최댓값 [port_range_max] 규칙이 적용되는 범위의 마지막 포트입니다. 이 값은 보안 그룹 규칙과 일치하는 범위의 최대 포트 번호입니다.
    • 프로토콜이 TCP, UDP, DCCP, SCTP 또는 UDP-Lite인 경우 이 값은 port_range_min 속성 값 이상이어야 합니다.
    • 프로토콜이 ICMP인 경우 이 값은 ICMP 코드여야 합니다.
    포트 범위 최솟값 [port_range_min] 규칙이 적용되는 범위의 첫 번째 포트입니다. 이 값은 보안 그룹 규칙과 일치하는 범위의 최소 포트 번호입니다.
    • 프로토콜이 TCP, UDP, DCCP, SCTP 또는 UDP-Lite인 경우 이 값은 port_range_max 속성 값 이하여야 합니다.
    • 프로토콜이 ICMP인 경우 이 값은 ICMP 유형이어야 합니다.
    OpenStack 도메인 [cmdb_ci_cloud_openstack_domain]
    객체 ID [object_id] 도메인 ID입니다.
    이름 [name] 도메인 이름입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    사용 설정 [enabled] 도메인이 사용 설정되는지 여부를 정의합니다.
    • True - 도메인이 사용 설정됩니다.
    • False - 도메인이 사용 중지됩니다.
    OpenStack 서비스 [cmdb_ci_cloud_openstack_service]
    객체 ID [object_id] 서비스 ID입니다.
    이름 [name] 서비스 이름입니다.
    짧은 설명 [short_description] (선택 사항) 사람이 읽을 수 있는 설명입니다.
    유형 [type] 서비스 유형입니다. 서비스가 구현하는 API에 대한 설명입니다. 가능한 값은 Compute, ec2, id, image, network 또는 volume입니다.
    카탈로그 사용 설정 [enabled] 서비스 카탈로그에 서비스 및 엔드포인트가 나타나는지 여부를 정의합니다.
    • True - 서비스 카탈로그에 서비스 및 엔드포인트가 나타납니다.
    • False - 서비스 카탈로그에 서비스 및 엔드포인트가 나타나지 않습니다.
    OpenStack 서비스 [cmdb_ci_cloud_openstack_service]
    객체 ID [object_id] 엔드포인트 ID입니다.
    이름 [name] 서비스 이름입니다.
    인터페이스 [interface] 엔드포인트의 가시성을 설명하는 인터페이스 유형입니다. 가능한 값:
    • Public - 공개적으로 사용 가능한 네트워크 인터페이스에서 최종 사용자에게 표시됩니다.
    • Internal - 측정되지 않는 내부 네트워크 인터페이스에서 최종 사용자에게 표시됩니다.
    • Admin - 보안 네트워크 인터페이스에서 관리자에게 표시됩니다.
    카탈로그 사용 설정 [enabled] 서비스 카탈로그에 서비스 및 엔드포인트가 나타나는지 여부를 정의합니다.
    • True - 서비스 카탈로그에 서비스 및 엔드포인트가 나타납니다.
    • False - 서비스 카탈로그에 서비스 및 엔드포인트가 나타나지 않습니다.
    Dependency Views 맵에는 REST API 호출을 통해 사용 가능한 조직에서 검색된 모든 OpenStack 자원 CI와 해당 자원 간의 관계가 표시됩니다.
    그림 1. OpenStack 네트워크 의존성


    그림 2. OpenStack VM Dependency


    CI 관계

    OpenStack 자원 검색을 지원하기 위해 생성되는 관계입니다.
    CI 관계 CI
    cmdb_ci_openstack_datacenter Hosted on::Hosts cmdb_ci_cloud_service_account
    cmdb_ci_cloud_openstack_service Hosted on::Hosts cmdb_ci_cloud_service_account
    cmdb_ci_cloud_openstack_endpoint Use endpoint to::Use endpoint from cmdb_ci_cloud_openstack_service
    cmdb_ci_cloud_openstack_endpoint Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_cloud_openstack_domain Owns::Owned by cmdb_ci_cloud_service_account
    cmdb_ci_network Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_network Contains::Contained by cmdb_ci_cloud_subnet
    cmdb_ci_compute_security_group Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_compute_security_group Contains::Contained by cmdb_ci_compute_security_group_rule
    cmdb_ci_cloud_load_balancer Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_cloud_load_balancer Contains::Contained by cmdb_ci_lb_listener
    cmdb_ci_lb_pool Hosted on::Hosts cmdb_ci_cloud_load_balancer
    cmdb_ci_lb_pool Owns::Owned by cmdb_ci_lb_pool_member
    cmdb_ci_storage_volume Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_vm_instance Uses::Used by cmdb_ci_storage_volume
    cmdb_ci_storage_vol_snapshot Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_storage_vol_snapshot Provisioned from::Provisioned cmdb_ci_storage_volume
    cmdb_ci_vm_instance Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_cloud_key_pair Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_os_template Hosted on::Hosts cmdb_ci_openstack_datacenter
    cmdb_ci_vm_instance Provisioned from::Provisioned cmdb_ci_os_template

    문제 해결

    매핑 프로세스가 예상대로 진행되지 않으면 다음 제안을 따릅니다.
    증상 원인 솔루션
    검색에 실패했습니다. 검색 메시지에는 REST 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. 배포에는 REST 호출 응답을 보내는 CI가 많습니다. MID 서버에서는 mid.sa.cloud.request_timeout 매개변수로 제어되는 시간 제한을 초과하지 않고 REST 호출 응답을 처리할 수 없습니다. 기본적으로 mid.sa.cloud.request_timeout 매개변수는 3만 밀리초로 설정되어 있습니다.
    관련 MID 서버에 대한 이 매개변수의 값을 늘리고 검색을 다시 실행합니다.
    주:
    관련 MID 서버구성 매개변수 관련 목록에 이 매개변수가 표시되지 않으면 추가해야 할 수 있습니다.
    세션 디버그 중에 패턴 디자이너가 실패합니다. 패턴 디자이너 메시지에는 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. 패턴 디버깅 중(검색 중 아님) 시간 초과로 인해 패턴 디자이너가 실패합니다. 기본적으로 sa.debugger.max_timeout 매개변수는 240초로 설정되어 있습니다.

    관련 MID 서버에 대한 이 매개변수의 값을 늘립니다.