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

다음을 사용하여 인벤토리를 확인합니다.

ansible-inventory -i inventory.ini --list

다음을 사용하여 인벤토리의 myhosts 그룹을 ping합니다.

ansible myhosts -m ping -i inventory.ini

사용자 이름이 제어 노드와 관리 노드에서 다른 경우 Ansible 명령으로 -u 옵션을 전달합니다.

192.0.2.50 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.0.2.51 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.0.2.52 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

인벤토리를 성공적으로 구축했습니다.

1.4.1. INI 또는 YAML 형식의 인벤토리

INI 파일 또는 YAML에서 인벤토리를 생성할 수 있습니다. 위의 예와 같은 대부분의 경우 INI 파일은 적은 수의 관리형 노드에서 쉽게 읽을 수 있습니다. YAML 형식으로 인벤토리를 생성하면 관리 노드 수가 증가함에 따라 합리적인 옵션이 됩니다.

예를 들어 다음은 관리 노드의 고유 이름을 선언하고 ansible_host 필드를 사용하는 inventory.ini 와 동일합니다.

myhosts:
  hosts:
    my_host_01:
      ansible_host: 192.0.2.50
    my_host_02:
      ansible_host: 192.0.2.51
    my_host_03:
      ansible_host: 192.0.2.52

1.4.2. 인벤토리 빌드 팁

  • 그룹 이름이 의미 있고 고유해야 합니다.
  • 그룹 이름도 대소문자를 구분합니다.
  • 그룹 이름에 공백, 하이픈 또는 이전 숫자(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:

다음 인벤토리는 데이터 센터의 기본 구조를 보여줍니다. 이 예제 인벤토리에는 모든 네트워크 장치와 네트워크 그룹 및 모든 Cryostat를 포함하는 데이터 센터 메타 그룹을 포함하는 네트워크 메타 그룹이 포함되어 있습니다.

leafs:
  hosts:
    leaf01:
      ansible_host: 192.0.2.100
    leaf02:
      ansible_host: 192.0.2.110

spines:
  hosts:
    spine01:
      ansible_host: 192.0.2.120
    spine02:
      ansible_host: 192.0.2.130

network:
  children:
    leafs:
    spines:

webservers:
  hosts:
    webserver01:
      ansible_host: 192.0.2.140
    webserver02:
      ansible_host: 192.0.2.150

datacenter:
  children:
    network:
    webservers:
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.