将 AIO bootstrap 转换为 Ansible

日期:

2015-10-16 00:00

标签:

aio, bootstrap, ansible

openstack-ansible 的 AIO 安装过程涉及一个 bash 脚本来完成 AIO 主机的初始引导。该脚本运行良好,但随着时间的推移难以更新,转换为 Ansible 将使未来的更新(例如 multi-platform-host 蓝图)更容易。

蓝图 - 将 AIO bootstrap 转换为 Ansible

问题描述

bootstrap-aio.sh 脚本运行良好,但在某些地方可能难以阅读。不熟悉 bash 但熟悉 Ansible 的部署者可能在更新脚本时会遇到挑战。

提议的变更

目前,AIO 安装有四个步骤

  • 配置 (可选)

  • 引导 AIO 构建

  • 引导 Ansible

  • 运行 openstack-ansible playbook

本规范建议以下步骤来替换现有步骤

  • 配置 (可选)

  • 引导 Ansible

  • 运行 AIO playbook (如果需要 AIO 部署)

  • 运行 openstack-ansible playbook

当前的 AIO bootstrap 脚本被各种部署者以及其他下游项目大量使用,因此必须谨慎进行更改。本规范的建议工作流程如下

  • 构建用于引导 AIO 构建的 Ansible role

  • 更新文档以允许早期测试

  • bootstrap-aio.sh 脚本更改为调用新的 AIO bootstrap playbook

  • 更新文档以反映新的 bootstrap 脚本更改

  • 稍后删除 bootstrap-aio.sh 脚本(如果需要)

备选方案

当前的 bootstrap-aio.sh 脚本可以保持原样,或者可以简化以使其更易于阅读和更新。

Playbook/Role 影响

本次更新不会更改 openstack-ansible playbook 本身。AIO bootstrap 目前是部署过程中的一个先决步骤,在 AIO Ansible playbook 可用后也不会改变。

升级影响

此更改只会影响 AIO 构建的全新部署。如果部署者已经部署了现有的 AIO 构建,即使在升级时,他们也不需要再次运行 AIO bootstrap playbook。

安全影响

此更改目前没有已知的安全影响。

性能影响

此更改目前没有已知的性能影响。Ansible AIO playbook 可能会比 bash 脚本稍慢,但差异应该可以忽略不计。

最终用户影响

最终用户不会注意到此更改,因为它只会影响部署者。

部署者影响

如果部署者正在进行 AIO 的全新部署,他们需要遵循新的步骤并确保在运行新的 AIO Ansible playbook 之前引导 Ansible。AIO 构建的文档需要更新。

如果部署者正在部署到多个服务器(非 AIO),他们部署 openstack-ansible 的步骤不会改变。

开发人员影响

开发人员需要在 Ansible playbook 中进行任何未来的 AIO bootstrap 更改,而不是在 bash 脚本中。

依赖项

目前,本规范不依赖于任何其他蓝图或规范。

实现

负责人

主要负责人

工作项

上述 Proposed Changes 中的最后一个项目符号列表详细说明了工作项。

测试

这些更改会影响 gating,因为 gating 作业运行一个 AIO 构建。但是,如果将 bootstrap-aio.sh 脚本更改为调用 AIO bootstrap Ansible playbook,则 gating 作业本身不需要更改。

运行 Ansible AIO playbook 期间, gating 不需要额外的资源。

文档影响

AIO 部署的文档需要使用新的步骤来引导 AIO 构建进行更新。步骤的更改位于本规范顶部的 Proposed Changes 部分。

此外,部署者需要注意哪些环境变量和/或 Ansible 变量设置为控制部署的各个部分,例如是否在其环境中部署某些 OpenStack 服务。

参考资料

目前没有参考资料。