This change adds boot priorities to some container types where it'd be
beneficial. LXC allows containers with higher priority values to be
started ahead of others. The container default is 0 and all integers
greater than 0 will be started in descending order.
This change has no upgrade impact as the additional config is only used
on boot and will not require a container to be restarted.
Change-Id: I89703a24516d47d560c9c888538c384ad2228eb7
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
Add playbook, haproxy service configuration, variable definition,
and environment definition files required to deploy barbican as an
integrated role of openstack-ansible.
Change-Id: If87099958e0b1fc48866a468a47bb60bae622f28
When defining a configuration, it's possible that the groups defined in
the openstack_user_config.yml file might not match those defined by the
env.d contents. This isn't strictly a problem - in most cases it's
ignored and will simply result in extra data. However, if keys in the
configuration and the environment are mismatched, it could result in
variable data not being mapped correctly in the resultant inventory.
This patchset extends the -c/--check parameter to compare the configured
groups against the environment's groups, and issue a warning if there is
a mismatch, which should help deployers diagnose some configuration
issues.
The warnings were not added to standard run operations due to the amount
of output generated on stdout by the JSON dump.
Change-Id: I7a7e52b31909e963873063e43e28a5bb9a6963fd
Due to upstream Ansible deprecating the `ansible_ssh_host` variable,
this key is removed from the generated inventory in order to avoid
confusion. While Newton also supports Ansible 2.x, this change is
intended to only be in effect from Ocata forward.
From
http://docs.ansible.com/ansible/intro_inventory.html#hosts-and-groups:
"Ansible 2.0 has deprecated the “ssh” from ansible_ssh_user,
ansible_ssh_host, and ansible_ssh_port to become ansible_user,
ansible_host, and ansible_port. If you are using a version of Ansible
prior to 2.0, you should continue using the older style variables
(ansible_ssh_*). These shorter variables are ignored, without warning,
in older versions of Ansible."
Fixes-Bug: #1636606
Change-Id: If43b28247a9df3db76217b1147fab785f1235532
Even if this file is completely ignored because the role using it
is skipped, ansible parses the whole file. Any undefined variables
will cause a failure. Undefined variable was previously a way to
force failure if it was undefined, but now we have to do differently.
In the meantime, this is a quick fix to make sure we don't have
issues with undefined variables for non-multinode haproxy installs.
Change-Id: Ifd00f4eb0a0a3559d7d3bd3c5a4331798a3c96aa
Closes-Bug: 1631920
When a task fails in a playbook, the default behaviour results
in notified handlers not running. This can result in a
configuration change being executed, but the service not being
restarted.
This patch changes the default behaviour to force the handlers
to run when a playbook fails for any reason except a host being
unreachable.
Change-Id: I8a16bb1a5c04345e962ab01225f3d972781d9ed7
Reference: http://docs.ansible.com/ansible/playbooks_error_handling.html#handlers-and-failure
Releasenote translation publishing is being prepared. 'locale_dirs'
needs to be defined in conf.py to generate translated version of the
release notes.
Note that this repository might not get translated release notes - or
no translations at all - but we add the entry here nevertheless to
prepare for it.
Change-Id: Ief513115372a72d13ea68ba44b88a8407d20772b
The bind mount for "/var/log" is only done on greenfield deployments,
on upgrace this feature is disabled.
Change-Id: I60bad26260f21316455b3e7a0c02a31069d08b1a
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
The previous behavior for main took an arbitrary dictionary and looked
for keys within it. To decouple the main function from the args
function, this change instead formalizes the names for the arguments
to main, allowing for documentation of the expectations.
Since Ansible's default expected argument is `--list` and that would
collide with the Python `list` builtin function, the `kwargs` argument
is added to act as a catch-all. In practice, while Ansible passes the
list argument in, it does not change the script's behavior.
Change-Id: I8a4c677b44b7c0fc6d95c0a5213306165b79971d
This patch updates all the roles to the latest available stable
SHA's, copies the release notes from the updated roles into the
integrated repo, updates all the OpenStack Service SHA's, and
updates the appropriate python requirements pins.
Change-Id: Ib7bf91e0cccc10ebd704ea2a61de83b2d5df0c53
In order to bring the release note ordering into line with
other OpenStack projects, the index is re-ordered to be in
chronological order.
Change-Id: Id5ba65809d4f3baac7ea16b0b4ee13dfc3a18ea8
Currently debugging the dynamic inventory file can be problematic,
requiring manual intervention with a debugger to step through function
calls and inspect data structures.
This patch adds a logging facility for outputting detailed debug logs.
The output is not intended for end users, and will not be called by
Ansible runs. Rather, it is meant for running manually to aid
contributing developers.
Change-Id: Ie160c556678859abf733ef23727a9f9bff48ff8b
The export host option allows users to export their existing host
information for import into a third party system. The output is
'pivoted', so that the key is the host/container name, and the values
are the group memberships and hostvar information. Some top level
networking information, such as load balancer IP addresses, as well as
provider networks, are also provided.
Test scaffolding was added to ensure the export does what is intended.
The tox inventory environment was modified to do coverage testing of
both the dynamic_inventory.py and manage_inventory.py files. The
coverage data is erased between runs, since combined output lead to
incorrect results for dynamic_inventory.py.
Change-Id: I2caa5a0c070b12a74ac26334c63ac8d0de704042
This patch updates all the roles to the latest available stable
SHA's, copies the release notes from the updated roles into the
integrated repo, updates all the OpenStack Service SHA's, and
updates the appropriate python requirements pins.
Some adjustments are made to the sources-branch-updater script
for improved error detection and efficiency. Also, based on
https://review.openstack.org/371999 the ternary search/replace
is fixed.
Tempest and Rally repo sources are co-located in the repo_packages
files as neither of them implement stable/* branches.
The nova consoles (novnc/spice) are implemented in their own
repo_packages file in order to simplify doing the SHA updates.
Gnocchi implements a different style of releasing stable branches
so it is also implemented in its own repo_packages file.
Change-Id: I6fa4afab4203c9902ce70fa6bc49ad1dddb560b3
Ironic in OSA is currently broken as the ironic database
user isn't created, and consequently the ironic services can't
connect to the database. It broke back in patch 91deb13.
This patch corrects the openstack-ansible side of the problem.
Another patch will fix the os-ironic side.
Change-Id: I38aa44bc33a80bb6d53a66bce34aff57048a1af3
Partial-Bug: #1625081
Signed-off-by: Michael Davies <michael@the-davies.net>
This patch updates all the roles to the latest available SHA's,
updates all the OpenStack Service SHA's and also updates the
appropriate python requirements pins.
Change-Id: Ia9cb9dd47b391ebcbcc26d320245e3a7e4751568
Previously, it was difficult to target only the hosts holding LXC
containers. This change will add a host to the implicit 'lxc_hosts'
group any time a container is created in association with that host.
Users cannot define this group in their configuration. Doing so will
result in an runtime error.
This approach allows for specific targeting without using complicated
Jinja calculations as seen in commit
76695012e6f45fe44beec6a5f67abee43881fbc2. As such, the work in that
review has been replaced with this change.
Change-Id: I10faf5880a61abcc77f017573e0fd76d033224eb
This patch implements a new default subset of facts being gathered
to a much smaller set. This should improve performance in large
environments. Deployers who need a greater subset are able to use
the standard Ansible environment variables to override our default
value.
Change-Id: I741228ba03ad5081fbea5833143fdf1f1e8d3623
All of the log directories for all containers will now be bind mounted to the
host. This change ensures that containers are not running into an issue with
Full file systems due to logs which is common when a container is backed by
a blocked device (lvm, zfs, btrfs).
Closes-Bug: #1588051
Change-Id: I25a481c0409f1a45494a8668f00c5393672e853c
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This change adds a playbook for deploying sahara as part of the
sahara role integration.
This change also adds variables needed for the installation of
the sahara-dashboard and its support by the ceilometer service,
which will be added on patches in their respective roles.
Change-Id: I782d74e09d1796744ece75d12aa9c65c9453be19
Optionally deploy unbound DNS caching resolvers in lieu of
managing /etc/hosts across all hosts.
This is an opt-in optimization providing centralized DNS
resolution containers to allow intra-cluster name resolution
identical to what openstack_hosts provides with its /etc/hosts
management.
Managing /etc/hosts is very inefficient and cumbersome in large
environments with lots of hosts, so this change allows for a
quicker and more consistent deployment using centralized resolvers.
Change-Id: Ibbc1fc77aa42c1a530e2f52a5c3c4ed86d0fe8ea
This patch adds the Magnum playbook to the setup-openstack meta
playbook to ensure that Magnum is deployed if the inventory
contains any appropriate hosts.
The release note for the new service has also been adjusted to
be more accurate.
Change-Id: I7634b10ca4f39e0aa203fed0cca9f795ee34e894
The ansible.cfg file has been removed to allow a deployer to specify their
own configurations without having to modify the ansible.cfg file within the
playbooks directory.
Change-Id: I94a8647edd04c21c34f7892f3179a8aa66548ed3
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This play allows deployers to install and configure
Rally for post-deployment functional and performance testing
Depends-On: I3d5cc822cc0d3c2b0b3ba7b05a9fe1b6b9e3a839
Change-Id: I1c4567649e4e35641610f27eaf3b8a57c8a722cc
Integrate deployment for Project Calico's Neutron networking
plugin.
See http://docs.openstack.org/developer/networking-calico/
for more information about Calico.
Depends-On: I80546b6deefe0878398716d173b7dcc36c3bef3a
Depends-On: I02ba101a3dfdbb34b96a110f429cfa6d1f0e9863
Change-Id: I9e8e855c8aff8822878908ae75f913f0444a7303
This patch implements an automated determination of whether the
cinder backup service should be enabled based on whether there
are swift hosts in the environment.
This reduces the number of variables a deployer needs to set in
order to have a functional environment.
Change-Id: I0fd9afea9e962b61d255b86ba894afb96e84e58f
This patch implements an automated determination of whether glance
should have the default store set to swift based on whether there
are swift hosts in the environment.
This reduces the number of variables a deployer needs to set in
order to have a functional environment.
Change-Id: I6909ba2555ab13da5a49a25fb8462ae6a71552af
This patch provides the ability for the repo server to take advantage
of a pre-staged git cache on the deployment host, such as that provided
on OpenStack-CI's nodes.
This reduces the execution time of the build process by ensuring that
the git clone process only has to complete an update, instead of a
fresh clone.
The patch includes a change to the AIO bootstrap which checks for the
existance of a git cache in the location it is typically found in
OpenStack-CI. If that path exists it sets the repo_build_git_cache
variable. In a case where the AIO is not being built in OpenStack-CI
then the deployer may either use the same path, or provide the path
as an extra option when bootstrapping.
Change-Id: I0c9d574a7f694cd3772a68fcdc71673616ea8e3b
Previously there was no way to do a 'dry run' against a set of inventory
configuration files without actually writing the full inventory
structure to disk.
This change adds a simple check flag to the script, allowing users to
pre-validate their configurations prior to executing the Ansible
playbooks. No syntax validation happens against the YAML files; rather,
the dynamic_inventory.py script is executed and builds a full inventory
in memory, but does not write any output.
Currently, this is meant as a starting point. Further validation can
build from here, but the flag is largely meant to check for known
exceptions/errors early.
Change-Id: Ic58566ee124c824c8bba549ade46bce5c268905a
This will limit the lxc-hosts-setup playbook to run against only
the hosts which will receive LXC containers. This prevents LXC
package installation and cache preparation on hosts such as
compute_hosts which will not build any containers.
Change-Id: I002158d6539603ddb86d4b7ea1e4a16bb4ced81f
This patch adds the ability for a deployer to change the desired state
for distribution packages globally through a single variable.
Change-Id: Ibffe78f0d49a419259622d5080cfc763424bda4d
This patch adds the git source for the Magnum dashboard for Horizon to
ensure that the python package is built and installable.
Some minor changes are also made to the other dashboard plugins to
ensure that they are built based on the correct host group memberships.
Change-Id: Ie57fd875f17534215a21fc0ad2e2071b352b366d
Implements: blueprint role-magnum