13.6. config-download를 수동으로 실행

/var/lib/mistral/overcloud의 작업 디렉터리에는 ansible-playbook을 직접 상호 작용하는 데 필요한 플레이북과 스크립트가 있습니다. 다음 절차에서는 이러한 파일과 상호작용하는 방법을 설명합니다.

절차

  1. Ansible 플레이북의 디렉터리로 변경합니다.

    $ cd /var/lib/mistral/overcloud/
  2. ansible-playbook-command.sh 명령을 실행하여 배포를 재현합니다.

    $ ./ansible-playbook-command.sh

    Ansible 인수를 이 스크립트에 추가로 전달할 수 있으며, 인수는 변경되지 않은 상태로 ansible-playbook 명령에 전달됩니다. 즉, 확인 모드(--check), 호스트 제한(--limit), 변수 덮어쓰기(-e) 등의 다른 Ansible 기능을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

    $ ./ansible-playbook-command.sh --limit Controller
  3. 작업 디렉터리에는 deploy_steps_playbook.yaml이라는 플레이북이 포함되어 있으며 이는 오버클라우드를 실행합니다. 이 플레이북을 보려면 다음 명령을 실행합니다.

    $ less deploy_steps_playbook.yaml

    플레이북은 작업 디렉터리에 포함된 다양한 작업 파일을 사용합니다. 일부 작업 파일은 모든 OpenStack Platform 역할에 공통되며 일부 파일은 특정 OpenStack Platform 역할과 서버에 한정되어 있습니다.

  4. 또한 작업 디렉터리에는 사용자 오버클라우드의 roles_data 파일에 정의한 각 역할에 해당하는 하위 디렉터리가 포함되어 있습니다. 예를 들면 다음과 같습니다.

    $ ls Controller/

    각 OpenStack Platform 역할 디렉터리에는 해당 역할 유형의 개별 서버에 대한 하위 디렉터리가 포함되어 있습니다. 디렉터리는 구성 가능 역할 호스트 이름 포멧을 사용합니다.

    $ ls Controller/overcloud-controller-0
  5. Ansible 작업이 태그됩니다. 전체 태그 목록을 확인하려면 ansible-playbook에 대해 CLI 인수 --list-tags를 사용합니다.

    $ ansible-playbook -i tripleo-ansible-inventory.yaml --list-tags deploy_steps_playbook.yaml

    다음으로 ansible-playbook-command.sh 스크립트에서 --tags, --skip-tags 또는 --start-at-task를 사용하여 태그된 구성을 적용합니다.

    $ ./ansible-playbook-command.sh --tags overcloud
  6. config-download를 사용하여 Ceph를 설정하면 Ansible은 config-download external_deploy_steps_tasks 플레이북 내에서 ceph-anible을 실행합니다. config-download를 수동으로 실행하는 경우 두 번째 Ansible 실행에서는 ssh_args 인수가 상속되지 않습니다. 이 실행에 Ansible 환경 변수를 전달하려면 heat 환경 파일을 사용합니다. 예를 들면 다음과 같습니다.

    parameter_defaults:
      CephAnsibleEnvironmentVariables:
        ANSIBLE_HOST_KEY_CHECKING: 'False'
        ANSIBLE_PRIVATE_KEY_FILE: '/home/stack/.ssh/id_rsa'
주의

--tags, --skip-tags 또는 --start-at-task와 같은 ansible-playbook CLI 인수를 사용할 때 순서가 잘못된 배포를 실행하거나 적용하지 마십시오. CLI 인수는 이전에 실패한 작업을 재실행하거나 초기 배포를 반복하는 편리한 방법입니다. 하지만 일관된 배포를 위해 deploy_steps_playbook.yaml의 모든 작업을 순서대로 실행해야 합니다.