TL;DR keep globals.yml to a minimum, customise configs via
host_vars/group_vars
It seems right now the "best" approach may be to tokenise variables as
required. This is the approach we currently use in Oracle. There are two
other approaches I can think of available to us:
1) The overwrite mechanism as Jeffrey mentioned
2) Make the merge_configs script modular so it can handle more formats
than just ini
The problem with 1) is that it is heavy weight for the Operator who
wants to just customise one or two variables such as WEBROOT. Now they
have to copy and maintain the entire config file.
The problem with 2) is that I feel it's a burden on us to write and
maintain code that can merge many different file formats. It could be
done, though may potentially be outside the scope of the project.
The tokenisation approach is unfortunately against what is described in
"Kolla’s Deployment Philosophy"[0] though the reality may be that this
approach is the most Operator friendly. In regards to concern of
globals.yml growing unmanageable, I feel globals.yml is overused and
should only store the bare minimum. Service specific variables should be
kept within their own role files (e.g. ansible/roles/horizon/defaults),
and then documented which are available for tweaking via top level
host_vars/group_vars. This is standard practice in other Ansible roles
I've come across.
-Paul
[0] http://docs.openstack.org/developer/kolla/deployment-philosophy.html
On 04/05/16 16:28, Mauricio Lima wrote:
I agree with your approach Jeffrey, although this is not ideal, this is
an approach already used in kolla.
2016-05-04 12:01 GMT-03:00 Jeffrey Zhang <zhang.lei....@gmail.com
<mailto:zhang.lei....@gmail.com>>:
Recently, Jack Ning pushed a PS[0], which export the `WEBROOT` to
the globals.yml file.
Because there is no chance to change the horizon/apache configure
file now.
The root cause is that: Kolla do not support non-ini format
configure file. for the
ini-format file, we use a merge_config module[1] to merge all the
found file. But it
will be not work for configure file for apache, rabbitmq and so on.
I would like to the current merge_config implementation. It is
directly and easy to use.
Not like the puppet, we have to remember the variable name defined
in the module. we have
no chance to add some user-defined variable.
Export the variable to global is very bad and ugly. It will became a
disaster when more
and more variables is exported.
So we should catch up a better solution to handle the configure file.
One solution I have is use overwrite mechanism. for example when
there is a file in
/etc/kolla/config/apache.conf, it will overwrite the templates in
the roles. But this
is still not ideal.
Any body has better solution?
[0] https://review.openstack.org/306928
[1]
http://git.openstack.org/cgit/openstack/kolla/tree/ansible/action_plugins/merge_configs.py
--
Regards,
Jeffrey Zhang
Blog: http://xcodest.me <http://xcodest.me/>
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe:
openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
<http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev