hostnamectl set-hostname {{ 
hostvars['127.0.0.1']['new_ec2']['instances'] 'tags]'[''Name'] }}.{{ 
domain['fqdn'] }} --pretty

this line is missing a "[" before 'tags' and has a "]" before the ' after 
tags.

         hostnamectl set-hostname {{ 
hostvars['127.0.0.1']['new_ec2']['instances'] [  'tags]' [''Name'] }}.{{ 
domain['fqdn'] }} --pretty
On Tuesday, August 23, 2022 at 10:51:48 AM UTC-4 Carm wrote:

> I was able to reference new_ec2 using the hostvars magic variable as 
> follows
> :
>  - name: 'Run post-launch baseline configuration on instance'
>     hosts: 'launched'
>     gather_facts: no
>     become: yes
>   
>     tasks:
>
>      - debug: var=hostvars['127.0.0.1']['new_ec2']['instances']
>        when: hostvars['127.0.0.1']['new_ec2']['instances'] is defined
>
> The output shows the following:
>
> TASK [debug] 
> ****************************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/rhel-8-build.yml:255
> ok: [test8] => {
>     "hostvars['127.0.0.1']['new_ec2']['instances']": [
>
>         {
>             "ami_launch_index": 0,
>             "architecture": "x86_64",
>             "block_device_mappings": [
>                 {
>                     "device_name": "/dev/sda1",
>                     "ebs": {
>                         "attach_time": "2022-08-23T14:32:05+00:00",
>
>                         "delete_on_termination": false,
>                         "status": "attaching",
>                         "volume_id": "vol-0"
>                     }
>                 }
>             ],
>             "capacity_reservation_specification": {
>                 "capacity_reservation_preference": "open"
>             },
>             "client_token": "",
>
>             "cpu_options": {
>                 "core_count": 1,
>                 "threads_per_core": 2
>             },
>             "ebs_optimized": true,
>             "ena_support": true,
>             "enclave_options": {
>                 "enabled": false
>             },
>             "hibernation_options": {
>                 "configured": false
>             },
>             "hypervisor": "xen",
>             "iam_instance_profile": {
>                 "arn": 
> "arn:aws-us:iam::xxxxxxxxxxxxxxxx:instance-profile/xxxxxxxxxxx",
>                 "id": "xxxxxxxxxxxx"
>             },
>             "image_id": "ami-0xxxxxxxxxxxxxx",
>             "instance_id": "i-0xxxxxxxxxxxx",
>             "instance_type": "t3a.medium",
>             "key_name": "xxxx",
>             "launch_time": "2022-08-23T14:32:05+00:00",
>
>             "maintenance_options": {
>                 "auto_recovery": "default"
>             },
>             "metadata_options": {
>                 "http_endpoint": "enabled",
>                 "http_protocol_ipv6": "disabled",
>                 "http_put_response_hop_limit": 1,
>                 "http_tokens": "optional",
>                 "instance_metadata_tags": "disabled",
>                 "state": "pending"
>             },
>             "monitoring": {
>                 "state": "disabled"
>             },
>             "network_interfaces": [
>                 {
>                     "attachment": {
>                         "attach_time": "2022-08-23T14:32:05+00:00",
>                         "attachment_id": "eni-attach-06xxxxx7",
>
>                         "delete_on_termination": true,
>                         "device_index": 0,
>                         "network_card_index": 0,
>                         "status": "attaching"
>                     },
>                     "description": "",
>                     "groups": [
>                         {
>                             "group_id": "sg-34758e50",
>                             "group_name": "xxxxxx"
>
>                         }
>                     ],
>                     "interface_type": "interface",
>                     "ipv6_addresses": [],
>                     "mac_address": "0xxxxxxx",
>                     "network_interface_id": "eni-xxxxxxxx",
>                     "owner_id": "xxxxxxxxxxxx",
>                     "private_dns_name": 
> "ip-xxx-xx-xx-xx.us-west-1.compute.internal",
>                     "private_ip_address": "xxx.xx.xx.24",
>                     "private_ip_addresses": [
>                         {
>                             "primary": true,
>                             "private_dns_name": 
> "ip-xxx-xx-xx-24.us-west-1.compute.internal",
>                             "private_ip_address": "xxx.xx.xx.24"
>
>                         }
>                     ],
>                     "source_dest_check": true,
>                     "status": "in-use",
>                     "subnet_id": "subnet-xxx",
>                     "vpc_id": "vpc-xxx"
>
>                 }
>             ],
>             "placement": {
>                 "availability_zone": "us-west-1a",
>                 "group_name": "",
>                 "tenancy": "default"
>             },
>             "platform_details": "Red Hat Enterprise Linux",
>             "private_dns_name": 
> "ip-xxx-xx-xx-24.us-west-1.compute.internal",
>
>             "private_dns_name_options": {
>                 "enable_resource_name_dns_a_record": false,
>                 "enable_resource_name_dns_aaaa_record": false,
>                 "hostname_type": "ip-name"
>             },
>             "private_ip_address": "xxx.xx.xx.24",
>
>             "product_codes": [],
>             "public_dns_name": "",
>             "root_device_name": "/dev/sda1",
>             "root_device_type": "ebs",
>             "security_groups": [
>                 {
>                     "group_id": "sg-xxxxx",
>                     "group_name": "xxxxx"
>
>                 }
>             ],
>             "source_dest_check": true,
>             "state": {
>                 "code": 0,
>                 "name": "pending"
>             },
>             "state_transition_reason": "",
>             "subnet_id": "subnet-xxxxx",
>             "tags": {
>                 "Application Group": "CO",
>                 "Application System": "xxx",
>
>                 "Backupset": "true",
>                 "CST Start/Stop Schedule": "0700;1900;Weekdays",
>                 "CostCenter": "xxx",
>                 "Description": "Evaluation Server",
>                 "Environment": "xxxxx",
>
>                 "Name": "test8",
>                 "OS": "RHEL",
>                 "OS Version": "8",
>                 "Owner": "CO",
>                 "Patch Group": "Normal",
>                 "Sub Environment": "xxxxxxxx",
>
>                 "Type": "Eval"
>             },
>             "usage_operation": "RunInstances:0010",
>             "usage_operation_update_time": "2022-08-23T14:32:05+00:00",
>             "virtualization_type": "hvm",
>             "vpc_id": "vpc-dxxxxx"
>         }
>     ]
> }
>
>
> My next question is, how can I grab the Name tags and use it in my update 
> system name command below? I tried this but it errors out:
>      - name: 'Update system name'
>        shell: >
>          hostnamectl set-hostname
>          {{ hostvars['127.0.0.1']['new_ec2']['instances']['tags']['Name'] 
> }}.{{ domain['fqdn'] }} --static --transient &&
>          hostnamectl set-hostname {{ 
> hostvars['127.0.0.1']['new_ec2']['instances'] 'tags]'[''Name'] }}.{{ 
> domain['fqdn'] }} --pretty
>     
>
>
> TASK [Update system name] 
> ***************************************************************************************************************************************************************
> task path: /etc/ansible/playbooks/rhel-8-build.yml:278
> fatal: [test8]: FAILED! => {"msg": "The task includes an option with an 
> undefined variable. The error was: 'list object' has no attribute 
> 'tags'\n\nThe error appears to be in 
> '/etc/ansible/playbooks/rhel-8-build.yml': line 278, column 8, 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"}
>
> On Mon, Aug 22, 2022 at 4:23 PM Carmen <[email protected]> wrote:
>
>> Correct, I'm getting the domain['fqdn'] in my global environment 
>> variables yml file.  
>>
>> I updated the hostname task, but it's still failing on an 
>> undefined variable 'new_ec2" when it reaches that point
>>
>>      - name: 'Update system name'
>>        shell: >
>>          hostnamectl set-hostname
>>          {{ item.tags.Name }}.{{ domain['fqdn'] }} --static --transient 
>> &&
>>          hostnamectl set-hostname {{ item.tags.Name }}.{{ domain['fqdn'] 
>> }} --pretty
>>        loop: "{{ new_ec2.instances }}"
>>
>>
>> PLAY [Run post-launch baseline configuration on instance] 
>> *******************************************************************************************************************************
>> META: ran handlers
>>
>> TASK [Update system name] 
>> ***************************************************************************************************************************************************************
>> task path: /etc/ansible/playbooks/rhel-8-build.yml:265
>> fatal: [test8]: FAILED! => {"msg": "'new_ec2' is undefined"}
>>
>> PLAY RECAP 
>> ******************************************************************************************************************************************************************************
>> 127.0.0.1                  : ok=14   changed=2    unreachable=0   
>>  failed=0    skipped=0    rescued=0    ignored=0   
>> test8                     : ok=0    changed=0    unreachable=0    failed=1 
>>    skipped=0    rescued=0    ignored=0   
>>
>>
>>
>> So there are 2 different hosts with specific tasks ran from each. The 
>> start of this playbook has localhost set to create a new RHEL ec2 instance 
>> from an ami. I also prompt for specific vars at the beginning prior to 
>> creating a new ec2 instance. See below....I didn't include all the prompts 
>> to keep this ansible post so it's not so long but let me know if you need 
>> it. Does Ansible clear its memory of variables/facts from tasks from 
>> localhost to the new hosts? I want to be able to launch a new ec2 instance, 
>> connect to it, and then run post configuration tasks (without having to run 
>> 2 different ansible-playbook commands). The only issue has been trying to 
>> grab the tag Name from a newly launched ec2 instance. Maybe there's a 
>> better way to do this than the approach I'm taking. 
>>
>>   - name: 'Build a RHEL 8 server from AMI'
>>     hosts: '127.0.0.1'
>>     connection: 'local'
>>     gather_facts: no
>>
>>    pre_tasks:
>>
>>       - pause:
>>           prompt: >-
>>             What is the name of this system? ( ex: DB-09 )
>>         register: prompt_name_tag
>>
>>       - pause:
>>           prompt: >-
>>             Instance Type? ( press Enter for default: t3a.medium )
>>         register: prompt_ec2_type
>>
>>       - pause:
>>           prompt: >-
>>             Provide an AMI ID:
>>             ( press Enter for default: Vanilla RHEL 8 Base AMI )
>>         register: prompt_ami_id
>>
>>     tasks:
>>
>>       - name: 'Launch instance'
>>         ec2_instance:
>>           image_id: >-
>>             {{
>>             prompt_ami_id.user_input if prompt_ami_id.user_input
>>             else build['aws']['defaults']['ami']
>>             }}
>>           instance_type: >-
>>             {{
>>             prompt_ec2_type.user_input if prompt_ec2_type.user_input
>>             else 't3a.medium'
>>             }}
>>
>>         register: new_ec2
>>    
>>   - 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: 'Update system name'
>>        shell: >
>>          hostnamectl set-hostname
>>          {{ item.tags.Name <http://item.tags.name/> }}.{{ domain['fqdn'] 
>> }} --static --transient &&
>>          hostnamectl set-hostname {{ item.tags.Name 
>> <http://item.tags.name/> }}.{{ domain['fqdn'] }} --pretty
>>        loop: "{{ new_ec2.instances }}"
>>
>> On Mon, Aug 22, 2022 at 2:01 PM 'Rowe, Walter P. (Fed)' via Ansible 
>> Project <[email protected]> wrote:
>>
>>> The registered new_ec2.instances has a tags dictionary key so 
>>> item.tags.Name should reference it in a loop on new_ec2.instances. I 
>>> assume domain[fqdn] is some other dictionary set somewhere else.
>>>
>>> *"tags"*: {"Application Group": "CORE", "Application System": 
>>> "Development Team", "Backupset": "true", "CST Start/Stop Schedule": 
>>> "0700;1900;Weekdays", "CostCenter": "Dev", "Description": "Evaluation 
>>> Server", "Environment": "DEV", *"Name"*: "test8", "OS": "RHEL", "OS 
>>> Version": "8", "Owner": "Development Center", "Patch Group": "Normal", "Sub 
>>> Environment": "Development", "Type": "Eval"}
>>>
>>>      - name: 'Update system name'
>>>        shell: >
>>>          hostnamectl set-hostname
>>>          {{ *item.tags.Name <http://item.tags.Name>* }}.{{ 
>>> domain['fqdn'] }} --static --transient &&
>>>          hostnamectl set-hostname {{ tags.Name }}.{{ domain['fqdn'] }} 
>>> --pretty
>>>
>>> *        loop: "{{ new_ec2.instances }}"*
>>>
>>>
>>>
>>> Walter
>>> --
>>> Walter Rowe, Division Chief
>>> Infrastructure Services, OISM
>>>
>>> On Aug 22, 2022, at 1:42 PM, Carmen <[email protected]> wrote:
>>>
>>> Hi Walter, 
>>>
>>> Thanks for the reply! Yes, that's correct. How can I reference the tags 
>>> inside the new_ec2_instances? 
>>> Specifically, I want to pull the tag called Name to use in this next set 
>>> of play once the new instance is launched and up and running. Below is 
>>> where i expect to use the name tag to set the hostname on the server:
>>>
>>>   - name: 'Run post-launch baseline configuration on instance'
>>>     hosts: 'launched'
>>>     gather_facts: no
>>>     become: yes
>>>
>>>     tasks:
>>>
>>>      - name: 'Update system name'
>>>        shell: >
>>>          hostnamectl set-hostname
>>>          {{ tags.Name }}.{{ domain['fqdn'] }} --static --transient &&
>>>          hostnamectl set-hostname {{ tags.Name }}.{{ domain['fqdn'] }} 
>>> --pretty
>>>
>>>
>>>
>>>
>>> *Here's more of the output results, if needed:*
>>>
>>> TASK [Launch instance] 
>>> ******************************************************************************************************************************************************************
>>> task path: /etc/ansible/playbooks/rhel-8-build.yml:96
>>> redirecting (type: modules) ansible.builtin.ec2_instance to 
>>> community.aws.ec2_instance
>>> redirecting (type: modules) community.aws.ec2_instance to 
>>> amazon.aws.ec2_instance
>>> [DEPRECATION WARNING]: The purge_tags parameter currently defaults to 
>>> False. For consistency across the collection, this default value will 
>>> change to True in release 5.0.0. This 
>>> feature will be removed from amazon.aws in version 5.0.0. Deprecation 
>>> warnings can be disabled by setting deprecation_warnings=False in 
>>> ansible.cfg.
>>> changed: [127.0.0.1] => {"changed": true, "instance_ids": ["i-005f7ce"], 
>>> "instances": [{"ami_launch_index": 0, "architecture": "x86_64", 
>>> "block_device_mappings": [{"device_name": "/dev/sda1", "ebs": 
>>> {"attach_time": "2022-08-22T16:44:38+00:00", "delete_on_termination": 
>>> false, "status": "attaching", "volume_id": "vol-0488a0"}}], 
>>> "capacity_reservation_specification": {"capacity_reservation_preference": 
>>> "open"}, "client_token": "64c1d4b064f", "cpu_options": {"core_count": 1, 
>>> "threads_per_core": 2}, "ebs_optimized": true, "ena_support": true, 
>>> "enclave_options": {"enabled": false}, "hibernation_options": 
>>> {"configured": false}, "hypervisor": "xen", "iam_instance_profile": {"arn": 
>>> "arn:aws-us:iam::23489:instance-profile/Ansible", "id": "AIPAXKK"}, 
>>> "image_id": "ami-0beac6", "instance_id": "i-005f7ce", "instance_type": 
>>> "t3a.medium", "key_name": "test", "launch_time": 
>>> "2022-08-22T16:44:37+00:00", "maintenance_options": {"auto_recovery": 
>>> "default"}, "metadata_options": {"http_endpoint": "enabled", 
>>> "http_protocol_ipv6": "disabled", "http_put_response_hop_limit": 1, 
>>> "http_tokens": "optional", "instance_metadata_tags": "disabled", "state": 
>>> "pending"}, "monitoring": {"state": "disabled"}, "network_interfaces": 
>>> [{"attachment": {"attach_time": "2022-08-22T16:44:37+00:00", 
>>> "attachment_id": "eni-attach-03c0fe9", "delete_on_termination": true, 
>>> "device_index": 0, "network_card_index": 0, "status": "attaching"}, 
>>> "description": "", "groups": [{"group_id": "sg-34", "group_name": "INT User 
>>> Data"}], "interface_type": "interface", "ipv6_addresses": [], 
>>> "mac_address": "06", "network_interface_id": "eni-0cac24c", "owner_id": 
>>> "23489", "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.3", "private_ip_addresses": [{"primary": 
>>> true, "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.3"}], "source_dest_check": true, "status": 
>>> "in-use", "subnet_id": "subnet-f5b", "vpc_id": "vpc-dbc"}], "placement": 
>>> {"availability_zone": "us-west-1a", "group_name": "", "tenancy": 
>>> "default"}, "platform_details": "Red Hat Enterprise Linux", 
>>> "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_dns_name_options": {"enable_resource_name_dns_a_record": false, 
>>> "enable_resource_name_dns_aaaa_record": false, "hostname_type": "ip-name"}, 
>>> "private_ip_address": "10.1.4.3", "product_codes": [], "public_dns_name": 
>>> "", "root_device_name": "/dev/sda1", "root_device_type": "ebs", 
>>> "security_groups": [{"group_id": "sg-34", "group_name": "INT User Data"}], 
>>> "source_dest_check": true, "state": {"code": 0, "name": "pending"}, 
>>> "state_transition_reason": "", "subnet_id": "subnet-f5b", "tags": 
>>> {"Application Group": "CORE", "Application System": "Development Team", 
>>> "Backupset": "true", "CST Start/Stop Schedule": "0700;1900;Weekdays", 
>>> "CostCenter": "Dev", "Description": "Evaluation Server", "Environment": 
>>> "DEV", "Name": "test8", "OS": "RHEL", "OS Version": "8", "Owner": 
>>> "Development Center", "Patch Group": "Normal", "Sub Environment": 
>>> "Development": "hvm", "vpc_id": "vpc-dbc"}], "spec": 
>>> {"BlockDeviceMappings": [], "ClientToken": "64c1d4b", 
>>> "DisableApiTermination": true, "EbsOptimized": true, "IamInstanceProfile": 
>>> {"Arn": "arn:aws-us:iam::23489:instance-profile/Ansible"}, "ImageId": 
>>> "ami-0beac", "InstanceType": "t3a.medium", "KeyName": "test", "MaxCount": 
>>> 1, "MinCount": 1, "NetworkInterfaces": [{"AssociatePublicIpAddress": false, 
>>> "DeviceIndex": 0, "Groups": ["sg-34"], "SubnetId": "subnet-f5b"}], 
>>> "TagSpecifications": [{"ResourceType": "volume", "Tags": [{"Key": 
>>> "Application Group", "Value": "CORE"}, {"Key": "Application System", 
>>> "Value": "Development Team"}, {"Key": "Backupset", "Value": "true"}, 
>>> {"Key": "CST Start/Stop Schedule", "Value": "0700;1900;Weekdays"}, {"Key": 
>>> "Description", "Value": "Evaluation Server"}, {"Key": "CostCenter", 
>>> "Value": "Dev"}, {"Key": "Environment", "Value": "DEV"}, {"Key": "Name", 
>>> "Value": "test8"}, {"Key": "OS", "Value": "RHEL"}, {"Key": "OS Version", 
>>> "Value": "8"}, {"Key": "Owner", "Value": "Develoment Center"}, {"Key": 
>>> "Patch Group", "Value": "Normal"}, {"Key": "Sub Environment", "Value": 
>>> "Development"}, {"Key": "Type", "Value": "Eval"}]}, {"ResourceType": 
>>> "instance", "Tags": [{"Key": "Application Group", "Value": "CORE"}, {"Key": 
>>> "Application System", "Value": "Development Team"}, {"Key": "Backupset", 
>>> "Value": "true"}, {"Key": "CST Start/Stop Schedule", "Value": 
>>> "0700;1900;Weekdays"}, {"Key": "Description", "Value": "A1 Operations 
>>> Evaluation Server"}, {"Key": "CostCenter", "Value": "Dev"}, {"Key": 
>>> "Environment", "Value": "DEV"}, {"Key": "Name", "Value": "test8"}, {"Key": 
>>> "OS", "Value": "RHEL"}, {"Key": "OS Version", "Value": "8"}, {"Key": 
>>> "Owner", "Value": "Development Center"}, {"Key": "Patch Group", "Value": 
>>> "Normal"}, {"Key": "Sub Environment", "Value": "Development"}, {"Key": 
>>> "Type", "Value": "Eval"}]}]}}
>>>
>>>
>>>
>>>  TASK [Add new instance to host group] 
>>> ***************************************************************************************************************************************************
>>> task path: /etc/ansible/playbooks/rhel-8-build.yml:209
>>> creating host via 'add_host': hostname=test8
>>> ok: [127.0.0.1] => (item={'ami_launch_index': 0, 'image_id': 
>>> 'ami-0beac6b6', 'instance_id': '06-005sd3sfs', 'instance_type': 
>>> 't3a.medium', 'key_name': 'test', 'launch_time': 
>>> '2022-08-22T16:44:37+00:00', 'monitoring': {'state': 'disabled'}, 
>>> 'placement': {'availability_zone': 'us-west-1a', 'group_name': '', 
>>> 'tenancy': 'default'}, 'private_dns_name': 
>>> 'ip-10-1-4-1x.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.1x', 'product_codes': [], 'public_dns_name': 
>>> '', 'state': {'code': 0, 'name': 'pending'}, 'state_transition_reason': '', 
>>> 'subnet_id': 'subnet-f5b', 'vpc_id': 'vpc-dbc5', 'architecture': 'x86_64', 
>>> 'block_device_mappings': [{'device_name': '/dev/sda1', 'ebs': 
>>> {'attach_time': '2022-08-22T16:44:38+00:00', 'delete_on_termination': 
>>> False, 'status': 'attaching', 'volume_id': 'vol-0488sdfec'}}], 
>>> 'client_token': '64c1d49a1d', 'ebs_optimized': True, 'ena_support': True, 
>>> 'hypervisor': 'xen', 'iam_instance_profile': {'arn': 
>>> 'arn:aws-usv:iam::23489:instance-profile/Ansible', 'id': 'AI'}, 
>>> 'network_interfaces': [{'attachment': {'attach_time': 
>>> '2022-08-22T16:44:37+00:00', 'attachment_id': 'eni-attach-03c0fe', 
>>> 'delete_on_termination': True, 'device_index': 0, 'status': 'attaching', 
>>> 'network_card_index': 0}, 'description': '', 'groups': [{'group_name': 
>>> 'User group', 'group_id': 'sg-34'}], 'ipv6_addresses': [], 'mac_address': 
>>> '06', 'network_interface_id': 'eni-0cac24cf', 'owner_id': '23489', 
>>> 'private_dns_name': 'ip-10-1-4-3.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.3', 'private_ip_addresses': [{'primary': 
>>> True, 'private_dns_name': 'ip-10-1-4-3.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.3'}], 'source_dest_check': True, 'status': 
>>> 'in-use', 'subnet_id': 'subnet-f5bsdfs', 'vpc_id': 'vpc-dbc5', 
>>> 'interface_type': 'interface'}], 'root_device_name': '/dev/sda1', 
>>> 'root_device_type': 'ebs', 'security_groups': [{'group_name': 'User group', 
>>> 'group_id': 'sg-34'}], 'source_dest_check': True, 'tags': {'OS': 'RHEL', 
>>> 'Owner': 'Development Center', 'Environment': 'DEV', 'Sub Environment': 
>>> 'Development', 'CostCenter': 'Dev', 'Backupset': 'true', 'Application 
>>> System': 'Development Team', 'OS Version': '8', 'Application Group': 
>>> 'CORE', 'Patch Group': 'Normal', 'Description': 'Evaluation Server', 
>>> 'Name': 'test8', 'CST Start/Stop Schedule': '0700;1900;Weekdays', 'Type': 
>>> 'Eval'}, 'virtualization_type': 'hvm', 'cpu_options': {'core_count': 1, 
>>> 'threads_per_core': 2}, 'capacity_reservation_specification': 
>>> {'capacity_reservation_preference': 'open'}, 'hibernation_options': 
>>> {'configured': False}, 'metadata_options': {'state': 'pending', 
>>> 'http_tokens': 'optional', 'http_put_response_hop_limit': 1, 
>>> 'http_endpoint': 'enabled', 'http_protocol_ipv6': 'disabled', 
>>> 'instance_metadata_tags': 'disabled'}, 'enclave_options': {'enabled': 
>>> False}, 'platform_details': 'Red Hat Enterprise Linux', 'usage_operation': 
>>> 'RunInstances:0010', 'usage_operation_update_time': 
>>> '2022-08-22T16:44:37+00:00', 'private_dns_name_options': {'hostname_type': 
>>> 'ip-name', 'enable_resource_name_dns_a_record': False, 
>>> 'enable_resource_name_dns_aaaa_record': False}, 'maintenance_options': 
>>> {'auto_recovery': 'default'}}) => {"add_host": {"groups": ["launched"], 
>>> "host_name": "test8", "host_vars": {}}, "ansible_loop_var": "item", 
>>> "changed": false, "item": {"ami_launch_index": 0, "architecture": "x86_64", 
>>> "block_device_mappings": [{"device_name": "/dev/sda1", "ebs": 
>>> {"attach_time": "2022-08-22T16:44:38+00:00", "delete_on_termination": 
>>> false, "status": "attaching", "volume_id": "vol-0488sdfec2f4e9e6"}}], 
>>> "capacity_reservation_specification": {"capacity_reservation_preference": 
>>> "open"}, "client_token": "64c1d4b064fa418d99eeca4aa44c7a1d", "cpu_options": 
>>> {"core_count": 1, "threads_per_core": 2}, "ebs_optimized": true, 
>>> "ena_support": true, "enclave_options": {"enabled": false}, 
>>> "hibernation_options": {"configured": false}, "hypervisor": "xen", 
>>> "iam_instance_profile": {"arn": 
>>> "arn:aws-us-:iam::23489:instance-profile/Ansible", "id": 
>>> "AIPAXKKA2BWLPEG6LE23X"}, "image_id": "ami-0beac6b6ed4da44ce", 
>>> "instance_id": "06-005sd3sfs0a0d9", "instance_type": "t3a.medium", 
>>> "key_name": "test", "launch_time": "2022-08-22T16:44:37+00:00", 
>>> "maintenance_options": {"auto_recovery": "default"}, "metadata_options": 
>>> {"http_endpoint": "enabled", "http_protocol_ipv6": "disabled", 
>>> "http_put_response_hop_limit": 1, "http_tokens": "optional", 
>>> "instance_metadata_tags": "disabled", "state": "pending"}, "monitoring": 
>>> {"state": "disabled"}, "network_interfaces": [{"attachment": 
>>> {"attach_time": "2022-08-22T16:44:37+00:00", "attachment_id": 
>>> "eni-attach-03c0fe95d6d45e0a2", "delete_on_termination": true, 
>>> "device_index": 0, "network_card_index": 0, "status": "attaching"}, 
>>> "description": "", "groups": [{"group_id": "sg-347", "group_name": "User 
>>> Data"}], "interface_type": "interface", "ipv6_addresses": [], 
>>> "mac_address": "06", "network_interface_id": "eni-0cac24c770", "owner_id": 
>>> "23489", "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.3", "private_ip_addresses": [{"primary": 
>>> true, "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.3"}], "source_dest_check": true, "status": 
>>> "in-use", "subnet_id": "subnet-f5sdfws", "vpc_id": "vpc-dbc5"}], 
>>> "placement": {"availability_zone": "us-west-1a", "group_name": "", 
>>> "tenancy": "default"}, "platform_details": "Red Hat Enterprise Linux", 
>>> "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_dns_name_options": {"enable_resource_name_dns_a_record": false, 
>>> "enable_resource_name_dns_aaaa_record": false, "hostname_type": "ip-name"}, 
>>> "private_ip_address": "10.1.4.3", "product_codes": [], "public_dns_name": 
>>> "", "root_device_name": "/dev/sda1", "root_device_type": "ebs", 
>>> "security_groups": [{"group_id": "sg-34", "group_name": "User group"}], 
>>> "source_dest_check": true, "state": {"code": 0, "name": "pending"}, 
>>> "state_transition_reason": "", "subnet_id": "subnet-f5sdfws", "tags": 
>>> {"Application Group": "CORE", "Application System": "Development Team", 
>>> "Backupset": "true", "CST Start/Stop Schedule": "0700;1900;Weekdays", 
>>> "CostCenter": "Dev", "Description": "Evaluation Server", "Environment": 
>>> "DEV", "Name": "test8", "OS": "RHEL", "OS Version": "8", "Owner": 
>>> "Development Center", "Patch Group": "Normal", "Sub Environment": 
>>> "Development", "Type": "Eval"}, "usage_operation": "RunInstances:0010", 
>>> "usage_operation_update_time": "2022-08-22T16:44:37+00:00", 
>>> "virtualization_type": "hvm", "vpc_id": "vpc-db"}}
>>>
>>> TASK [Wait for SSH to come up] 
>>> **********************************************************************************************************************************************************
>>> task path: /etc/ansible/playbooks/rhel-8-build.yml:231
>>> [WARNING]: Reset is not implemented for this connection
>>> ok: [127.0.0.1 -> 10.1.4.3] => (item={'ami_launch_index': 0, 'image_id': 
>>> 'ami-0beac6b6ed4da44ce', 'instance_id': '06-005sd3sfs0a0d9', 
>>> 'instance_type': 't3a.medium', 'key_name': 'test', 'launch_time': 
>>> '2022-08-22T16:44:37+00:00', 'monitoring': {'state': 'disabled'}, 
>>> 'placement': {'availability_zone': 'us-west-1a', 'group_name': '', 
>>> 'tenancy': 'default'}, 'private_dns_name': 
>>> 'ip-10-1-4-3.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.3', 'product_codes': [], 'public_dns_name': 
>>> '', 'state': {'code': 0, 'name': 'pending'}, 'state_transition_reason': '', 
>>> 'subnet_id': 'subnet-f5bsdfs', 'vpc_id': 'vpc-dbc5', 'architecture': 
>>> 'x86_64', 'block_device_mappings': [{'device_name': '/dev/sda1', 'ebs': 
>>> {'attach_time': '2022-08-22T16:44:38+00:00', 'delete_on_termination': 
>>> False, 'status': 'attaching', 'volume_id': 'vol-0488sdfec2f4e9e6'}}], 
>>> 'client_token': '64c1d4b064fa418d99eeca4aa44c7a1d', 'ebs_optimized': True, 
>>> 'ena_support': True, 'hypervisor': 'xen', 'iam_instance_profile': {'arn': 
>>> 'arn:aws-us-:iam::23489:instance-profile/Ansible', 'id': 'AIPAXKK'}, 
>>> 'network_interfaces': [{'attachment': {'attach_time': 
>>> '2022-08-22T16:44:37+00:00', 'attachment_id': 'eni-attach-03c0fe', 
>>> 'delete_on_termination': True, 'device_index': 0, 'status': 'attaching', 
>>> 'network_card_index': 0}, 'description': '', 'groups': [{'group_name': 
>>> 'User group', 'group_id': 'sg-34'}], 'ipv6_addresses': [], 'mac_address': 
>>> '06', 'network_interface_id': 'eni-0cac24cf', 'owner_id': '23489', 
>>> 'private_dns_name': 'ip-10-1-4-3.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.3', 'private_ip_addresses': [{'primary': 
>>> True, 'private_dns_name': 'ip-10-1-4-3.us-west-1.compute.internal', 
>>> 'private_ip_address': '10.1.4.3'}], 'source_dest_check': True, 'status': 
>>> 'in-use', 'subnet_id': 'subnet-f5bsdfs', 'vpc_id': 'vpc-dbc5', 
>>> 'interface_type': 'interface'}], 'root_device_name': '/dev/sda1', 
>>> 'root_device_type': 'ebs', 'security_groups': [{'group_name': 'User group', 
>>> 'group_id': 'sg-34'}], 'source_dest_check': True, 'tags': {'OS': 'RHEL', 
>>> 'Owner': 'Development Center', 'Environment': DEV', 'Sub Environment': 
>>> 'Evaluation'', 'CostCenter': 'Eval2', 'Backupset': 'true', 'Application 
>>> System': 'Development Team', 'OS Version': '8', 'Application Group': 
>>> 'CORE', 'Patch Group': 'Normal', 'Description': 'Evaluation Server', 
>>> 'Name': 'test8', 'CST Start/Stop Schedule': '0700;1900;Weekdays', 'Type': 
>>> 'Eval'}, 'virtualization_type': 'hvm', 'cpu_options': {'core_count': 1, 
>>> 'threads_per_core': 2}, 'capacity_reservation_specification': 
>>> {'capacity_reservation_preference': 'open'}, 'hibernation_options': 
>>> {'configured': False}, 'metadata_options': {'state': 'pending', 
>>> 'http_tokens': 'optional', 'http_put_response_hop_limit': 1, 
>>> 'http_endpoint': 'enabled', 'http_protocol_ipv6': 'disabled', 
>>> 'instance_metadata_tags': 'disabled'}, 'enclave_options': {'enabled': 
>>> False}, 'platform_details': 'Red Hat Enterprise Linux', 'usage_operation': 
>>> 'RunInstances:0010', 'usage_operation_update_time': 
>>> '2022-08-22T16:44:37+00:00', 'private_dns_name_options': {'hostname_type': 
>>> 'ip-name', 'enable_resource_name_dns_a_record': False, 
>>> 'enable_resource_name_dns_aaaa_record': False}, 'maintenance_options': 
>>> {'auto_recovery': 'default'}}) => {"ansible_loop_var": "item", "changed": 
>>> false, "elapsed": 120, "item": {"ami_launch_index": 0, "architecture": 
>>> "x86_64", "block_device_mappings": [{"device_name": "/dev/sda1", "ebs": 
>>> {"attach_time": "2022-08-22T16:44:38+00:00", "delete_on_termination": 
>>> false, "status": "attaching", "volume_id": "vol-0488sdfe"}}], 
>>> "capacity_reservation_specification": {"capacity_reservation_preference": 
>>> "open"}, "client_token": "64c1d", "cpu_options": {"core_count": 1, 
>>> "threads_per_core": 2}, "ebs_optimized": true, "ena_support": true, 
>>> "enclave_options": {"enabled": false}, "hibernation_options": 
>>> {"configured": false}, "hypervisor": "xen", "iam_instance_profile": {"arn": 
>>> "arn:aws-us-:iam::23489:instance-profile/Ansible", "id": "AIPAX"}, 
>>> "image_id": "ami-0bea", "instance_id": "i-005", "instance_type": 
>>> "t3a.medium", "key_name": "test", "launch_time": 
>>> "2022-08-22T16:44:37+00:00", "maintenance_options": {"auto_recovery": 
>>> "default"}, "metadata_options": {"http_endpoint": "enabled", 
>>> "http_protocol_ipv6": "disabled", "http_put_response_hop_limit": 1, 
>>> "http_tokens": "optional", "instance_metadata_tags": "disabled", "state": 
>>> "pending"}, "monitoring": {"state": "disabled"}, "network_interfaces": 
>>> [{"attachment": {"attach_time": "2022-08-22T16:44:37+00:00", 
>>> "attachment_id": "eni-attach-03c0fe95d6d45e0a2", "delete_on_termination": 
>>> true, "device_index": 0, "network_card_index": 0, "status": "attaching"}, 
>>> "description": "", "groups": [{"group_id": "sg-34", "group_name": "User 
>>> group"}], "interface_type": "interface", "ipv6_addresses": [], 
>>> "mac_address": "06", "network_interface_id": "eni-0cac", "owner_id": 
>>> "23489", "private_dns_name": "ip-10-1-4-1x-1.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.1x.1", "private_ip_addresses": [{"primary": 
>>> true, "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_ip_address": "10.1.4.3"}], "source_dest_check": true, "status": 
>>> "in-use", "subnet_id": "subnet-f5sd", "vpc_id": "vpc-dbc5"}], "placement": 
>>> {"availability_zone": "us-west-1a", "group_name": "", "tenancy": 
>>> "default"}, "platform_details": "Red Hat Enterprise Linux", 
>>> "private_dns_name": "ip-10-1-4-3.us-west-1.compute.internal", 
>>> "private_dns_name_options": {"enable_resource_name_dns_a_record": false, 
>>> "enable_resource_name_dns_aaaa_record": false, "hostname_type": "ip-name"}, 
>>> "private_ip_address": "10.1.4.3", "product_codes": [], "public_dns_name": 
>>> "", "root_device_name": "/dev/sda1", "root_device_type": "ebs", 
>>> "security_groups": [{"group_id": "sg-34", "group_name": "User group"}], 
>>> "source_dest_check": true, "state": {"code": 0, "name": "pending"}, 
>>> "state_transition_reason": "", "subnet_id": "subnet-f5sdfws", "tags": 
>>> {"Application Group": "CORE", "Application System": "Development Team", 
>>> "Backupset": "true", "CST Start/Stop Schedule": "0700;1900;Weekdays", 
>>> "CostCenter": Dev", "Description": "Evaluation Server", "Environment": 
>>> "DEV", "Name": "test8", "OS": "RHEL", "OS Version": "8", "Owner": 
>>> "Development Center", "Patch Group": "Normal", "Sub Environment": 
>>> "Evaluation", "Type": "Eval"}, "usage_operation": "RunInstances:0010", 
>>> "usage_operation_update_time": "2022-08-22T16:44:37+00:00", 
>>> "virtualization_type": "hvm", "vpc_id": "vpc-dbc"}}
>>> META: ran handlers
>>> META: ran handlers
>>>
>>> PLAY [Run post-launch baseline configuration on instance] 
>>> *******************************************************************************************************************************
>>> META: ran handlers
>>>
>>> TASK [Update system name] 
>>> ***************************************************************************************************************************************************************
>>> task path: /etc/ansible/playbooks/rhel-8-build.yml:265
>>> fatal: [test8]: 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/playbooks/rhel-8-build.yml': line 265, column 8, 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"}
>>>
>>> PLAY RECAP 
>>> ******************************************************************************************************************************************************************************
>>> 127.0.0.1                  : ok=14   changed=2    unreachable=0   
>>>  failed=0    skipped=0    rescued=0    ignored=0  
>>> test8                      : ok=0    changed=0    unreachable=0   
>>>  failed=1    skipped=0    rescued=0    ignored=0   
>>>
>>>
>>>
>>>
>>>
>>> #######################################################################################################
>>>
>>>
>>>
>>>
>>>
>>> On Mon, Aug 22, 2022 at 6:21 AM 'Rowe, Walter P. (Fed)' via Ansible 
>>> Project <[email protected]> wrote:
>>>
>>>> Do you need to reference the tags inside new_ec2.instances ?
>>>>
>>>> Walter
>>>> --
>>>> Walter Rowe, Division Chief
>>>> Infrastructure Services, OISM
>>>>
>>>> On Aug 19, 2022, at 3:55 PM, Carmie <[email protected]> wrote:
>>>>
>>>> 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
>>>>  
>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2Ff76dcef9-921e-47e7-aea3-8b588613192cn%2540googlegroups.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7C92888ccea9804189735808da8465c466%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C637967869882272440%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=9Tu4b%2FJU8kWNwPoHlefvLm6VimTiYC8UXcEPCqN2zhM%3D&reserved=0>
>>>> .
>>>>
>>>>
>>>>
>>>> -- 
>>>> 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/AA182698-D710-47BF-A68C-47F98192403E%40nist.gov
>>>>  
>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FAA182698-D710-47BF-A68C-47F98192403E%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7C92888ccea9804189735808da8465c466%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C637967869882272440%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=UB6kUcbeOmfOQeE9oX0oVktwPzQXMkSkKeWpD2Xb5Lk%3D&reserved=0>
>>>> .
>>>>
>>>
>>> -- 
>>> 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/CAPsYAg%2BuB6Z5%2BOZeCGUyQVmaZPS%3DbO%3DJq8Cjz_tn9xH7jKP%3DWQ%40mail.gmail.com
>>>  
>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCAPsYAg%252BuB6Z5%252BOZeCGUyQVmaZPS%253DbO%253DJq8Cjz_tn9xH7jKP%253DWQ%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7C92888ccea9804189735808da8465c466%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C637967869882272440%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=N2TArAsJj0UxDhuRZ%2BrugBsNrXSaVtnTwsyH1GQ3My8%3D&reserved=0>
>>> .
>>>
>>>
>>> -- 
>>> 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/589501B1-F229-42E6-92F1-D54E3443BB00%40nist.gov
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/589501B1-F229-42E6-92F1-D54E3443BB00%40nist.gov?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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/97f37f48-0ff6-41cc-b3f2-f834d6ae9672n%40googlegroups.com.

Reply via email to