On 12. okt. 2016 01:31, ZillaYT wrote:
I have a dictionary that defines AWS mounts based on IP address
aws_efs_mount:
- 10.22.100.1: aws_mount_10_22_100_1
- 10.22.100.2: aws_mount_10_22_100_2
You don't have a dictionary, you have a list with dictionaries.
Now I want a task that creates an entry in /etc/fstab
# The idea is the src value resolves to src=aws_mount_10_22_100_1 for a IP
of 10.22.100.1
- name: Add entry in /etc/fstab
mount: name=/mt/mount_path src="{{ aws_efs_mount.{{
ansible_default_ipv4.address }} }}"
I get
TASK [elasticsearch-elk : Add entry in /etc/fstab *****
fatal: [10.22.x.x]: FAILED! => {"failed": true, "msg": "plate error while
templating string: expected name or number. String: {{ aws_efs_mount.{{
ansible_default_ipv4.address }} }}"}
How can I achieve this? I can't use a template since there are values in
the /etc/fstab file.
You can't use curly brackets inside curly bracket.
To make it work you need to change aws_efs_mount to
aws_efs_mount:
10.22.100.1: aws_mount_10_22_100_1
10.22.100.2: aws_mount_10_22_100_2
And the src in mount to
src={{
aws_efs_mount[hostvars[inventory_hostname].ansible_default_ipv4.address] }}
--
Kai Stian Olstad
--
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-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/a04efc24-2c1c-662a-27c8-d1ab36ba8f48%40olstad.com.
For more options, visit https://groups.google.com/d/optout.