On 02/06/2016 04:05 AM, JD Rosensweig wrote:
As part of my Ansible playbook I down and install an RPM from an
internal repository. This RPM comes packaged with a bunch of
configuration. For most of my machines I don't need to change this
configuration. However for a small subset, defined by an ansible group,
I need to modify a few of the configuration fields.
I'm assuming I would need to do something like so:
1. Wait till my RPM is installed and "running"
2. Stop the service
3. Modify the configuration file somehow? Use a when clause to limit it
to the group I want to modify.
4. Restart the service
Or possibly there is a better way to achieve to do this. Can anyone out
there suggest how I could achieve my general goal?
1. RPM shouldn't start the service, ever. DEB packages usually do start
them, but rpm has different policies and in any way, starting service
immediately upon installation from packages is imho a bad practice.
So my first advice would be - don't start the service from RPM, start it
from Ansible.
So, your playbook should look like:
- install package
- modify config file(s)
- start service(s)
To modify files only on a subset of servers, you can opt for two approaches:
1. deploy jinja2 templates to all servers, and address difs for subset
through variables
2. deploy static files (or templates - doesn't matter) when some
specific variable is set in your group.
I would prefer the 1st approach, but that really depends on the format
of your config files and type of changes you need to make... Devil is in
the details.
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/56B6A01A.5090900%40gmail.com.
For more options, visit https://groups.google.com/d/optout.