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.