Я пытаюсь решить, как перечислить и сделать что-то с остановленными экземплярами EC2. ec2_remote_facts - мой друг, и я могу получить от него результаты. Но в качестве незаметного noob я не могу для жизни меня разобраться, как попасть в компонент id из возвращаемого объекта. Документация является отрывочной и не охватывает то, что возвращается, и как ее использовать.Ansible 2.x: ec2_remote_facts
Вот очень простой сборник пьес я экспериментирую с:
---
- name: remote facts
hosts: localhost
tasks:
- ec2_remote_facts:
region: ap-southeast-2
register: info
- name: print
debug: var=info
Это работает просто отлично.
Это также работает:
---
- name: remote facts
hosts: localhost
tasks:
- ec2_remote_facts:
region: ap-southeast-2
register: info
- name: print
debug: var=info.instances[0].id
То, что я не могу получить мою голову вокруг заклинание, чтобы дать мне только элемент «ID» для всех существующих экземпляров (3), так что я могу сделать что-то еще с все они - удалить, настроить, запустить, что угодно. Я посмотрел на все конструкции цикла и с параметрами_ *, и я не могу заставить их делать то, что я хочу.
Без сомнения, это будет 'd'oh!' проблема для любого, кто знает ответ, но я боюсь, что в данный момент я просто не понимаю. Возвращаемый объект выглядит следующим образом:
ok: [localhost] => {
"info": {
"changed": false,
"instances": [
{
"ami_launch_index": "0",
"architecture": "x86_64",
"client_token": "vpOGxxxxxxxxxxxxxx",
"ebs_optimized": false,
"groups": [
{
"id": "sg-xxxxxxxx",
"name": "launch-wizard-3"
}
],
"hypervisor": "xen",
"id": "i-01xxxxxxxxxxxxxxxx",
[...]
"tags": {},
"virtualization_type": "hvm",
"vpc_id": "vpc-xxxxxxxx"
},
{
"ami_launch_index": "1",
"architecture": "x86_64",
[надрез, более 2 экземпляра]
Любые мысли людей?
Что такое, что выход из? Это первый блок ('debug: var = info')? – ydaetskcoR
Да. Я думал, что вставка всей продукции будет излишней. Существует объект «экземпляры», который имеет три элемента, каждый из которых начинается с «ami_launch_index» и заканчивается на «vpc_id». Для меня это похоже на массив структур, но у кажущихся ребята, похоже, есть другое слово для всего. То, что я хочу сделать, это иметь возможность ссылаться на значения «id» для всех найденных экземпляров и позже делать с ними что-то еще. Поскольку меня интересуют остановленные экземпляры, ec2.py не будет работать так, как в текущем состоянии, он не может иметь дело с остановленными экземплярами. Который я сообщил в другом месте как ошибка - это неполное. – MrChuck