У меня есть простая задача, которую я не могу решить.
У меня есть playbook, который возвращает конфигурацию экземпляра AWS EC2. Мне нужно только распечатать (показать) частный_ip_адрес.
Вот моя книга игр
---
- хозяева: местные
подключение: местное
сбор_фактов: ложь
стать: да
метод_становления: включить
задачи:
- имя: сбор-информация-ec2
community.aws.ec2_instance_info:
instance_ids:
- я-XXXXXAAAAAA
регистр: ec2
- отладка: msg="{{ ec2.instances.network_interfaces.private_ip_address }}"
Когда я запускаю его таким образом, я получаю следующую ошибку.
фатальный: [localhost]: FAILED! => {"msg": "Задача включает параметр с неопределенной переменной. Ошибка: "объект списка" не имеет атрибута "network_interfaces"\n\nПохоже, ошибка находится в "/etc/ansible/playbooks/AWSLinuxMigration /gather_ec2_info.yaml': строка 16, столбец 5, но может быть\nв другом месте файла в зависимости от конкретной проблемы с синтаксисом.\n\nОшибочная строка:\n\n\n - debug: msg=\" {{ ec2.instances.network_interfaces.private_ip_address }}\"\n ^ здесь\nМожет быть, мы ошибаемся, но здесь похоже, что проблема связана с\nотсутствием кавычек. Всегда заключайте в скобки выражение шаблона,\nкогда они начинают значение. Например:\n\n with_items:\n - {{ foo }}\n\nДолжен быть записан как:\n\n with_items:\n - \"{{ foo }}\"\n"}
Когда я выполняю его без раздела DEBUG и с -ввв он отображает результат ниже. Как извлечь и распечатать этот адрес? Я немного сократил, но вы поняли
хорошо: [локальный хост] => {
"сообщение": {
«изменено»: ложь,
«не удалось»: ложь,
"экземпляры": [
{
"ami_launch_index": 0,
"архитектура": "x86_64",
"block_device_mappings": [
{
"имя_устройства": "/dev/xvda",
"эбс": {
"attach_time": "2020-04-15T16:11:19+00:00",
"delete_on_termination": правда,
"статус": "прикреплен",
"volume_id": "xxxxxx"
}
}
],
"capacity_reservation_specification": {
"capacity_reservation_preference": "открыто"
},
"клиент_токен": "",
"параметры_процессора": {
"core_count": 1,
"threads_per_core": 2
},
"ebs_optimized": правда,
"ena_support": правда,
"enclave_options": {
«включено»: ложь
},
"hibernation_options": {
«настроено»: ложь
},
"гипервизор": "xen",
"iam_instance_profile": {
"арн": "хххххх",
«идентификатор»: «хххххх»
},
"image_id": "ххххх",
"instance_id": "ххххх",
"instance_type": "t3.medium",
"имя_ключа": "ххххх",
"launch_time": "2021-04-21T00:01:25+00:00",
"метаданные_опции": {
"http_endpoint": "включено",
"http_put_response_hop_limit": 1,
"http_tokens": "необязательно",
"состояние": "применяется"
},
"мониторинг": {
"состояние": "отключено"
},
"сетевые_интерфейсы": [
{
"ассоциация": {
"ip_owner_id": "хххх",
"public_dns_name": "ххххх",
"public_ip": "хххх"
},
"вложение": {
"attach_time": "2020-04-15T16:11:18+00:00",
"attachment_id": "ххххх",
"delete_on_termination": правда,
"индекс_устройства": 0,
"network_card_index": 0,
"статус": "прикреплен"
},
"description": "Основной сетевой интерфейс",
"группы": [
{
"group_id": "ххххх",
"имя_группы": "ххххх"
}
],
"interface_type": "интерфейс",
"ipv6_адреса": [],
"mac_address": "ххххх",
"network_interface_id": "хххх",
"id_владельца": "ххххх",
"private_dns_name": "ip-10-0-1-161.ec2.internal",
"частный_ip_адрес": "10.0.1.161",
"частные_ip_адреса": [
{
"ассоциация": {
"ip_owner_id": "ххххх",
"public_dns_name": "xxxx.compute-1.amazonaws.com",
"public_ip": "2.2.2.2"
},
«первичный»: правда,
"private_dns_name": "ip-333333.ec2.internal",
"private_ip_address": "1.1.1.1."
}
],
"source_dest_check": правда,
"статус": "используется"
}
]
]
}
}