13.9. 使用 ansible-playbook-command.sh 脚本运行 config-download

当您使用标准方法或分离的置备和配置过程部署 overcloud 时,director 会在 /var/lib/mistral/ 中生成工作目录。此目录包含再次运行配置过程所需的 playbook 和脚本。

先决条件

  • 使用以下方法之一部署的 overcloud:

    • 结合置备和配置过程的标准方法
    • 分离置备和配置过程

步骤

  1. stack 用户身份登录 undercloud 主机。
  2. 更改为 Ansible playbook 的目录:

    $ cd /var/lib/mistral/overcloud/
  3. /var/lib/mistral/.ssh 目录的所有者更改为 stack 用户。

    $ sudo chown stack. -R /var/lib/mistral/.ssh/
  4. 运行 ansible-playbook-command.sh 命令以运行 overcloud 配置:

    $ sudo ./ansible-playbook-command.sh
  5. /var/lib/mistral/.ssh 目录的所有者更改为 mistral 用户。这需要确保 mistral_executor 容器中运行的 ansible-playbook 命令成功。

    $ sudo chown 42430:42430 -R /var/lib/mistral/.ssh/
  6. mistral 用户身份再次运行该脚本。

    可以将额外的 Ansible 参数传递给该脚本,再将其原封不动地传递给 ansible-playbook 命令。这意味着您可以使用其他 Ansible 功能,如检查模式 (--check)、限制主机 (--limit) 或覆盖变量 (-e)。例如:

    $ ./ansible-playbook-command.sh --limit Controller
    警告

    --limit 用于大规模部署时,只有执行中包含的主机才会添加到跨节点的 SSH known_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
  7. 等待配置过程完成。

其他信息

  • 这个工作目录中包含一个名为 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
    1. 对 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"