16.9. 使用手动创建的 playbook 运行 config-download


您可以在标准工作流之外创建自己的 config-download 文件。例如,您可以使用 --stack-only 选项运行 openstack overcloud deploy 命令以置备节点,然后单独手动应用 Ansible 配置。

先决条件

  • 成功安装 undercloud。
  • overcloud 节点已准备好进行部署。
  • 与特定 overcloud 自定义相关的 heat 环境文件。

步骤

  1. stack 用户身份登录 undercloud 主机。
  2. Source stackrc 文件:

    $ source ~/stackrc
  3. 使用 --stack-only 选项运行部署命令。包括 overcloud 所需的环境文件:

    $ openstack overcloud deploy \
      --templates \
      -e environment-file1.yaml \
      -e environment-file2.yaml \
      ...
      --stack-only
  4. 等待置备过程完成。
  5. tripleo-admin 用户启用从 undercloud 到 overcloud 的 SSH 访问。config-download 进程使用 tripleo-admin 用户来执行基于 Ansible 的配置:

    $ openstack overcloud admin authorize
  6. 生成 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 文件的位置。
  7. 切换到包含 config-download 文件的目录:

    $ cd ~/config-download
  8. 生成静态清单文件:

    $ tripleo-ansible-inventory \
      --stack <overcloud> \
      --ansible_ssh_user tripleo-admin \
      --static-yaml-inventory inventory.yaml
    • 用您的 overcloud 的名称替换 <overcloud>
  9. 使用 ~/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
  10. 等待配置过程完成。
  11. 从基于 ansible 的配置手动生成 overcloudrc 文件:

    $ openstack action execution run \
      --save-result \
      --run-sync \
      tripleo.deployment.overcloudrc \
      '{"container":"overcloud"}' \
      | jq -r '.["result"]["overcloudrc.v3"]' > overcloudrc.v3
  12. 手动将部署状态设置为成功:

    $ openstack workflow execution create tripleo.deployment.v1.set_deployment_status_success '{"plan": "<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-taskansible-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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.