[ 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 变量。