>시스템 튜토리얼 >리눅스 >Ansible 동적 인벤토리 소개

Ansible 동적 인벤토리 소개

王林
王林원래의
2024-08-24 10:44:02931검색

Ansible Inventory는 실제로 정적 인벤토리와 동적 인벤토리의 두 부분으로 구성됩니다. 정적 인벤토리는 /etc/ansible/hosts 파일에 지정된 호스트 및 그룹을 참조합니다. 동적 인벤토리는 외부 스크립트를 통해 호스트 목록을 얻고 다음 요구 사항을 따릅니다. ansible ansilbe 명령에 반환된 형식입니다. 이 부분은 일반적으로 CMDB 자산 관리 시스템, zabbix 모니터링 시스템, 크로블 설치 시스템, 클라우드 컴퓨팅 플랫폼 등을 결합하여 호스트 정보를 얻습니다. 호스트 리소스는 일반적으로 동적으로 증가하거나 감소하므로 이러한 시스템은 일반적으로 지능적으로 업데이트됩니다. API를 통해 호스트 목록을 반환하거나 이러한 도구에서 제공하는 라이브러리 쿼리에 액세스할 수 있습니다.

1. 가장 간단한 예

Ansible은 호스트 정보를 동적으로 얻기 위해 스크립트를 수락할 때 json 형식을 지원하므로 여기에서는 다른 시스템에서 가져오지 않고 코드 조각을 통해 호스트 정보 세그먼트를 json 형식으로 인쇄합니다.

으아악

참고:

1. 호스트 부분은 목록 형식이어야 합니다.

2.hostdata 줄에서 "hosts" 부분은 생략 가능하지만, 사용하는 경우 "hosts"여야 하며 'hostlist''와 같은 다른 문자열은 사용할 수 없습니다.

를 생략한 후 다음과 같이 작성할 수 있습니다.

으아악

이 코드를 직접 실행한 결과는 다음과 같습니다.

으아악

위에서 두 개의 호스트 그룹이 정의되었습니다. test1 그룹에는 호스트 10.212.52.252 및 10.212.52.14가 포함되고, test2 그룹에는 호스트 10.212.52.16이 포함됩니다. ansible은 다음 방법을 통해 호출할 수 있습니다:

으아악
2. 복잡한 예

정적 호스트 구성 파일 예에는 아래와 같이 그룹 간을 포함하여 그룹 변수(vars)가 있습니다.

Ansible Dynamic Inventory 介绍

위 부분을 원하는 경우 스크립트를 통해 구현을 가져옵니다. 구현 후 반환되는 json 형식은 다음과 같아야 합니다.

Ansible Dynamic Inventory 介绍

위와 같은 복잡한 반환 형식은 일반적으로 임시 환경에서 사용되지 않습니다. 대부분은 플레이북 파일에 vars 매개변수 전달이 포함되기 때문입니다.

3. 타사 플랫폼에서 호스트 예시를 얻습니다

이 내용은 이 기사의 시작 부분에서 언급되었습니다. Cobbler 및 cmdb와 같은 플랫폼에서 예제를 얻었습니다. ansible의 개시자(작성자)는 Cobbler 소프트웨어의 작성자이기도 하므로 공식 문서에는 Cobbler의 예와 AWS에서 호스트 정보를 얻는 예가 나와 있습니다. 다음과 같습니다:

cobbler에서 호스트 정보 코드 받기

AWS 클라우드에서 호스트 정보 코드 받기

AWS에서 호스트 정보를 얻어 데이터베이스에 저장하는 방법에 대해서는 이전에 관련 장을 작성한 적이 있습니다. 자세한 내용은 이전 블로그 게시물인 AWS 호스트 자산 관리를 참조하세요(이 문서는 순수 Python으로도 구현됨). ).

zabbix api를 통해 호스트 정보 얻기 (8) Zabbix api를 통해 zabbix 플랫폼을 통해 호스트 목록 정보를 얻으려면 이를 참고할 수도 있습니다.

4. 기타

1. ansible -i 매개변수 다음에 호출되는 스크립트는 반드시 py 파일일 필요는 없으며, ​​다른 스크립트의 출력 결과일 수도 있습니다. 으아악

2. -i 매개변수로 지정된 스크립트에는 실행 권한이 있어야 합니다. 그렇지 않으면 다음과 같이 오류가 보고됩니다. 으아악

위 내용은 Ansible 동적 인벤토리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.