[openstack-dev] [openstack-ansible][kolla-ansible][tripleo] ansible roles: where they live and what do they do

Alex Schultz aschultz at redhat.com
Thu Aug 9 20:31:34 UTC 2018


Ahoy folks,

I think it's time we come up with some basic rules/patterns on where
code lands when it comes to OpenStack related Ansible roles and as we
convert/export things. There was a recent proposal to create an
ansible-role-tempest[0] that would take what we use in
tripleo-quickstart-extras[1] and separate it for re-usability by
others.   So it was asked if we could work with the openstack-ansible
team and leverage the existing openstack-ansible-os_tempest[2].  It
turns out we have a few more already existing roles laying around as
well[3][4].

What I would like to propose is that we as a community come together
to agree on specific patterns so that we can leverage the same roles
for some of the core configuration/deployment functionality while
still allowing for specific project specific customization.  What I've
noticed between all the project is that we have a few specific core
pieces of functionality that needs to be handled (or skipped as it may
be) for each service being deployed.

1) software installation
2) configuration management
3) service management
4) misc service actions

Depending on which flavor of the deployment you're using, the content
of each of these may be different.  Just about the only thing that is
shared between them all would be the configuration management part.
To that, I was wondering if there would be a benefit to establishing a
pattern within say openstack-ansible where we can disable items #1 and
#3 but reuse #2 in projects like kolla/tripleo where we need to do
some configuration generation.  If we can't establish a similar
pattern it'll make it harder to reuse and contribute between the
various projects.

In tripleo we've recently created a bunch of ansible-role-tripleo-*
repositories which we were planning on moving the tripleo specific
tasks (for upgrades, etc) to and were hoping that we might be able to
reuse the upstream ansible roles similar to how we've previously
leverage the puppet openstack work for configurations.  So for us, it
would be beneficial if we could maybe help align/contribute/guide the
configuration management and maybe misc service action portions of the
openstack-ansible roles, but be able to disable the actual software
install/service management as that would be managed via our
ansible-role-tripleo-* roles.

Is this something that would be beneficial to further discuss at the
PTG? Anyone have any additional suggestions/thoughts?

My personal thoughts for tripleo would be that we'd have
tripleo-ansible calls openstack-ansible-<project> for core config but
package/service installation disabled and calls
ansible-role-tripleo-<project> for tripleo specific actions such as
opinionated packages/service configuration/upgrades.  Maybe this is
too complex? But at the same time, do we need to come up with 3
different ways to do this?

Thanks,
-Alex

[0] https://review.openstack.org/#/c/589133/
[1] http://git.openstack.org/cgit/openstack/tripleo-quickstart-extras/tree/roles/validate-tempest
[2] http://git.openstack.org/cgit/openstack/openstack-ansible-os_tempest/
[3] http://git.openstack.org/cgit/openstack/kolla-ansible/tree/ansible/roles/tempest
[4] http://git.openstack.org/cgit/openstack/ansible-role-tripleo-tempest



More information about the OpenStack-dev mailing list