Can anyone shed some light into this?
1. I'm using the aws_ec2 plugin
2. I can launch an ec2 instance successfully and run commands post launch
My issue comes in when I reference the {{ tags['Name'] }} to pull from AWS
tag Name from the newly created instance. I can see all the tag key/value
info from the when I add the new instance to the host group; however, for
some reason it fails as soon as it hits the new play/task to configure the
hostname based on the aws ec2 tag Name. I'm guessing Ansible is not
carrying over the variables in the add_host to host group.
*fatal: FAILED! => {"msg": "The task includes an option with an undefined
variable. The error was: 'tags' is undefined\n\nThe error appears to be in
'/etc/ansible/roles/component_baselines/hostname/tasks/main.yml': line 12,
column 5, but may\nbe elsewhere in the file depending on the exact syntax
problem.\n\nThe offending line appears to be:\n\n\n - name: 'Update system
name'\n ^ here\n"}*
Here's a snippet of the tail end of the ec2 create playbook:
register: new_ec2
- name: 'Add new instance to host group'
add_host:
hostname: "{{ item.private_ip_address }}"
groupname: 'launched'
loop: "{{ new_ec2.instances }}"
- name: 'Wait for SSH to come up'
delegate_to: "{{ item.private_ip_address }}"
wait_for_connection:
delay: 120
timeout: 480
loop: "{{ new_ec2.instances }}"
- name: 'Run post-launch baseline configuration on instance'
hosts: 'launched'
gather_facts: no
become: yes
roles:
- 'component_baselines/hostname'
Details of the hostname role being called:
- name: 'Gather current system name'
ansible.builtin.setup:
- name: 'Update system name'
shell: >
hostnamectl set-hostname
{{ tags['Name'] }}.{{ domain['fqdn'] }} --static --transient &&
hostnamectl set-hostname {{ tags['Name'] }}.{{ domain['fqdn'] }}
--pretty
when: "tags['Name'] != ansible_facts['hostname']"
- name: 'Update sysconfig File'
template:
src: 'network.j2'
dest: '/etc/sysconfig/network'
owner: 'root'
group: 'root'
mode: '0644'
register: taskresult
notify: 'Restart systemd-hostnamed'
when: "tags['Name'] != ansible_facts['hostname']"
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/f76dcef9-921e-47e7-aea3-8b588613192cn%40googlegroups.com.