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. For more options, visit https://groups.google.com/d/optout.
