unregister a variable ?

555 views
Skip to first unread message

Torsten Reinhard

unread,
Oct 20, 2014, 8:05:39 AM10/20/14
to ansible...@googlegroups.com
Hi all,

is it possible to "clear" or "unregister" a variable ?

I have this situation:

deploy.yml
- include "deploy-apache.yml"
- include "deploy-tomcat.yml"

deploy-apache and deploy-tomcat both have a dependency to a "deliver-artifact" role, and both run on the same server(s).
The {{installdir}} is either opt/web/install/apache or /opt/web/install/tomcat (read from included *.yml files)

The following task is implemented in this "shared" "deliver-artifact" role:

...
# for each run, backup the old installdir and install into an empty directory 
- name: stat installdir
  stat: path={{installdir}}
  register: installdir_stat

- name: get the current time for a timestamp
  command: date +%Y%m%d-%H%M%S
  register: time

- name: backup installdir
  command: mv {{installdir}} {{installdir}}_{{time.stdout}}
  when: installdir_stat.stat.exists
...

It seems that the "installdir_stat.stat.exists" is true from the "deploy-apache.yml" run - where {{installdir}} was /opt/web/install/apache

For "deploy-tomcat.yml" run the task now tries to mv a directory that doesnt exists - but the variable installdir_stat.stat.exists is true !

=> Can I clear the register ? Or what´s the solution here?

Thanx, Torsten

James Cammarata

unread,
Oct 20, 2014, 2:24:47 PM10/20/14
to ansible...@googlegroups.com
Hi Torsten,

Since there is no `when` conditional on the stat task, it should be re-run and overwrite the registered variable, so I'm a bit unclear why this would be showing the behavior you're seeing. Is this the complete list of tasks, and/or there any other tasks that also use that registered variable name?


--
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 ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/43f4a80b-d931-4dbc-92c2-ce82b11a89ef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Torsten Reinhard

unread,
Oct 21, 2014, 12:08:37 PM10/21/14
to ansible...@googlegroups.com
No there are no other modules using that variable. But The question still is: Can i clear The variable somehow?

For now i removed The stat task and when condition -and added a simple Shell if statement instead to the mv operation.

Torsten

Von: James Cammarata
Gesendet: ‎20.‎10.‎2014 20:24
An: ansible...@googlegroups.com
Betreff: Re: [ansible-project] unregister a variable ?

James Cammarata

unread,
Oct 21, 2014, 1:54:15 PM10/21/14
to ansible...@googlegroups.com
Yes, you should be able to use set_fact to initialize it to some other value and test that in your when: statement.

Reply all
Reply to author
Forward
0 new messages