Hi All,

I found this link:

https://docs.ansible.com/ansible/playbooks_loops.html#using-register-with-a-loop

Which suggests that once register is run with a loop the output goes into a 
structure called results. 

I tried:

artisan_current.results[item].stat.exists ?

Still no go.


On Monday, March 7, 2016 at 1:54:27 PM UTC, Steve Irvine wrote:
>
> Hi Everyone,
>
> Quick question, I have a play where I put a laravel queue system in 
> maintenance mode before running updates against it's consumers.
>
> I'd like to check for the existence of a file with stat on the queue 
> manager, run it if it exists (it might not be there if this is the first 
> run and it hasn't been deployed yet). 
>
> I've tried:
>
>     # If artisan exists, then set the application into maint. mode
>     - name: checking for artisan's existance in current symlink
>       stat: path={{ hostvars[item].www_dir }}/current/artisan
>       register: artisan_current
>       delegate_to: "{{ item }}"
>       with_items: groups.queue_managers
>
>     # This makes sure we don't keep serving an old release from the pool 
> if the deployment fails
>     # NGinx doesn't use the symlink so might keep serving from an old path
>     - name: set maint.mode in current version
>       command: php {{ hostvars[item].www_dir }}/current/artisan down
>       when: artisan_current.stat.exists is defined and 
> artisan_current.stat.exists
>       delegate_to: "{{ item }}"
>       with_items: groups.queue_managers
>
>
> and
>
> - name: checking for artisan's existance in current symlink
>       stat: path={{ hostvars[item].www_dir }}/curthe rent/artisan
>       register: hostvars[item].artisan_current
>       delegate_to: "{{ item }}"
>       with_items: groups.queue_managers
>
>
> - name: set maint.mode in current version
>       command: php {{ hostvars[item].www_dir }}/current/artisan down
>       when: hostvars[item].artisan_current.stat.exists is defined and 
> hostvars[item].artisan_current.stat.exists
>       delegate_to: "{{ item }}"
>       with_items: groups.queue_managers 
>
> Whatever happens, I can see the stat return "exists: true", and then the 
> conditional check fails:
>
> build 07-Mar-2016 11:57:06 TASK [checking for artisan's existance in current 
> symlink] ********************* 
> build 07-Mar-2016 11:57:07 ok: [redacted -> redacted ] => (item=redacted) => 
> {"changed": false, "item": "redacted", "stat": {"atime": 1457350038.6739905, 
> "checksum": "659b7d3cb04a4d3b4fd58cb147c2c9b33e0ea831", "ctime": 
> 1457349988.065974, "dev": 64769, "exists": true, ...lots more output 
> here...}} 
> build 07-Mar-2016 11:57:07 build 07-Mar-2016 11:57:07 TASK [set maint.mode in 
> current version] *************************************** 
> build 07-Mar-2016 11:57:07 skipping: [redacted] => (item=redacted) => 
> {"changed": false, "item": "redacted", "skip_reason": "Conditional check 
> failed", "skipped": true}
>
> Can anyone help me work out where the register actually puts the results of 
> the stat and therefore how I can present the results to the when: statement.
>
>
> Thanks,
>
>
> Steve
>
>

-- 
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/1bc9034a-e00d-4c13-a1ef-2fdac99165d6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to