Am o sarcină simplă pe care nu o pot depăși.
Am un manual care returnează configurația instanței AWS EC2. Trebuie doar să printez (afișează) adresa_ip_privată.
Aici cartea mea de joc
---
- gazde: locale
conexiune: locală
gather_facts: false
deveni: da
become_method: activare
sarcini:
- nume: gather-info-ec2
community.aws.ec2_instance_info:
instance_ids:
- i-XXXXXAAAAAA
registru: ec2
- depanare: msg="{{ ec2.instances.network_interfaces.private_ip_address }}"
Când îl rulez așa, primesc următoarea eroare.
fatal: [localhost]: FAILED! => {"msg": "Sarcina include o opțiune cu o variabilă nedefinită. Eroare a fost: „list object” nu are atribut „network_interfaces”\n\nEroarea pare să fie în „/etc/ansible/playbooks/AWSLinuxMigration /gather_ec2_info.yaml': linia 16, coloana 5, dar poate\nsă fie în altă parte a fișierului, în funcție de problema exactă de sintaxă.\n\nRândul ofensator pare să fie:\n\n\n - depanare: msg=\" {{ ec2.instances.network_interfaces.private_ip_address }}\"\n ^ aici\nS-ar putea să greșim, dar acesta pare că ar putea fi o problemă cu\nlipsă de ghilimele. Indicați întotdeauna parantezele pentru expresia șablonului când\nîncep o valoare. De exemplu:\n\n with_items:\n - {{ foo }}\n\nAr trebui să fie scris ca:\n\n with_items:\n - \"{{ foo }}\"\n"}
Când îl execut fără secțiunea DEBUG și cu -vvv afișează rezultatul de mai jos. Cum extrag și imprimez această adresă? L-am scurtat puțin, dar îți faci o idee
ok: [localhost] => {
"msg": {
„schimbat”: fals,
„eșuat”: fals,
"instanțe": [
{
"ami_launch_index": 0,
"arhitectura": "x86_64",
„block_device_mappings”: [
{
"device_name": "/dev/xvda",
„ebs”: {
"attach_time": "2020-04-15T16:11:19+00:00",
„delete_on_termination”: adevărat,
"status": "atașat",
"volume_id": "xxxxxx"
}
}
],
„capacity_reservation_specification”: {
"capacity_reservation_preference": "deschis"
},
"client_token": "",
„cpu_options”: {
"core_count": 1,
„threads_per_core”: 2
},
„ebs_optimized”: adevărat,
"ena_support": adevărat,
„enclave_options”: {
„activat”: fals
},
„hibernation_options”: {
„configurat”: fals
},
"hypervisor": "xen",
„iam_instance_profile”: {
"arn": "xxxxxx",
"id": "xxxxxx"
},
"image_id": "xxxxx",
"instance_id": "xxxxx",
"instance_type": "t3.medium",
"key_name": "xxxxx",
"launch_time": "2021-04-21T00:01:25+00:00",
„metadata_options”: {
"http_endpoint": "activat",
„http_put_response_hop_limit”: 1,
"http_tokens": "opțional",
"state": "aplicat"
},
"monitorizarea": {
"state": "dezactivat"
},
„interfețe_rețea”: [
{
„asociație”: {
"ip_owner_id": "xxxx",
"public_dns_name": "xxxxx",
"public_ip": "xxxx"
},
"atașament": {
"attach_time": "2020-04-15T16:11:18+00:00",
"attachment_id": "xxxxx",
„delete_on_termination”: adevărat,
"device_index": 0,
„index_card_de_rețea”: 0,
"status": "atașat"
},
"description": "Interfață de rețea principală",
„grupuri”: [
{
"group_id": "xxxxx",
„group_name”: „xxxxx”
}
],
"interface_type": "interfață",
„adrese_ipv6”: [],
"mac_address": "xxxxx",
"network_interface_id": "xxxx",
"owner_id": "xxxxx",
„private_dns_name”: „ip-10-0-1-161.ec2.internal”,
"private_ip_address": "10.0.1.161",
„private_ip_addresses”: [
{
„asociație”: {
"ip_owner_id": "xxxxx",
"public_dns_name": "xxxx.compute-1.amazonaws.com",
"public_ip": "2.2.2.2"
},
„primar”: adevărat,
"private_dns_name": "ip-333333.ec2.internal",
"private_ip_address": "1.1.1.1."
}
],
„source_dest_check”: adevărat,
"status": "în uz"
}
]
]
}
}