10.4. 동적 인벤토리 스크립트 실행

director는 OpenStack Platform 환경에서 Ansible 기반 자동화를 실행할 수 있습니다. director는 tripleo-ansible-inventory 명령을 실행하여 환경에 있는 노드의 동적 인벤토리를 생성합니다.

절차

  1. 노드의 동적 인벤토리를 보려면 stackrc를 소싱한 후 tripleo-ansible-inventory 명령을 실행합니다.

    $ source ~/stackrc
    (undercloud) $ tripleo-ansible-inventory --list

    --list 옵션은 모든 호스트에 대한 세부 정보를 반환합니다. 이 명령을 수행하면 동적 인벤토리가 JSON 포맷으로 출력됩니다.

    {"overcloud": {"children": ["controller", "compute"], "vars": {"ansible_ssh_user": "heat-admin"}}, "controller": ["192.168.24.2"], "undercloud": {"hosts": ["localhost"], "vars": {"overcloud_horizon_url": "http://192.168.24.4:80/dashboard", "overcloud_admin_password": "abcdefghijklm12345678", "ansible_connection": "local"}}, "compute": ["192.168.24.3"]}
  2. 현재 환경에서 Ansible 플레이북을 실행하려면 ansible 명령을 실행하고 -i 옵션을 사용하여 동적 인벤토리 툴의 전체 경로를 포함합니다. 예를 들면 다음과 같습니다.

    (undercloud) $ ansible [HOSTS] -i /bin/tripleo-ansible-inventory [OTHER OPTIONS]
    • [HOSTS]를 사용할 호스트 유형으로 교체합니다. 예를 들면 다음과 같습니다.

      • 모든 Controller 노드인 경우 controller
      • 모든 Compute 노드인 경우 compute
      • 모든 오버클라우드 하위 노드인 경우 overcloud. 예: controllercompute
      • 언더클라우드인 경우 undercloud
      • 모든 노드인 경우 "*"
    • [OTHER OPTIONS]를 추가 Ansible 옵션으로 교체합니다. 몇 가지 유용한 옵션은 다음과 같습니다.

      • --ssh-extra-args='-o StrictHostKeyChecking=no': 호스트 키 검사에서 확인을 바이패스합니다.
      • -u [USER]: Ansible 자동화를 실행하는 SSH 사용자를 변경합니다. 오버클라우드의 기본 SSH 사용자는 동적 인벤토리에서 ansible_ssh_user 매개변수를 사용하여 자동으로 정의됩니다. -u 옵션은 이 매개변수를 재정의합니다.
      • -m [MODULE]: 특정Ansible 모듈을 사용합니다. 기본값은 Linux 명령을 실행하는 command입니다.
      • -a [MODULE_ARGS]: 선택한 모듈에 대한 인수를 정의합니다.
중요

오버클라우드의 사용자 지정 Ansible 자동화는 표준 오버클라우드 스택의 일부가 아닙니다. 이후 openstack overcloud deploy 명령을 실행하면 오버클라우드 노드에서 OpenStack Platform 서비스의 Ansible 기반 설정이 재정의될 수 있습니다.