Hi all

Could someone lend me a hand to figure looping over variables?

I've got a number of hosts which are grouped in the inventory quite 
strictly in a rather traditional way:

dev-group1
  hostA
  hostB
tst-group1
  hostC
  hostD
pre-group1
  hostE
  hostF
pro-group1
  hostG
  hostH
dev-group2
  hostI
  hostJ
tst-group2
  hostK
  hostL
and so on...

I'm about to replace/template a great number of files in them and I'd like 
to have local backups first ;)
The only requirement is that the files have to be fetched to an already 
established structure that mimics the inventory:

/backup/dev-group1/
/backup/tst-group1/
etc...

So I made an attempt to loop over each group:

$ ansible-playbook fetch_from_server.yml -sK --extra-vars 
"@fetch_loop_vars.yml" -v 

fetch_loop_vars.yml looks like this:
---
file: '/root/.bash_profile'
my_groups: ['0dm-sap', 'dev-sap', 'tst-sap', 'pre-sap', 'pro-sap']

And my fetch_from_server.yml is this:
---
- hosts: '{{my_groups}}'
  sudo: True
  gather_facts: no
  tasks:
    - name: fetch the file from the server
      fetch: src={{file}} dest=/backup/{{my_groups}}/{{inventory_hostname}}

I get this result when running:

ok: [hostA] => {"changed": false, "dest": "/backup/*[dev-group1,/hostA/*
root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostB] => {"changed": false, "dest": "/backup/*[dev-group1,/hostB/*
root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostD] => {"changed": false, "dest": "/backup/*[dev-group1,/hostC/*
root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostC] => {"changed": false, "dest": "/backup/*[dev-group1,/hostD/*
root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}


And I'd like to get:

ok: [hostA] => {"changed": false, "dest": "/backup/*dev-group1/hostA*
/root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostB] => {"changed": false, "dest": "/backup/*dev-group1/hostB*
/root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostD] => {"changed": false, "dest": "/backup/*tst-group1/hostC*
/root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}
ok: [hostC] => {"changed": false, "dest": "/backup/*tst-group1/hostD*
/root/.bash_profile", "file": "/root/.bash_profile", "md5sum": 
"bab9333347e752b87add49020919a078"}

So the problems are:
- It's not iterating over {{my_groups}}. Every host is placed under the 
first defined group: dev-group1
- It's actually writing the dir of the group as "[dev-group1," which of 
course is not what I need.

I'm sure this is a trivial issue for those fluent in python, which 
obviously is not my case.

Any help appreciated
Thanks!

-- 
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/f6d66901-d9c3-46b6-9738-7ef472a7674d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to