13.9. ansible-playbook-command.sh 스크립트를 사용하여 config-download 실행
표준 방법 또는 별도의 프로비저닝 및 구성 프로세스를 사용하여 오버클라우드를 배포할 때 director는 /var/lib/mistral/
에 작업 디렉터리를 생성합니다. 이 디렉터리에는 구성 프로세스를 다시 실행하는 데 필요한 플레이북과 스크립트가 포함되어 있습니다.
사전 요구 사항
다음 방법 중 하나로 배포된 오버클라우드:
- 프로비저닝 및 구성 프로세스를 결합하는 표준 방법
- 프로비저닝 및 구성 프로세스 분리
절차
-
언더클라우드 호스트에
stack
사용자로 로그인합니다. Ansible 플레이북의 디렉터리로 변경합니다.
$ cd /var/lib/mistral/overcloud/
/var/lib/mistral/.ssh
디렉터리의 소유자를stack
사용자로 변경합니다.$ sudo chown stack. -R /var/lib/mistral/.ssh/
ansible-playbook-command.sh
명령을 실행하여 오버클라우드 구성을 실행합니다.$ sudo ./ansible-playbook-command.sh
/var/lib/mistral/.ssh
디렉터리의 소유자를mistral
사용자로 변경합니다. 이는mistral_executor
컨테이너 내부에서 실행되는 ansible-playbook 명령이 성공했는지 확인하는 데 필요합니다.$ sudo chown 42430:42430 -R /var/lib/mistral/.ssh/
mistral
사용자로 스크립트를 다시 실행합니다.Ansible 인수를 이 스크립트에 추가로 전달할 수 있으며, 인수는 변경되지 않은 상태로
ansible-playbook
명령에 전달됩니다. 즉, 확인 모드(--check
), 호스트 제한(--limit
), 변수 덮어쓰기(-e
) 등의 다른 Ansible 기능을 사용할 수 있습니다. 예를 들면 다음과 같습니다.$ ./ansible-playbook-command.sh --limit Controller
주의--limit
를 사용하여 스케일에서 배포하는 경우 실행에 포함된 호스트만 노드의 SSHknown_hosts
파일에 추가됩니다. 따라서 실시간 마이그레이션과 같은 일부 작업은known_hosts
파일에 없는 노드에서 작동하지 않을 수 있습니다.참고모든 노드에서
/etc/hosts
파일이 최신 상태인지 확인하려면root
사용자로 다음 명령을 실행합니다.(undercloud)$ sudo -i (undercloud)$ cd /var/lib/mistral/overcloud (undercloud)$ ANSIBLE_REMOTE_USER="tripleo-admin" ansible allovercloud \ -i tripleo-ansible-inventory.yaml \ -m include_role \ -a name=tripleo-hosts-entries \ -e @global_vars.yaml
- 설정 프로세스가 완료될 때까지 대기합니다.
추가 정보
작업 디렉터리에는
deploy_steps_playbook.yaml
이라는 플레이북이 포함되어 있으며 이것으로 오버클라우드 구성 작업을 관리합니다. 이 플레이북을 보려면 다음 명령을 실행합니다.$ less deploy_steps_playbook.yaml
플레이북은 작업 디렉터리에 포함된 다양한 작업 파일을 사용합니다. 일부 작업 파일은 모든 OpenStack Platform 역할에 공통되며 일부 파일은 특정 OpenStack Platform 역할과 서버에 한정되어 있습니다.
또한 작업 디렉터리에는 사용자 오버클라우드의
roles_data
파일에 정의한 각 역할에 해당하는 하위 디렉터리가 포함되어 있습니다. 예를 들면 다음과 같습니다.$ ls Controller/
각 OpenStack Platform 역할 디렉터리에는 해당 역할 유형의 개별 서버에 대한 하위 디렉터리가 포함되어 있습니다. 디렉터리는 구성 가능 역할 호스트 이름 포멧을 사용합니다.
$ ls Controller/overcloud-controller-0
deploy_steps_playbook.yaml
의 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
오버클라우드에 대해
config-download
플레이북을 실행하면 각 호스트의 SSH 지문에 대한 메시지가 표시될 수 있습니다. 이러한 메시지를 방지하려면ansible-playbook-command.sh
스크립트를 실행할 때--ssh-common-args="-o StrictHostKeyChecking=no"
를 포함합니다.$ ./ansible-playbook-command.sh --tags overcloud --ssh-common-args="-o StrictHostKeyChecking=no"