1.4. 인벤토리 빌드
인벤토리는 Ansible에 시스템 정보 및 네트워크 위치를 제공하는 중앙 집중식 파일로 관리형 노드를 구성합니다. Ansible은 인벤토리 파일을 사용하여 단일 명령으로 많은 수의 호스트를 관리할 수 있습니다.
사전 요구 사항
- 다음 단계를 완료하려면 하나 이상의 호스트 시스템의 IP 주소 또는 FQDN(정규화된 도메인 이름)이 필요합니다. 설명을 위해 호스트는 컨테이너 또는 가상 시스템에서 로컬로 실행될 수 있습니다.
-
또한 공용 SSH 키가 각 호스트의
authorized_keys파일에 추가되었는지 확인해야 합니다. 다음 절차에 따라 인벤토리를 빌드합니다.
프로세스
-
생성한
ansible_quickstart디렉터리에inventory.ini라는 파일을 생성합니다. 새
[myhosts]그룹을 inventory.ini 파일에 추가하고 각 호스트 시스템의 IP 주소 또는 FQDN(정규화된 도메인 이름)을 지정합니다.[myhosts] 192.0.2.50 192.0.2.51 192.0.2.52
[myhosts] 192.0.2.50 192.0.2.51 192.0.2.52Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음을 사용하여 인벤토리를 확인합니다.
ansible-inventory -i inventory.ini --list다음을 사용하여 인벤토리의
myhosts그룹을 ping합니다.'Ansible myhosts -m ping -i inventory.ini'
사용자 이름이 제어 노드와 관리 노드에서 다른 경우 Ansible 명령으로
-u옵션을 전달합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인벤토리를 성공적으로 구축했습니다.
1.4.1. INI 또는 YAML 형식의 인벤토리 링크 복사링크가 클립보드에 복사되었습니다!
INI 파일 또는 YAML을 사용하여 인벤토리를 생성할 수 있습니다. 위의 예와 같은 대부분의 경우 INI 파일은 적은 수의 관리형 노드에서 쉽게 읽을 수 있습니다. YAML 형식으로 인벤토리를 생성하면 관리 노드 수가 증가함에 따라 합리적인 옵션이 됩니다.
다음은 관리 노드의 고유 이름을 선언하고 ansible_host 필드를 사용하는 inventory.ini 와 동일합니다.
1.4.2. 인벤토리 빌드 팁 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 자동화를 위한 인벤토리를 빌드할 때 다음 모범 사례를 고려하여 호스트를 효율적이고 효과적으로 관리할 수 있습니다.
- 그룹 이름이 의미 있고 고유해야 합니다.
- 그룹 이름도 대소문자를 구분합니다.
- 그룹 이름에 공백, 하이픈 또는 이전 숫자(19th_floor가 아닌 floor_19 사용)를 사용하지 마십시오.
What, Where, When 에 따라 인벤토리의 호스트를 논리적으로 그룹화합니다.
- what: 토폴로지에 따른 그룹 호스트(예: db, web, leaf, spine)입니다.
- 여기서: 지리적 위치별 그룹 호스트(예: 데이터 센터, 지역, 현장, 빌드)입니다.
- When: Group hosts by stage (예: development, test, staging, production)
1.4.3. 메타 그룹 사용 링크 복사링크가 클립보드에 복사되었습니다!
메타 그룹을 사용하여 여러 그룹을 그룹화하여 인벤토리를 구성합니다.
다음 구문을 사용하여 인벤토리에서 여러 그룹을 구성하는 메타 그룹을 생성합니다.
metagroupname: children:
metagroupname:
children:
다음 인벤토리는 데이터 센터의 기본 구조를 보여줍니다. 이 예제 인벤토리에는 모든 네트워크 장치와 네트워크 그룹 및 모든 Cryostat를 포함하는 데이터 센터 메타 그룹을 포함하는 네트워크 메타 그룹이 있습니다.