13.10. 수동으로 생성한 플레이북을 사용하여 config-download 실행
표준 워크플로우 외부에서 고유한 config-download
파일을 생성할 수 있습니다. 예를 들어 --stack-only
옵션을 사용하여 openstack overcloud deploy
명령을 실행하여 노드를 프로비저닝한 다음 Ansible 구성을 수동으로 별도로 적용할 수 있습니다.
사전 요구 사항
- 성공적인 언더클라우드 설치
- 배포할 준비가 된 오버클라우드 노드
- 특정 오버클라우드 사용자 지정과 관련된 Heat 환경 파일
절차
-
언더클라우드 호스트에
stack
사용자로 로그인합니다. stackrc
파일을 소싱합니다.$ source ~/stackrc
--stack-only
옵션을 사용하여 배포 명령을 실행합니다. 오버클라우드에 필요한 환경 파일을 포함합니다.$ openstack overcloud deploy \ --templates \ -e environment-file1.yaml \ -e environment-file2.yaml \ ... --stack-only
- 프로비저닝 프로세스가 완료될 때까지 대기합니다.
언더클라우드에서
tripleo-admin
사용자의 오버클라우드로 SSH 액세스를 활성화합니다.config-download
프로세스에서는tripleo-admin
사용자를 사용하여 Ansible 기반 설정을 수행합니다.$ openstack overcloud admin authorize
config-download
파일을 생성합니다.$ openstack overcloud config download \ --name overcloud \ --config-dir ~/config-download
-
--name
은 Ansible 파일 내보내기에 사용할 오버클라우드의 이름입니다. -
--config-dir
은config-download
파일을 저장할 위치입니다.
-
config-download
파일이 포함된 디렉터리로 변경합니다.$ cd ~/config-download
정적 인벤토리 파일을 생성합니다.
$ tripleo-ansible-inventory \ --stack <overcloud> \ --ansible_ssh_user heat-admin \ --static-yaml-inventory inventory.yaml
-
<overcloud>
를 해당 오버클라우드 이름으로 교체합니다.
-
config-download
파일과 정적 인벤토리 파일을 사용하여 설정을 수행합니다. 배포용 플레이북을 실행하려면ansible-playbook
명령을 실행합니다.$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ ~/config-download/deploy_steps_playbook.yaml
- 설정 프로세스가 완료될 때까지 대기합니다.
이 설정에서
overcloudrc
파일을 수동으로 생성하려면 다음 명령을 실행합니다.$ openstack action execution run \ --save-result \ --run-sync \ tripleo.deployment.overcloudrc \ '{"container":"overcloud"}' \ | jq -r '.["result"]["overcloudrc.v3"]' > overcloudrc.v3
배포 상태를 success로 수동으로 설정합니다.
$ openstack workflow execution create tripleo.deployment.v1.set_deployment_status_success '{"plan": "<OVERCLOUD>"}'
-
<OVERCLOUD>
를 해당 오버클라우드 이름으로 교체합니다.
-
추가 정보
config-download
디렉터리에는deploy_steps_playbook.yaml
이라는 플레이북이 포함되어 있으며 이는 오버클라우드 구성을 실행합니다. 이 플레이북을 보려면 다음 명령을 실행합니다.$ less deploy_steps_playbook.yaml
플레이북은 작업 디렉터리에 포함된 다양한 작업 파일을 사용합니다. 일부 작업 파일은 모든 OpenStack Platform 역할에 공통되며 일부 파일은 특정 OpenStack Platform 역할과 서버에 한정되어 있습니다.
또한
config-download
디렉터리에는 사용자 오버클라우드의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 \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ --tags overcloud \ ~/config-download/deploy_steps_playbook.yaml
오버클라우드에 대해
config-download
플레이북을 실행하면 각 호스트의 SSH 지문에 대한 메시지가 표시될 수 있습니다. 이러한 메시지가 표시되지 않게 하려면ansible-playbook
명령에--ssh-common-args="-o StrictHostKeyChecking=no"
를 포함합니다.$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --ssh-common-args="-o StrictHostKeyChecking=no" \ --become \ --tags overcloud \ ~/config-download/deploy_steps_playbook.yaml