:term:`Inventory`는 Ansible 인벤토리 파일과 마찬가지로 작업을 시작할 수 있는 호스트 컬렉션입니다. 인벤토리는 그룹으로 나뉘며, 이러한 그룹에는 실제 호스트가 포함됩니다. 그룹은 호스트 이름을 |at|에 입력하거나 지원되는 클라우드 공급자 중 하나에서 수동으로 소싱할 수 있습니다.
참고
사용자 정의 동적 인벤토리 스크립트 또는 컨트롤러에서 아직 기본적으로 지원되지 않는 클라우드 공급자가 있는 경우 이를 컨트롤러로 가져올 수도 있습니다. |ata|의 :ref:`ag_inv_import`을 참조하십시오.
인벤토리 창에는 현재 사용 가능한 인벤토리 목록이 표시됩니다. 인벤토리 목록은 필요에 따라 이름 및 검색된 유형, 조직, 설명, 인벤토리 소유자 및 수정자 또는 추가 기준에 따라 정렬할 수 있습니다.
인벤토리 세부 정보 목록에는 다음이 포함됩니다.
이름: 인벤토리 이름입니다. 인벤토리 이름을 클릭하면 선택한 인벤토리의 속성 화면으로 이동하여 인벤토리의 그룹 및 호스트가 표시됩니다. (이 보기는 아이콘에서도 액세스할 수 있습니다.)
상태
상태는 다음과 같습니다.
성공: 인벤토리 소스 동기화가 성공적으로 완료된 경우
비활성화됨: 인벤토리에 인벤토리 소스가 추가되지 않음
오류: 인벤토리 소스 동기화가 오류와 함께 완료된 경우
다음 예에서는 비활성화됨 상태에 대한 세부 정보가 있는 인벤토리를 포함하여 다양한 상태의 인벤토리를 보여줍니다.
유형: 표준 인벤토리인지 아니면 스마트 인벤토리인지를 나타냅니다.
조직: 인벤토리가 속한 조직입니다.
작업: 선택한 인벤토리에 다음 작업을 수행할 수 있습니다.
참고
다른 작업 항목에서 사용하는 항목을 삭제하면 삭제의 영향을 받는 항목이 나열된 메시지가 열리고, 삭제를 확인하라는 메시지가 표시됩니다. 일부 화면에는 유효하지 않거나 이전에 삭제된 항목이 포함되며 이러한 항목은 실행되지 않습니다. 다음은 이러한 메시지의 예입니다.
스마트 인벤토리는 저장된 검색으로 정의된 호스트 컬렉션으로, 표준 인벤토리처럼 보고 작업 실행과 함께 쉽게 사용할 수 있습니다. 조직 관리자는 조직의 인벤토리에 대한 관리자 권한이 있으며 스마트 인벤토리를 생성할 수 있습니다. 스마트 인벤토리는 ``KIND=smart``로 식별됩니다. 검색에 사용되는 것과 동일한 방법을 사용하여 스마트 인벤토리를 정의할 수 있습니다. ``InventorySource``는 인벤토리와 직접 연결되어 있습니다.
Inventory
모델에는 기본적으로 비어 있지만 스마트 인벤토리에 맞게 설정되는 다음과 같은 새 필드가 있습니다.
host
모델에는 호스트가 연결된 모든 스마트 인벤토리 세트를 나타내는 관련 끝점인 ``smart_inventories``가 있습니다. 멤버십 테이블은 작업이 스마트 인벤토리에 대해 실행될 때마다 업데이트됩니다.
참고
멤버십을 더 자주 업데이트하려면 파일 기반 설정 ``AWX_REBUILD_SMART_MEMBERSHIP``을 **True**(기본값은 False)로 변경하면 됩니다. 이렇게 하면 다음 이벤트에 멤버십이 업데이트됩니다.
새 호스트가 추가됨
기존 호스트가 수정됨(업데이트 또는 삭제됨)
새 스마트 인벤토리가 추가됨
기존 스마트 인벤토리가 수정됨(업데이트 또는 삭제됨)
편집하지 않고도 실제 인벤토리를 볼 수 있습니다.
인벤토리 소스 동기화로 생성된 호스트 및 그룹 이름
편집하거나 이동할 수 없는 그룹 레코드
일반 인벤토리와 마찬가지로 스마트 인벤토리 호스트 끝점(/inventories/N/hosts/
)에서는 호스트를 생성할 수 없습니다. 스마트 인벤토리 관리자는 이름, 설명, 변수, 삭제 기능과 같은 필드를 편집할 수 있는 권한이 있지만 ``host_filter``를 수정할 수 있는 권한은 없습니다. 수정하는 경우 스마트 인벤토리에 포함된 호스트(다른 인벤토리 내에 기본 멤버십이 있음)에 영향을 미치기 때문입니다. ``host_filter``는 스마트 인벤토리 조직 내부의 인벤토리 내 호스트에만 적용됩니다.
``host_filter``를 수정하려면 인벤토리 조직의 조직 관리자여야 합니다. 조직 관리자에게는 이미 조직 내부의 모든 인벤토리에 대한 암시적 《관리자》 액세스 권한이 있으므로 아직 소유하지 않은 권한은 전달되지 않습니다.
스마트 인벤토리의 관리자는 다른 사용자(해당 조직의 관리자도 아님)에게 스마트 인벤토리에 대한 《사용》, 《임시》와 같은 권한을 부여할 수 있습니다. 이 경우 기타 표준 인벤토리와 마찬가지로 해당 역할이 나타내는 작업을 수행할 수 있습니다. 그러나 (다른 인벤토리에 있는) 호스트에 대한 특별한 권한을 부여하는 것은 아닙니다. 스마트 인벤토리 호스트 목록에 있는 호스트는 볼 수는 있지만 호스트에 대한 직접 읽기 권한을 허용하거나 ``/#/hosts/``에 있는 추가 호스트를 보도록 허용하지 않습니다.
경우에 따라 다음을 수정할 수 있습니다.
인벤토리 소스를 사용하여 인벤토리에 수동으로 생성된 새 호스트
인벤토리 소스 동기화로 생성된 그룹에서
호스트 및 그룹의 변수는 변경 가능
스마트 인벤토리와 연결된 호스트는 조회 시 표시됩니다. 스마트 인벤토리 결과에 호스트 이름이 동일한 호스트가 두 개 이상 포함된 경우, 일치하는 호스트 중 하나만 호스트 ID에 따라 정렬되어 스마트 인벤토리의 일부로 포함됩니다.
검색 필터를 사용하여 인벤토리의 호스트를 채울 수 있습니다. 이 기능은 사실 검색 기능을 활용한 것입니다.
작업 템플릿을 실행하는 동안 Ansible 플레이북에서 생성한 사실은 작업별 템플릿에 use_fact_cache=True``를 설정할 때마다 |at|에서 데이터베이스에 저장합니다. 새 사실은 기존 사실과 병합되고 호스트별로 제공됩니다. 이렇게 저장된 사실은 ``GET
쿼리 매개변수 host_filter``를 사용하여 ``/api/v2/hosts
끝점을 통해 호스트를 필터링하는 데 사용할 수 있습니다. 예를 들면 ``/api/v2/hosts?host_filter=ansible_facts__ansible_processor_vcpus=8``입니다.
host_filter
매개변수를 사용하면 다음 작업이 가능합니다.
()을 통한 그룹화
부울 및 연산자 사용
__
관계형 필드에서 관련 필드 참조
__
JSON 키 경로에서 키를 분리하기 위해 ansible_facts에 사용
[]
경로 사양에서 json 배열을 표시하는 데 사용
""
값에 공백이 필요한 경우 값에 사용 가능
``host_filter``에 《classic》 Django 쿼리가 포함될 수 있음
예:
/api/v2/hosts/?host_filter=name=localhost
/api/v2/hosts/?host_filter=ansible_facts__ansible_date_time__weekday_number="3"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor[]="GenuineIntel"
/api/v2/hosts/?host_filter=ansible_facts__ansible_lo__ipv6[]__scope="host"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor_vcpus=8
/api/v2/hosts/?host_filter=ansible_facts__ansible_env__PYTHONUNBUFFERED="true"
/api/v2/hosts/?host_filter=(name=localhost or name=database) and (groups__name=east or groups__name="west coast") and ansible_facts__an
호스트 이름, 그룹 이름, Ansible 사실로 ``host_filter``를 검색할 수 있습니다.
그룹 검색 형식은 다음과 같습니다.
groups.name:groupA
사실 검색 형식은 다음과 같습니다.
ansible_facts.ansible_fips:false
호스트 이름과 호스트 설명으로 구성된 스마트 검색을 수행할 수도 있습니다.
host_filter=name=my_host
host_filter``의 검색어가 문자열 유형인 경우 숫자(예: ``2.66
) 또는 JSON 키워드(예: null
, true
또는 false
) 값을 유효하게 만들려면 컨트롤러에서 실수로 문자열이 아닌 값으로 구문 분석하지 않도록 값을 큰따옴표로 묶습니다.
host_filter=ansible_facts__packages__dnsmasq[]__version="2.66"
스마트 인벤토리를 생성할 때 호스트 필터를 정의하는 데 ``ansible_facts``를 사용하려면 다음 단계를 수행합니다.
새 스마트 인벤토리 만들기 화면*에서 **Smart 호스트 필터* 필드 옆에 있는 버튼을 클릭하여 이 인벤토리의 호스트를 필터링하는 팝업 창을 엽니다.
검색 팝업 창에서 검색 기준을 이름 에서 고급**으로 변경하고 **키 필드에서 **ansible_facts**를 선택합니다.
ansible 팩트를 추가하려면 다음을 수행합니다.
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor[]="GenuineIntel"
검색 필드에 ansible_processor[]="GenuineIntel"
(값 앞에 추가 공백 또는 __
없음)을 입력하고 [Enter] 를 누릅니다.
지정된 ansible 팩트에 대한 결과 검색 기준이 창의 아래 부분에 채워집니다.
선택**을 클릭하여 **Smart 호스트 필터 필드에 추가합니다.
저장 을 클릭하여 새 스마트 인벤토리를 저장합니다.
새 스마트 인벤토리의 세부 정보 탭이 열리고 Smart 호스트 필터 필드에 지정된 ansible 팩트가 표시됩니다.
세부 정보 보기에서 편집**을 클릭하고 기존 필터를 지우거나 기존 필터를 지우거나 새 필터를 추가하여 **Smart 호스트 필터 필드를 편집할 수 있습니다.
인벤토리 업데이트에서는 동적으로 생성되어 각 인벤토리 플러그인에서 구문 분석하는 YAML 파일을 사용합니다. |atversion|에서 사용자는 다음 인벤토리 소스 모두에 대해 인벤토리 소스 ``source_vars``를 통해 컨트롤러에 새 스타일 인벤토리 플러그인 구성을 직접 제공할 수 있습니다.
인벤토리 소스에 대해 새로 생성된 구성에는 기본 플러그인 구성 값이 포함됩니다. 3.8에서 새로 생성한 인벤토리 소스가 3.7 소스의 출력과 일치하도록 하려면 해당 소스에 특정 구성 값 세트를 적용해야 합니다. 이전 버전과의 호환성을 보장하기 위해 컨트롤러는 이러한 소스 각각에 《템플릿》을 사용하여 인벤토리 플러그인의 출력을 기존 형식으로 강제 실행합니다. 새 스타일 인벤토리 플러그인 출력으로 마이그레이션하는 데 도움이 되는 각 소스 및 해당 템플릿은 이 가이드의 지원되는 인벤토리 플러그인 템플릿 섹션을 참조하십시오.
최상위 키로 plugin: foo.bar.baz``가 포함된 ``source_vars``는 ``InventorySource
소스를 기반으로 런타임 시 적절한 정규화된 인벤토리 플러그인 이름으로 교체됩니다. 예를 들어, ``InventorySource``에 대해 ec2를 선택하면 런타임 시 플러그인이 ``amazon.aws.aws_ec2``로 설정됩니다.
새 인벤토리를 추가하려면 여러 구성 요소가 필요합니다.
새 인벤토리 또는 스마트 인벤토리를 생성하려면 다음을 수행합니다.
추가 버튼을 클릭하고 생성할 인벤토리 유형을 선택합니다.
인벤토리 유형은 생성 양식 상단에서 확인할 수 있습니다.
다음 필드에 적절한 세부 정보를 입력합니다.
이름: 이 인벤토리에 적절한 이름을 입력합니다.
설명: 임의의 설명을 적절하게 입력합니다(선택 사항).
조직: 필수 항목입니다. 사용 가능한 조직 중에서 선택합니다.
**스마트 호스트 필터**(스마트 인벤토리에만 적용됨): 버튼을 클릭하면 이 인벤토리에 대한 호스트를 필터링하는 별도의 동적 호스트 창이 열립니다. 해당 옵션은 선택한 조직에 따라 다릅니다.
필터는 태그가 해당 이름을 포함하는 특정 호스트를 필터링하는 데 사용된다는 점에서 태그와 유사합니다. 따라서 스마트 호스트 필터 필드를 채우려면 실제로 호스트 자체를 선택하는 대신 원하는 호스트가 포함된 태그를 지정합니다. 검색 필드에 태그를 입력하고 [Enter] 키를 누릅니다. 필터는 대소문자를 구분합니다. 자세한 내용은 스마트 호스트 필터 섹션을 참조하십시오.
인스턴스 그룹: 버튼을 클릭하면 별도의 창이 열립니다. 이 인벤토리에서 실행할 인스턴스 그룹을 선택합니다. 목록이 긴 경우 검색을 사용하여 옵션 범위를 좁힙니다.
변수: 이 인벤토리의 모든 호스트에 적용할 변수 정의 및 값입니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다.
완료되면 **저장**을 클릭합니다.
새 인벤토리를 저장하고 나면 인벤토리 유형에 해당하는 경우 권한, 그룹, 호스트, 소스 구성을 진행하고 완료된 작업을 볼 수 있습니다. 자세한 지침은 다음 섹션을 참조하십시오.
액세스 탭에서 추가 버튼을 클릭합니다.
추가할 사용자 또는 팀을 선택하고 **다음**을 클릭합니다.
이름 옆에 있는 체크박스를 클릭하여 목록에서 하나 이상의 사용자 또는 팀을 선택하여 멤버로 추가하고 **다음**을 클릭합니다.
이 예에서는 두 명의 사용자를 추가하도록 선택했습니다.
선택한 사용자 또는 팀에 부여할 역할을 선택합니다. 전체 역할 목록을 보려면 아래로 스크롤하십시오. 리소스에 따라 다양한 옵션을 사용할 수 있습니다.
저장 버튼을 클릭하여 선택한 사용자 또는 팀에 역할을 적용하고 멤버로 추가합니다.
사용자/팀 추가 창이 닫히고 각 사용자 및 팀에 할당된 역할이 업데이트되어 표시됩니다.
특정 사용자의 역할을 제거하려면 리소스 옆에 있는 연결 해제(x) 버튼을 클릭합니다.
그러면 연결을 해제할지 묻는 확인 대화 상자가 열립니다.
인벤토리는 호스트 및 기타 그룹이 포함될 수 있는 그룹과 호스트로 나뉩니다. 그룹은 표준 인벤토리에만 적용할 수 있으며 스마트 인벤토리를 통해 직접 구성할 수 없습니다. 표준 인벤토리와 함께 사용되는 호스트를 통해 기존 그룹을 연결할 수 있습니다. 표준 인벤토리에는 다음과 같은 몇 가지 작업을 수행할 수 있습니다.
새 그룹 생성
새 호스트 생성
선택한 인벤토리에서 명령 실행
인벤토리 속성 편집
그룹 및 호스트에 대한 활동 스트림 보기
인벤토리 빌드에 대한 도움 받기
참고
인벤토리 소스는 그룹과 연결되어 있지 않습니다. 생성된 그룹은 최상위 수준이고 여전히 하위 그룹이 있을 수 있으며, 생성된 이 모든 그룹에 호스트가 있을 수 있습니다.
인벤토리에 대한 새 그룹을 생성하려면 다음을 수행합니다.
추가 버튼을 클릭하여 그룹 생성 창을 엽니다.
필수 및 선택 필드에 적절한 세부 정보를 입력합니다.
이름: (필수)
설명: 임의의 설명을 적절하게 입력합니다(선택 사항).
변수: 이 그룹의 모든 호스트에 적용할 정의 및 값을 입력합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다.
완료되면 **저장**을 클릭합니다.
그룹 내에 그룹을 추가하려면 다음을 수행합니다.
관련 그룹 탭을 클릭합니다.
추가 버튼을 클릭하고 구성에 이미 존재하는 그룹을 추가할지 아니면 새 그룹을 생성할지 선택합니다.
새 그룹을 생성하는 경우 필수 및 선택 필드에 적절한 세부 정보를 입력합니다.
이름: (필수)
설명: 임의의 설명을 적절하게 입력합니다(선택 사항).
변수: 이 그룹의 모든 호스트에 적용할 정의 및 값을 입력합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다.
완료되면 **저장**을 클릭합니다.
그룹 생성 창이 닫히고 새로 생성된 그룹이 생성된 해당 그룹과 연결된 그룹 목록에 항목으로 표시됩니다.
기존 그룹을 추가하도록 선택하면 사용 가능한 그룹이 별도의 선택 창에 표시됩니다.
그룹을 선택하면 해당 그룹과 연결된 그룹 목록에 항목으로 표시됩니다.
5. To configure additional groups and hosts under the subgroup, click on the name of the subgroup from the list of groups and repeat the same steps described in this section.
목록 보기는 모든 인벤토리 그룹을 한 번에 표시하거나 루트 그룹만 표시하도록 필터링할 수 있습니다. 다른 그룹의 하위 집합이 아닌 인벤토리 그룹은 루트 그룹으로 간주됩니다.
컨트롤러에서 하위 그룹 또는 호스트와 같은 종속 항목을 찾기 때문에 종속 항목에 대한 걱정 없이 하위 그룹을 삭제할 수도 있습니다. 이러한 항목이 존재하는 경우 루트 그룹과 해당 하위 그룹 그리고 호스트를 모두 삭제할지 또는 하위 그룹이 해당 호스트와 함께 최상위 인벤토리 그룹이 되도록 하위 그룹을 승격할지 선택할 수 있는 확인 대화 상자가 표시됩니다.
인벤토리뿐만 아니라 그룹 및 그룹 내의 그룹에 대한 호스트를 구성할 수 있습니다. 호스트를 구성하려면 다음을 수행합니다.
호스트 탭을 클릭합니다.
추가 버튼을 클릭하고 구성에 이미 존재하는 호스트를 추가할지 아니면 새 호스트를 생성할지 선택합니다.
새 호스트를 생성하는 경우 버튼을 선택하여 작업을 실행하는 동안 이 호스트를 포함할지의 여부를 지정합니다.
필수 및 선택 필드에 적절한 세부 정보를 입력합니다.
호스트 이름: 필수
설명: 임의의 설명을 적절하게 입력합니다(선택 사항).
변수: 이 그룹의 모든 호스트에 적용할 정의 및 값을 입력합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다.
완료되면 **저장**을 클릭합니다.
호스트 생성 창이 닫히고 새로 생성된 호스트가 생성된 해당 그룹과 연결된 호스트 목록에 항목으로 표시됩니다.
기존 호스트를 추가하도록 선택하면 사용 가능한 호스트가 별도의 선택 창에 표시됩니다.
호스트를 선택하면 해당 그룹과 연결된 호스트 목록에 항목으로 표시됩니다. 호스트를 선택하고 연결 해제 버튼을 클릭하여 이 화면에서 호스트를 연결 해제할 수 있습니다.
참고
이 화면에서 임시 명령을 실행할 수도 있습니다. 자세한 내용은 :ref:`ug_inventories_run_ad_hoc`을 참조하십시오.
6. To configure additional groups for the host, click on the name of the host from the list of hosts.
그러면 선택한 호스트의 세부 정보 탭이 열립니다.
그룹 탭을 클릭하여 호스트에 대한 그룹을 구성합니다.
추가 버튼을 클릭하여 호스트를 기존 그룹과 연결합니다.
사용 가능한 그룹이 별도의 선택 창에 나타납니다.
![]()
호스트와 연결할 그룹을 선택하려면 클릭하고 **저장**을 클릭합니다.
그룹을 연결하면 해당 호스트와 연결된 그룹 목록에 항목으로 표시됩니다.
호스트가 작업을 실행하는 데 사용된 경우 호스트의 완료된 작업 탭에서 해당 작업에 대한 세부 정보를 보고 **펼치기**를 클릭하여 각 작업에 대한 세부 정보를 볼 수 있습니다.
인벤토리 소스는 그룹과 연결되어 있지 않습니다. 생성된 그룹은 최상위 수준이고 여전히 하위 그룹이 있을 수 있으며, 생성된 이 모든 그룹에 호스트가 있을 수 있습니다. 인벤토리에 소스를 추가하는 작업은 표준 인벤토리에만 적용됩니다. 스마트 인벤토리는 연결된 표준 인벤토리에서 소스를 상속합니다. 인벤토리 소스를 구성하려면 다음을 수행합니다.
소스를 추가하려는 인벤토리에서 소스 탭을 클릭합니다.
추가 버튼을 클릭합니다.
그러면 소스 생성 창이 열립니다.
필수 및 선택 필드에 적절한 세부 정보를 입력합니다.
이름: (필수)
설명: 임의의 설명을 적절하게 입력합니다(선택 사항).
실행 환경: 필요한 경우 인벤토리 가져오기를 실행할 실행 환경의 이름을 검색(
)하거나 입력합니다. 실행 환경 빌드에 대한 자세한 내용은 Execution Environments 섹션을 참조하십시오.
소스: 인벤토리의 소스를 선택합니다. 각 소스에 대한 자세한 내용과 적절한 정보를 입력하는 방법에 대한 세부 사항은 인벤토리 소스 섹션을 참조하십시오.
선택한 :ref:`inventory source <ug_inventory_sources>`에 대한 필수 정보를 작성한 후에는 필요에 따라 상세 정보 표시, 호스트 필터, 변수와 같은 기타 일반 매개변수를 지정할 수 있습니다.
참고
지역, 인스턴스 필터, 그룹별로만 필드는 automation controller 3.8에서 제거되었습니다.
상세 정보 표시 드롭다운 메뉴에서 모든 인벤토리 소스 업데이트 작업에 대한 적절한 출력 수준을 선택합니다.
호스트 필터 필드를 사용하여 컨트롤러로 가져올 일치하는 호스트 이름만 지정합니다.
**활성화된 변수**에서 컨트롤러가 지정된 호스트 변수 사전에서 활성화됨 상태를 검색하도록 지정합니다. 활성화된 변수는 〈foo.bar’처럼 점 표기법을 사용하여 지정할 수 있습니다. 이 경우 조회는 ``from_dict.get(〈foo〉, {}).get(〈bar〉, default)``와 같이 중첩된 dict로 이동합니다.
활성화된 변수 필드에서 호스트 변수 사전을 지정한 경우 가져오기에 사용할 값을 제공할 수 있습니다. 예를 들어 enabled_var='status.power_state'
및 ``enabled_value=〉powered_on〉``의 호스트 변수가 다음과 같은 경우 호스트가 활성화됨으로 표시됩니다.
모든 클라우드 인벤토리 소스에는 다음과 같은 업데이트 옵션이 있습니다.
덮어쓰기: 선택 시 외부 소스에 이전에 존재했지만 현재는 제거된 모든 호스트와 그룹이 컨트롤러 인벤토리에서 제거됩니다. 인벤토리 소스에서 관리하지 않은 호스트 및 그룹은 수동으로 생성한 다음 그룹으로 승격되거나 승격할 수동으로 생성한 그룹이 없는 경우 인벤토리의 《전체》 기본 그룹에 남게 됩니다.
선택 해제하면 외부 소스에서 찾을 수 없는 로컬 하위 호스트 및 그룹은 인벤토리 업데이트 프로세스에 의해 변경되지 않은 상태로 유지됩니다.
변수 덮어쓰기: 이 옵션을 선택하면 하위 그룹 및 호스트의 모든 변수가 제거되고 외부 소스에 있는 변수로 교체됩니다. 선택하지 않으면 병합이 수행되어 로컬 변수와 외부 소스에 있는 변수를 병합합니다.
시작 시 업데이트: 이 인벤토리를 사용하여 작업을 실행할 때마다 작업을 실행하기 전에 선택한 소스에서 인벤토리를 새로 고칩니다. 인벤토리에서 동기화할 수 있는 것보다 작업이 더 빨리 생성되는 경우 작업 오버플로를 방지하기 위해 이 옵션을 선택하면 **캐시 제한 시간**을 구성하여 특정 시간 동안 이전 인벤토리 동기화를 캐시할 수 있습니다.
《시작 시 업데이트》 설정은 프로젝트와 인벤토리의 종속 시스템을 나타내며, 두 작업이 동시에 실행되는 것을 특별히 차단하지는 않습니다. 캐시 제한 시간을 지정하면 두 번째 작업의 종속 항목이 생성되고 첫 번째 작업에서 생성한 프로젝트와 인벤토리 업데이트를 사용합니다. 그런 다음 두 작업 모두 해당 프로젝트 및/또는 인벤토리 업데이트가 완료될 때까지 기다린 후 계속합니다. 서로 다른 작업 템플릿의 경우 시스템에 수행할 용량이 있으면 동시에 시작하여 실행할 수 있습니다. 동적 인벤토리 소스에 컨트롤러의 프로비저닝 콜백 기능을 사용하려면 인벤토리 그룹에 대해 《시작 시 업데이트》를 설정해야 합니다.
항목 및 선택을 검토하고 완료되면 **저장**을 클릭합니다. 그러면 스케줄 및 알림과 같은 추가 세부 정보를 구성할 수 있습니다.
이 인벤토리 소스와 관련된 스케줄을 구성하려면 스케줄 탭을 클릭합니다.
스케줄이 이미 설정되어 있는 경우 스케줄 기본 설정을 검토, 편집 또는 활성화/비활성화합니다.
스케줄이 설정되지 않은 경우 :ref:`ug_scheduling`에서 자세한 내용을 참조하십시오.
참고
알림 탭은 새로 생성된 소스를 저장한 후에만 표시됩니다.
소스에 대한 알림을 구성하려면 알림 탭을 클릭합니다.
항목 및 선택을 검토하고 완료되면 **저장**을 클릭합니다.
소스를 정의하면 해당 인벤토리와 연결된 소스 목록에 항목으로 표시됩니다. 소스 탭에서는 단일 소스에서 동기화를 수행하거나 한 번에 모두 동기화할 수 있습니다. 동기화 프로세스 스케줄링이나 소스를 편집하고 삭제하는 등 추가 작업을 수행할 수 있습니다.
호스트를 입력할 수 있는 인벤토리 유형과 일치하는 소스를 선택합니다.
프로젝트에서 소싱된 인벤토리는 연결된 프로젝트의 SCM 유형을 사용한다는 것을 의미합니다. 예를 들어, 프로젝트의 소스가 GitHub에 있는 경우 인벤토리에서 동일한 소스를 사용합니다.
프로젝트 소싱 인벤토리를 구성하려면 소스 필드에서 **프로젝트에서 소싱**을 선택합니다.
소스 생성 창이 확장되어 추가 필드가 표시됩니다. 다음 세부 정보를 입력합니다.
인증 정보: 필요한 경우 이 소스에 사용할 인증 정보를 지정합니다.
프로젝트: 필수 항목입니다. 이 인벤토리에서 소스로 사용 중인 프로젝트를 지정합니다.
버튼을 클릭하여 프로젝트 목록에서 선택합니다. 목록이 긴 경우 검색을 사용하여 옵션 범위를 좁힙니다.
인벤토리 파일: 필수 항목입니다. 소싱된 프로젝트와 관련된 인벤토리 파일을 선택합니다. 아직 채워지지 않은 경우 드롭다운 메뉴 내의 입력란에 입력하여 관련 없는 파일 유형을 필터링할 수 있습니다. 플랫 파일 인벤토리 외에도 디렉터리 또는 인벤토리 스크립트를 가리킬 수 있습니다.
![]()
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
In addition to the update options available for cloud inventory sources, you can specify whether or not to update on project changes. Check the Update on Project Update option to refresh the inventory from the selected source after every project update where the SCM revision changes before executing job tasks. For more detail, refer to 프로젝트 업데이트 시 업데이트 in the Automation Controller Administration Guide.
사용자 정의 인벤토리 스크립트에 전달하기 위해 필요한 경우 환경 변수 필드에서 환경 변수를 설정할 수 있습니다. 인벤토리 스크립트를 소스 제어에 배치한 다음 프로젝트에서 실행할 수도 있습니다. 자세한 내용은 |ata|의 :ref:`ag_inv_import`를 참조하십시오.
참고
SCM에서 사용자 정의 인벤토리 스크립트를 실행하는 경우 업스트림 소스 제어의 스크립트에 실행 비트(즉, chmod +x
)를 설정해야 합니다. 그러지 않으면 실행 시 컨트롤러에서 [Errno 13] Permission denied
오류가 발생합니다.
AWS EC2 소싱 인벤토리를 구성하려면 소스 필드에서 **Amazon EC2**를 선택합니다.
소스 생성 창이 확장되어 추가 필드가 표시됩니다. 다음 세부 정보를 입력합니다.
인증 정보: 필요한 경우 기존 AWS 인증 정보에서 선택합니다(자세한 내용은 인증 정보 참조).
컨트롤러가 IAM 역할이 할당된 EC2 인스턴스에서 실행 중인 경우 인증 정보가 생략될 수 있으며 인스턴스 메타데이터의 보안 인증 정보가 대신 사용됩니다. IAM 역할을 사용하는 방법에 대한 자세한 내용은 `IAM_Roles_for_Amazon_EC2_documentation_at_Amazon <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam- roles-for-amazon-ec2.html>`_을 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
aws_ec2
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `aws_ec2 inventory plugin documenation <https://cloud.redhat.com/ansible/automation-hub/repo/published/amazon/aws/content/inventory/aws_ec2>`__를 참조하십시오.
참고
include_filters``만 사용하는 경우 AWS 플러그인은 항상 모든 호스트를 반환합니다. 이를 적절하게 사용하려면 ``or``의 첫 번째 조건이 ``filters``에 있고 나머지 ``OR
조건을 include_filters
목록에 빌드해야 합니다.
Google 소싱 인벤토리를 구성하려면 소스 필드에서 **Google Compute Engine**을 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 GCE 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
gcp_compute
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 ** 소스 변수** 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `gcp_compute inventory plugin documenation <https://cloud.redhat.com/ansible/automation-hub/repo/published/google/cloud/content/inventory/gcp_compute>`__를 참조하십시오.
Azure Resource Manager 소싱 인벤토리를 구성하려면 소스 필드에서 **Microsoft Azure Resource Manager**를 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 Azure 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
azure_rm
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `azure_rm inventory plugin documentation <https://cloud.redhat.com/ansible/automation-hub/repo/published/azure/azcollection/content/inventory/azure_rm>`__을 참조하십시오.
VMWare 소싱 인벤토리를 구성하려면 소스 필드에서 **VMware vCenter**를 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 VMware 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
vmware_inventory
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `vmware_inventory inventory plugin <https://github.com/ansible-collections/community.vmware/blob/main/plugins/inventory/vmware_vm_inventory.py>`__을 참조하십시오.
Ansible 2.9부터는 VMWare 속성이 소문자에서 낙타 대문자로 변경되었습니다. 컨트롤러에서는 최상위 키에 대한 별칭을 제공하지만 중첩 속성의 소문자 키는 중단되었습니다. Ansible 2.9부터 지원되는 유효한 속성 목록은 GitHub의 기본 `documentation for hostvars from VMWare inventory imports <https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/scenario_guides/vmware_scenarios/vmware_inventory_vm_attributes.rst>`_를 참조하십시오.
Red Hat Satellite 소싱 인벤토리를 구성하려면 소스 필드에서 **Red Hat Satellite**를 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 Satellite 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
소스 변수 필드를 사용하여 Foreman 인벤토리 소스에서 사용하는 매개변수를 지정합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 Ansible 설명서의 `theforeman.foreman.foreman – Foreman inventory source <https://docs.ansible.com/ansible/latest/collections/theforeman/foreman/foreman_inventory.html>`_를 참조하십시오.
컨트롤러 인벤토리에 Satellite의 《관련 그룹》이 없는 문제가 발생하면 인벤토리 소스에 이러한 변수를 정의해야 할 수 있습니다. 자세한 내용은 |atir|에 있는 :ref:`ir_plugin_satellite`용 인벤토리 플러그인 템플릿 예제를 참조하십시오.
"no foreman.id" variable(s) when syncing the inventory
메시지가 표시되면 Red Hat 고객 포털 (https://access.redhat.com/solutions/5826451)의 솔루션을 참조하십시오. 전체 문서에 액세스하려면 고객 인증 정보로 로그인해야 합니다.
Red Hat Insights 소싱 인벤토리를 구성하려면 소스 필드에서 **Red Hat Insights**를 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 Insights 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
insights
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `insights inventory plugin <https://cloud.redhat.com/ansible/automation-hub/repo/published/redhat/insights/content/inventory/insights>`__을 참조하십시오.
OpenStack 소싱 인벤토리를 구성하려면 소스 필드에서 **OpenStack**을 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 OpenStack 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
openstack
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 Ansible 컬렉션 설명서의 `openstack inventory plugin <https://docs.ansible.com/ansible/latest/collections/openstack/cloud/openstack_inventory.html>`_을 참조하십시오.
Red Hat Virtualization 소싱 인벤토리를 구성하려면 소스 필드에서 **Red Hat Virtualization**을 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 Red Hat Virtualization 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
ovirt
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `ovirt inventory plugin <https://cloud.redhat.com/ansible/automation-hub/repo/published/redhat/rhv/content/inventory/ovirt>`__을 참조하십시오.
참고
Red Hat Virtualization(ovirt) 인벤토리 소스 요청은 기본적으로 안전합니다. 이 기본 설정을 변경하려면 /api/v2/inventory_sources/N/
끝점에 있는 인벤토리 소스의 API 세부 정보에서만 사용할 수 있는 source_variables``에서 ``ovirt_insecure
키를 **True**로 설정합니다.
automation controller 소싱 인벤토리를 구성하려면 소스 필드에서 **Red Hat Ansible Automation Platform**을 선택합니다.
소스 생성 창이 확장되어 필수 인증 정보 필드가 표시됩니다. 기존 Ansible Automation Platform 인증 정보에서 선택합니다. 자세한 내용은 :ref:`ug_credentials`를 참조하십시오.
필요한 경우 adding a source 기본 절차에 설명된 대로 상세 정보 표시, 호스트 필터, 활성화된 변수/값, 업데이트 옵션을 지정할 수 있습니다.
controller
인벤토리 플러그인에서 사용하는 변수를 덮어쓰려면 소스 변수 필드를 사용합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다. 이러한 변수에 대한 자세한 설명은 `controller inventory plugin <https://cloud.redhat.com/ansible/automation-hub/repo/published/ansible/controller/content/inventory/controller>`__을 참조하십시오(Red Hat 고객 로그인 필요).
사용자 정의 인벤토리 스크립트 API를 제거해도 스크립트는 여전히 데이터베이스에 저장됩니다. 이 섹션에 설명된 명령을 사용하면 나중에 소스 제어를 확인하는 데 적합한 형식으로 스크립트를 복구할 수 있습니다. 사용법은 다음과 같습니다.
$ awx-manage export_custom_scripts --filename=my_scripts.tar
Dump of old custom inventory scripts at my_scripts.tar
출력 사용:
$ mkdir my_scripts
$ tar -xf my_scripts.tar -C my_scripts
스크립트의 이름은 ``_<pk>__<name>``입니다. 이는 프로젝트 폴더에 사용되는 이름 지정 체계입니다.
$ ls my_scripts
_10__inventory_script_rawhook _19__ _30__inventory_script_listenhospital
_11__inventory_script_upperorder _1__inventory_script_commercialinternet45 _4__inventory_script_whitestring
_12__inventory_script_eastplant _22__inventory_script_pinexchange _5__inventory_script_literaturepossession
_13__inventory_script_governmentculture _23__inventory_script_brainluck _6__inventory_script_opportunitytelephone
_14__inventory_script_bottomguess _25__inventory_script_buyerleague _7__inventory_script_letjury
_15__inventory_script_wallisland _26__inventory_script_lifesport _8__random_inventory_script_
_16__inventory_script_wallisland _27__inventory_script_exchangesomewhere _9__random_inventory_script_
_17__inventory_script_bidstory _28__inventory_script_boxchild
_18__p _29__inventory_script_wearstress
각 파일에는 스크립트가 포함되어 있습니다. 스크립트는 ``bash/python/ruby/more``일 수 있으므로 확장이 포함되지 않습니다. 모두 직접 실행 가능합니다(스크립트가 작동한다고 가정). 스크립트를 실행하면 인벤토리 데이터가 덤프됩니다.
$ ./my_scripts/_11__inventory_script_upperorder
{"group_\ud801\udcb0\uc20e\u7b0e\ud81c\udfeb\ub12b\ub4d0\u9ac6\ud81e\udf07\u6ff9\uc17b": {"hosts":
["host_\ud821\udcad\u68b6\u7a51\u93b4\u69cf\uc3c2\ud81f\uddbe\ud820\udc92\u3143\u62c7",
"host_\u6057\u3985\u1f60\ufefb\u1b22\ubd2d\ua90c\ud81a\udc69\u1344\u9d15",
"host_\u78a0\ud820\udef3\u925e\u69da\ua549\ud80c\ude7e\ud81e\udc91\ud808\uddd1\u57d6\ud801\ude57",
"host_\ud83a\udc2d\ud7f7\ua18a\u779a\ud800\udf8b\u7903\ud820\udead\u4154\ud808\ude15\u9711",
"host_\u18a1\u9d6f\u08ac\u74c2\u54e2\u740e\u5f02\ud81d\uddee\ufbd6\u4506"], "vars": {"ansible_host": "127.0.0.1", "ansible_connection":
"local"}}}
``ansible-inventory``로 기능을 확인할 수 있습니다. 이 경우 동일한 데이터를 제공하지만 다시 포맷해야 합니다.
$ ansible-inventory -i ./my_scripts/_11__inventory_script_upperorder --list --export
위 예에서 my_scripts``로 ``cd``한 후 ``git init
명령을 실행하고 원하는 스크립트를 추가하여 소스 제어에 푸시한 다음 automation controller 사용자 인터페이스에서 SCM 인벤토리 소스를 생성할 수 있습니다.
사용자 정의 인벤토리 스크립트를 동기화하거나 사용하는 방법에 대한 자세한 내용은 |ata|의 :ref:`ag_inv_import`을 참조하십시오.
임시 명령을 실행하려면 다음을 수행합니다.
호스트 또는 그룹 목록에서 인벤토리 소스를 선택합니다. 인벤토리 소스는 단일 그룹 또는 호스트, 선택된 여러 호스트 또는 선택된 여러 그룹일 수 있습니다.
명령 실행 버튼을 클릭합니다.
실행 명령 창이 열립니다.
다음 필드에 대한 세부 정보를 입력합니다.
모듈: |at|에서 명령 실행을 지원하는 모듈 중 하나를 선택합니다.
command |
apt_repository |
mount |
win_service |
shell |
apt_rpm |
ping |
win_updates |
yum |
service |
selinux |
win_group |
apt |
group |
setup |
win_user |
apt_key |
user |
win_ping |
인수: 선택한 모듈과 함께 사용할 인수를 제공합니다.
제한: 인벤토리의 호스트를 대상으로 지정하는 데 사용되는 제한을 입력합니다. 인벤토리의 모든 호스트를 대상으로 지정하려면 all
또는 ``*``를 입력하거나 필드를 비워 두십시오. 그러면 시작 버튼을 클릭하기 전에 이전 보기에서 선택한 모든 항목이 자동으로 채워집니다.
머신 인증 정보: 명령을 실행하기 위해 원격 호스트에 액세스할 때 사용할 인증 정보를 선택합니다. Ansbile에서 원격 호스트에 로그인하는 데 필요한 사용자 이름과 SSH 키 또는 암호가 포함된 인증 정보를 선택합니다.
상세 정보 표시: 표준 출력에 대한 상세 정보 표시 수준을 선택합니다.
포크: 필요한 경우 명령을 실행하는 동안 사용할 병렬 또는 동시 프로세스 수를 선택합니다.
변경 사항 표시: Ansible 변경 사항을 표준 출력에 표시하려면 선택합니다. 기본값은 OFF입니다.
권한 에스컬레이션 활성화: 활성화하면 플레이북이 관리자 권한으로 실행됩니다. 이 설정은 --become
옵션을 ansible
명령에 전달하는 것과 같습니다.
추가 변수: 이 인벤토리를 실행할 때 적용할 추가 명령행 변수를 제공합니다. JSON 또는 YAML 구문을 사용하여 변수를 입력합니다. 둘 사이를 전환하려면 라디오 버튼을 사용합니다.
다음**을 클릭하여 사용할 인증 정보를 선택하고 **시작 버튼을 클릭합니다.
모듈의 작업 창 출력 탭에 결과가 표시됩니다.