16.8. 使用 ansible-playbook-command.sh 脚本运行 config-download
当您使用标准方法或单独的置备和配置过程部署 overcloud 时,director 会在 ~/config-download/overcloud
中生成工作目录。此目录包含再次运行配置过程所需的 playbook 和脚本。
先决条件
使用以下方法之一部署的 overcloud:
- 组合置备和配置流程的标准方法。
- 分离置备和配置过程。
流程
-
以
stack
用户身份登录 undercloud 主机。 运行
ansible-playbook-command.sh
脚本。可以将额外的 Ansible 参数传递给该脚本,再将其原封不动地传递给
ansible-playbook
命令。这样便可利用 Ansible 功能,如检查模式(--check
)、限制主机(--limit
)或覆盖变量(-e
)。例如:$ ./ansible-playbook-command.sh --limit Controller
警告当
--limit
用于大规模部署时,只有执行中包含的主机才会添加到跨节点的 SSHknown_hosts
文件中。因此,一些操作(如实时迁移)可能无法在没有在known_hosts
文件中的节点间工作。注意要确保
/etc/hosts
文件在所有节点上都处于最新状态,请以stack
用户身份运行以下命令:(undercloud)$ cd /home/stack/overcloud-deploy/overcloud/config-download/overcloud (undercloud)$ ANSIBLE_REMOTE_USER="tripleo-admin" ansible allovercloud \ -i /home/stack/overcloud-deploy/overcloud/tripleo-ansible-inventory.yaml \ -m include_role \ -a name=tripleo_hosts_entries \ -e @global_vars.yaml
等待配置过程完成。
其他信息
这个工作目录中包含一个名为
deploy_steps_playbook.yaml
的 playbook,用于管理 overcloud 配置任务。要查看此 playbook,请运行以下命令:$ less deploy_steps_playbook.yaml
这个 playbook 会使用工作目录中所含的各种任务文件。某些任务文件是所有 OpenStack 平台角色通用的,某些任务文件则特定于某些 OpenStack 平台角色和服务器。
这个工作目录中还包含与您在 overcloud 的
roles_data
文件中定义的各个角色相对应的子目录。例如:$ ls Controller/
每个 OpenStack 平台角色目录中还包含相应角色类型的各个服务器的子目录。这些目录采用可组合角色主机名格式:
$ 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
对 overcloud 运行
config-download
playbook 时,可能会收到有关每个主机的 SSH 指纹的消息。要避免这些消息,请在运行ansible-playbook-command.sh
脚本时包含--ssh-common-args="-o StrictHostKeyChecking=no"
:$ ./ansible-playbook-command.sh --tags overcloud --ssh-common-args="-o StrictHostKeyChecking=no"