I believe you need to make 2 changes: loop.index instead of usenet_servers[server].loop.index
And just use server instead usenet_servers[server] everywhere else. server isn't the index, it is the actual hash/dict. On Dec 22, 2014 4:08 AM, "ayounggun" <[email protected]> wrote: > Hi all > > Can anyone help me with do a loop in a template? > > bcoca helped me earlier on IRC and I think I'm a bit closer than I was > before! =] > > (1) variables (layout copied from http://www.yaml.org/start.html) > > usenet_servers: > - server: astraweb > level: 0 > host: ssl-eu.astraweb.com > port: 563 > username: me > password: mypass > join_group: yes > connections: 2 > - server: newsgroupdirect > level: 1 > host: news-eu-ssl.newsgroupdirect.com > port: 563 > username: me > password: mypass > join_group: yes > connections: 3 > - server: newsgroupdirect > level: 1 > host: news.tweaknews.eu > port: 563 > username: me > password: mypass > join_group: yes > connections: 10 > > > (2) task > - name: create nzbget conf file > template: > src=nzbget.conf.j2 > dest=/etc/nzbget.conf > mode=660 > owner=root > group=library > > > > (3) loop in template nzbget.conf.j2 > > {% for server in usenet_servers %} > Server{{ usenet_servers[server].loop.index }}.Level={{ usenet_servers[ > server].level }} > Server{{ usenet_servers[server].loop.index }}.Host={{ usenet_servers[ > server].host }} > Server{{ usenet_servers[server].loop.index }}.Port={{ usenet_servers[ > server].port }} > Server{{ usenet_servers[server].loop.index }}.Username={{ usenet_servers[ > server].username }} > Server{{ usenet_servers[server].loop.index }}.Password={{ usenet_servers[ > server].password }} > Server{{ usenet_servers[server].loop.index }}.JoinGroup={{ usenet_servers[ > server].join_group }} > Server{{ usenet_servers[server].loop.index }}.Connections= {{ > usenet_servers[server].connections }} > > > {% endfor %} > > > (4) desired output from loop > > Server1.Level=0 > Server1.Host=ssl-eu.astraweb.com > Server1.Port=563 > Server1.Username=me > Server1.Password=mypass > Server1.JoinGroup=yes > Server1.Connections=2 > > Server2.Level=1 > Server2.Host=news-eu-ssl.newsgroupdirect.com > Server2.Port=563 > Server2.Username=me > Server2.Password=mypass > Server2.JoinGroup=yes > Server2.Connections=3 > > Server3.Level=1 > Server3.Host=news.tweaknews.eu > Server3.Port=563 > Server3.Username=me > Server3.Password=mypass > Server3.JoinGroup=yes > Server3.Connections=10 > > > (5) error > TASK: [nzbget | create nzbget conf file] > ************************************** > <archpi> ESTABLISH CONNECTION FOR USER: root > <archpi> EXEC ['sshpass', '-d12', 'ssh', '-C', '-tt', '-vvv', '-o', > 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', > 'ControlPath=/home/alex/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=22' > , '-o', 'GSSAPIAuthentication=no', '-o', 'PubkeyAuthentication=no', '-o', > 'User=root', '-o', 'ConnectTimeout=10', 'archpi', "/bin/sh -c 'mkdir -p > $HOME/.ansible/tmp/ansible-tmp-1419240488.89-153756188720618 && echo > $HOME/.ansible/tmp/ansible-tmp-1419240488.89-153756188720618'"] > fatal: [archpi] => {'msg': "AnsibleUndefinedVariable: One or more > undefined variables: list object has no element {'username': 'me', 'level': > 0, 'server': 'astraweb', 'connections': 2, 'host': 'ssl-eu.astraweb.com', > 'join_group': True, 'password': 'mypass', 'port': 563}", 'failed': True} > fatal: [archpi] => {'msg': "AnsibleUndefinedVariable: One or more > undefined variables: list object has no element {'username': 'me', 'level': > 0, 'server': 'astraweb', 'connections': 2, 'host': 'ssl-eu.astraweb.com', > 'join_group': True, 'password': 'mypass', 'port': 563}", 'failed': True} > > > 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/fab45645-6282-4da9-8125-e94a0b1b053c%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/fab45645-6282-4da9-8125-e94a0b1b053c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CAD8N0v85wMTXxn5%3DDULMB8R91pi0-7BWdb7VEW04kjjp0xz43g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
