Currently we require a slew of deps on each destination node, this
includes a gcc compiler and installing things via pip. We can remove
these dependencies by containerizing them and running and Ansible
inside the container itself. The container would then report back
facts about idempotency.
DocImpact
Closes-Bug: #1481495
Implements: blueprint containerize-dependencies
Change-Id: I3dfccbf9fafc06ffc36e78f3006fe5d3367891df
There is no benefit to hashing in merge_configs.py In fact, the opposite
is true, hashes can collide. This does a direct compare rather than hash.
Change-Id: I9ab7af13e813e2267984092027daf1658faf5bf3
Closes-Bug: #1478494
Due to the licensing issues and the modules not existing in upstream
Ansible yet, I have written a simple module to fill the gaps.
This also uses Keystone v2.0 for all create of users, roles and
endpoints. The implementation of Keystone v3 must be discussed after the
new modules arrive.
Partially-Implements: blueprint ansible-service
Change-Id: I389edd56741360dd26fbbc0a982f365ca27ff446
merge_configs can now check if the destination file has the same content
will be written. This information is used to inform ansible no change has
occured
Closes-Bug: 1471514
Change-Id: I78bce04505349d5aafbb027fd3f7d76ab6eccf6a
Adds initial support for Mariadb with Galera replication in Ansible
using the CONFIG_EXTERNAL methods.
Additionally, this refactors some of the Galera config script to allow
for reuse by CONFIG_EXTERNAL.
Partially Implements: blueprint ansible-service
Change-Id: I566fea0376ecca39fc8a5167f9ff9ff434ea7b7e
Add set_configs function that implements the flow from the proposed
ansible-multi spec. Move start.sh to config-internal.sh to preserve existing
behaviour.
config-externall.sh copies the appropriate configs in from the bind'd
location and sets permissions and ownership appropriately.
Partially Implements: blueprint ansible-multi
Change-Id: I53fca0660451087f273fefc3c63e0d8cf1a2c096
kolla is mandatory to run a version of docker-compose that
includes pid: host support.docker-compose 1.3.0 to include the
necessary features.
docker-compose 1.3.0 project.up() abandoned the parameters
detach and use allow_recreate replace recreate parameters.
closes-Bug: #1458116
Change-Id: I1235da58db5bedf208ebaea2a54568964dc802f8
This ansible module for docker-compose allows for idempotency. I have
submitted a pull request upstream to ansible-modules-extra to include
this new module. When/if the module is accepted upstream if can be
removed from the local module library.
The two playbooks have been updated to use this module. The database
data container does not support idempotency due to the fact that it
exists instead of sleeps. Therefore each time `docker-compose up` is
called, it will start the container and register a change. The
message-broker does not have this issue and will remain unchanged even
repeatedly running these playbooks.
Due to the use of a special branch of docker-compose provided by sdake,
this module requires at least docker-compose==1.2.0rc1
Change-Id: If1644eaa3bff0c2a007fa2d479a95bea941945f6