16.9. 使用手动创建的 playbook 运行 config-download
您可以在标准工作流之外创建自己的 config-download
文件。例如,您可以使用 --stack-only
选项运行 openstack overcloud deploy
命令以置备节点,然后单独手动应用 Ansible 配置。
先决条件
- 成功安装 undercloud。
- overcloud 节点已准备好进行部署。
- 与特定 overcloud 自定义相关的 heat 环境文件。
步骤
-
以
stack
用户身份登录 undercloud 主机。 Source
stackrc
文件:$ source ~/stackrc
使用
--stack-only
选项运行部署命令。包括 overcloud 所需的环境文件:$ openstack overcloud deploy \ --templates \ -e environment-file1.yaml \ -e environment-file2.yaml \ ... --stack-only
- 等待置备过程完成。
为
tripleo-admin
用户启用从 undercloud 到 overcloud 的 SSH 访问。config-download
进程使用tripleo-admin
用户来执行基于 Ansible 的配置:$ openstack overcloud admin authorize
生成
config-download
文件:$ openstack overcloud deploy \ --stack overcloud --stack-only \ --config-dir ~/overcloud-deploy/overcloud/config-download/overcloud/
-
--stack
指定 overcloud 的名称。 -
--stack-only
确保命令仅部署 heat 堆栈并跳过任何软件配置。 -
--config-dir
指定config-download
文件的位置。
-
切换到包含
config-download
文件的目录:$ cd ~/config-download
生成静态清单文件:
$ tripleo-ansible-inventory \ --stack <overcloud> \ --ansible_ssh_user tripleo-admin \ --static-yaml-inventory inventory.yaml
-
用您的 overcloud 的名称替换
<overcloud>
。
-
用您的 overcloud 的名称替换
使用
~/overcloud-deploy/overcloud/config-download/overcloud
文件和静态路由来执行配置。要执行部署 playbook,请运行ansible-playbook
命令:$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ ~/overcloud-deploy/overcloud/config-download/overcloud/deploy_steps_playbook.yaml
注意针对 overcloud 运行
config-download/overcloud
playbook 时,您可能会收到有关每个主机的 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 \ ~/overcloud-deploy/overcloud/config-download/overcloud/deploy_steps_playbook.yaml
- 等待配置过程完成。
从基于 ansible 的配置手动生成
overcloudrc
文件:$ openstack action execution run \ --save-result \ --run-sync \ tripleo.deployment.overcloudrc \ '{"container":"overcloud"}' \ | jq -r '.["result"]["overcloudrc.v3"]' > overcloudrc.v3
手动将部署状态设置为成功:
$ openstack workflow execution create tripleo.deployment.v1.set_deployment_status_success '{"plan": "<overcloud>"}'
-
用您的 overcloud 的名称替换
<overcloud>
。
-
用您的 overcloud 的名称替换
~/overcloud-deploy/overcloud/config-download/overcloud/
目录包含一个名为 deploy_steps_playbook.yaml
的 playbook。这个 playbook 会使用工作目录中所含的各种任务文件。某些任务文件是所有 Red Hat OpenStack Platform (RHOSP)角色通用的,有些任务文件则特定于某些 RHOSP 角色和服务器。
~/overcloud-deploy/overcloud/config-download/overcloud/
目录还包含与您在 overcloud roles_data
文件中定义的各个角色相对应的子目录。每个 RHOSP 角色目录还包含该角色类型的单个服务器的子目录。目录使用可组合角色主机名格式,如 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
您可以使用 --tags
、--skip-tags
、--start-at-task
与 ansible-playbook-command.sh
脚本应用标记的配置:
$ ansible-playbook \ -i inventory.yaml \ -e gather_facts=true \ -e @global_vars.yaml \ --private-key ~/.ssh/id_rsa \ --become \ --tags overcloud \ ~/overcloud-deploy/overcloud/config-download/overcloud/deploy_steps_playbook.yaml