13.9. 使用 ansible-playbook-command.sh 脚本运行 config-download
当您使用标准方法或分离的置备和配置过程部署 overcloud 时,director 会在 /var/lib/mistral/
中生成工作目录。此目录包含再次运行配置过程所需的 playbook 和脚本。
先决条件
使用以下方法之一部署的 overcloud:
- 结合置备和配置过程的标准方法
- 分离置备和配置过程
步骤
-
以
stack
用户身份登录 undercloud 主机。 更改为 Ansible playbook 的目录:
$ cd /var/lib/mistral/overcloud/
将
/var/lib/mistral/.ssh
目录的所有者更改为stack
用户。$ sudo chown stack. -R /var/lib/mistral/.ssh/
运行
ansible-playbook-command.sh
命令以运行 overcloud 配置:$ 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
命令。这意味着您可以使用其他 Ansible 功能,如检查模式 (--check
)、限制主机 (--limit
) 或覆盖变量 (-e
)。例如:$ ./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
的 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"