[ English | Indonesia | русский ]

源仓库覆盖示例

在某些情况下,部署者希望使用自己的分支覆盖源仓库。

本章节将提供按案例说明如何覆盖默认源仓库的示例。

覆盖 Ansible 版本

不建议覆盖默认 Ansible 版本,因为 OpenStack-Ansible 的每个分支都是基于特定 Ansible 版本构建的,并且许多 Ansible 变更既不向后兼容也不向前兼容。

bootstrap-ansible.sh 脚本会安装 Ansible,并使用变量 ANSIBLE_PACKAGE 来描述要安装的版本。

例如,要安装 ansible 版本 2.5.0

$ export ANSIBLE_PACKAGE="ansible==2.5.0"

也支持直接从 git 安装。例如,从 Ansible 开发分支的最新提交

$ export ANSIBLE_PACKAGE="git+https://github.com/ansible/ansible@devel#egg=ansible"

覆盖角色

角色文件覆盖已经在参考指南中说明,在 在您的 OpenStack-Ansible 安装中添加或覆盖角色 部分。

覆盖其他上游项目源代码

所有使用的上游仓库都定义在 openstack-ansible 集成仓库中,位于 inventory/group_vars/<service_group>/source_git.yml 文件中。

例如,如果您想用自己的仓库覆盖 glance 仓库,您需要定义以下内容

glance_git_repo: https://<your git repo>
glance_git_install_branch: <your git branch or commit SHA>
glance_git_project_group: glance_all

请注意,对于 glance 示例,您不需要编辑 inventory/group_vars/glance_all/source_git.yml 文件。

相反,通常的覆盖机制可以生效,您可以在 user_*.yml 文件中定义以下 3 个变量。 另请参阅 覆盖默认配置 页面。

注意

这些变量的行为与标准的 ansible 优先级略有不同,因为它们也被自定义查找插件使用。

py_pkgs lookup 将忽略所有 _git_ 变量,除非存在 _git_repo 变量。

因此,即使您只想覆盖仓库的 _git_install_branch,您也应该在用户变量中定义 _git_repo 变量。