This refactor has the intent of guiding a new OpenStack-Ansible user towards his first contributions. The deploy guide is now pointing towards the Developer Guide, but there is was no guidance given, just a series of topics. Here, the first page of the developer guide is an onboarding page, explaining our repos, what's inside them, and how to contribute. It then links towards all the sections, which had to be restructured to match a wizard-style flow. Change-Id: Ib2a5f2063c4dc58fc249ac94c3cd85bb281f28a5
2.3 KiB
Source overriding examples
There are situations where a deployer want to override sources with its own fork.
This chapter gives case-by-case examples on how to override the default sources.
Overriding Ansible version
Overriding the default Ansible version is not recommended, as each branch of OpenStack-Ansible has been built with the a specific Ansible version in mind, and many Ansible changes are neither backwards nor forward compatible.
The bootstrap-ansible.sh script installs Ansible, and
uses a variable ANSIBLE_PACKAGE to describe which version
to install.
For example to install ansible version 2.5.0:
$ export ANSIBLE_PACKAGE="ansible==2.5.0"Installing directly from git is also supported. For example, from the tip of Ansible development branch:
$ export ANSIBLE_PACKAGE="git+https://github.com/ansible/ansible@devel#egg=ansible"Overriding the roles
Overriding the role file has been explained in the reference guide,
on the extend_osa_roles
section.
Overriding other upstream projects source code
All the upstream repositories used are defined in the
openstack-ansible integrated repository, in the
playbooks/defaults/repo_packages folder.
For example, if you want to override glance repository
with your own, you need to define the following:
glance_git_repo: https://<your git repo>
glance_git_install_branch: <your git branch or commit SHA>
glance_git_project_group: glance_all
Please note, for this glance example, that you do not need to edit
the playbooks/defaults/repo_packages/openstack_services.yml
file.
Instead, the usual overrides mechanism can take place, and you can
define these 3 variables in a user_*.yml file. See also the
user-overrides
page.
Note
These variables behave a little differently than standard ansible precedence, because they are also consumed by a custom lookup plugin.
The py_pkgs lookup will ignore all _git
variables unless the _git_repo variable is present.
So even if you only want to override the
_git_install_branch for a repository, you should also
define the _git_repo variable in your user variables.