13.6. 手动运行 config-download

/var/lib/mistral/overcloud 中的工作目录包含直接与 ansible-playbook 交互所需的 playbook 和脚本。以下操作过程介绍了如何与这些文件交互。

步骤

  1. 更改为 Ansible playbook 的目录:

    $ cd /var/lib/mistral/overcloud/
  2. 运行 ansible-playbook-command.sh 命令以复制部署:

    $ ./ansible-playbook-command.sh

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

    $ ./ansible-playbook-command.sh --limit Controller
  3. 这个工作目录中包含一个名为 deploy_steps_playbook.yaml 的 playbook,用于运行 overcloud 配置。要查看此 playbook,请运行以下命令:

    $ less deploy_steps_playbook.yaml

    这个 playbook 会使用工作目录中所含的各种任务文件。某些任务文件是所有 OpenStack 平台角色通用的,某些任务文件则特定于某些 OpenStack 平台角色和服务器。

  4. 这个工作目录中还包含与您在 overcloud 的 roles_data 文件中定义的各个角色相对应的子目录。例如:

    $ ls Controller/

    每个 OpenStack 平台角色目录中还包含相应角色类型的各个服务器的子目录。这些目录采用可组合角色主机名格式:

    $ ls Controller/overcloud-controller-0
  5. 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
  6. config-download 配置 Ceph 时,Ansible 从 config-download external_deploy_steps_tasks playbook 内执行 ceph-ansible。手动运行 config-download 时,第二次执行 Ansible 不继承 ssh_args 参数。如需传递 Ansible 环境变量,可使用 heat 环境文件。例如:

    parameter_defaults:
      CephAnsibleEnvironmentVariables:
        ANSIBLE_HOST_KEY_CHECKING: 'False'
        ANSIBLE_PRIVATE_KEY_FILE: '/home/stack/.ssh/id_rsa'
警告

在使用 ansible-playbook CLI 参数(如 --tags--skip-tags--start-at-task)时,请勿随意更改部署配置的运行或应用顺序。利用这些 CLI 参数,可以轻松地重新运行先前失败的任务或在初始部署的基础上进行迭代。但是,为了保证部署的一致性,您必须通过 deploy_steps_playbook.yaml 依序运行所有任务。