Hi all,
I'm using ansible to manage a couple of django apps. In particular I'm
using the git module to get a clone of these apps in the production
machines.
If you don't know django, the configuration of the entire web application
is saved in a file (named settings.py) that is usually committed along all
the code.
For a lot of reasons i keep two different settings.py files:
1. The one committed in the git repo is the one containing the settings
using during development.
2. For the production machine I have a different settings.py, not
committed and manage separately (it contains all the passwords for
databases, API keys for other service and other stuff that don't belong in
the main repo).
So, i run a playbook like this:
- name: Clone the repository
git: repo=...
dest=/path/to/clone
version=master
force=yes
notify:
- django manage collectstatic
- django manage south migrate
- restart uWSGI
- name: Upload production settings.py (this will overwrite the dev one from
the repo)
template: src=settings.py.j2
dest=/path/to/clone/settings.py
owner=root
group=root
mode=0644
That works fine but it does have a problem.
If I run the playbook a second time the git task will always pull the
repository overwriting the production settings.py uploaded the first time,
even when the clone is already up-to-date.
Here's the verbose output for the task:
TASK: [box | Clone the repository] ************************************
changed: [vagrant_home_server] => {"after":
"0d7a146a6eadd279218c1305d400d6058d17f26f", "before":
"0d7a146a6eadd279218c1305d400d6058d17f26f", "changed": true, "item": "
/path/to/clone", "msg": "Local modifications exist"}
You can see that the target repo is already up-to-date but the task has
pulled the code overwriting the productions settings.py. This will also
trigger the tasks under the notify, in particular the *restart uWSGI* one
that shouldn't be executed every time.
So my question is: it is possible to keep the force=yes behavior, but
pulling only when really needed?
Best regards,
EP
--
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/a5308d07-d7c2-44aa-a40c-f76464c5e8f1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.