Ansible: register: ec2 / with_items: ec2.instances - menghasilkan "objek str tidak memiliki atribut"

Dibuat pada 18 Jun 2015  ·  3Komentar  ·  Sumber: ansible/ansible

Saya memiliki buku pedoman yang sangat mirip dengan contoh online:


tugas:
- nama: buat instance EC2
ec2:
[-menggunting-]
daftar: ec2
- nama: cetak itu
debug: msg="item has - {{ item.public_ip }}"
with_items: ec2.instances


Ini memberikan kesalahan:


fatal: [localhost] => Satu atau lebih variabel tidak terdefinisi: 'str object' tidak memiliki atribut 'public_ip'

Jika saya mengubahnya menjadi {{ item }} saya melihat:

TUGAS: [mencetaknya] * * * * * * * * * * * * * * * * * * * *
ok: [localhost] => (item=ec2.instances) => {
"item": "ec2.instances",
"msg": "item memiliki - ec2.instances"
}


Tampaknya 'ec2.instances' hanyalah sebuah string? Terakhir, jika saya menggunakan "with_items: ec2.results", saya dapat mengulanginya tetapi saya harus merujuknya sebagai item.instances.0.public_ip

Adakah yang tahu mengapa ec2_instances tampak seperti string yang bertentangan dengan kamus?

Sunting:
: arp_kiki/pts/55:0.08:baru; mungkin --versi mungkin 1.5.4

setelah meningkatkan:

ok: [localhost] => (item=ec2.instances) => {
"item": "ec2.instances",
"msg": "item memiliki - ec2.instances"
}

BERMAIN Rekap * * * * * * * * * * * * * * * * * * * * * *
localhost : ok=2 diubah=1 tidak dapat dijangkau=0 gagal=0

: arp_kiki/pts/55:0.31:baru; mungkin --versi
mungkin 1.9.1

Komentar yang paling membantu

Dipahami. Saya berasumsi itu adalah bug karena saya mengikuti dokumentasi dan mendapatkan hasil yang berbeda.

Semua 3 komentar

Hai!

Terima kasih banyak atas minat Anda pada Ansible. Ini dengan tulus sangat berarti bagi kami.

Tampaknya ini adalah pertanyaan pengguna, dan kami ingin mengarahkan hal-hal semacam ini ke milis atau saluran IRC.

juga alasannya adalah karena with_items digunakan maka akan ada beberapa instance dan hasil dari setiap instance yang dibuat disimpan dalam dict ec2.results. jika hanya ada satu instance tunggal buat avoild with_items maka Anda harus mendapatkan apa yang Anda butuhkan atau jika Anda memiliki beberapa instance untuk dibuat maka untuk mendapatkan ip publik gunakan with_items: ec2.results dan item.public_ip

IRC: #mungkin di irc.freenode.net
milis: https://groups.google.com/forum/#!forum/ansible -project
Jika Anda bisa mampir ke sana, kami akan sangat menghargainya. Ini memungkinkan kami untuk menyimpan pelacak masalah untuk bug, permintaan tarik, RFE, dan sejenisnya.

Terima kasih sekali lagi dan kami berharap dapat melihat Anda di daftar atau IRC. Terima kasih!

Dipahami. Saya berasumsi itu adalah bug karena saya mengikuti dokumentasi dan mendapatkan hasil yang berbeda.

Saya baru saja datang ke utas ini karena membuat "kesalahan pengguna" yang sama, yang dijelaskan oleh @bennojoy penyebabnya dengan sangat ringkas. Menemukan ini sebagai situasi yang sangat "tidak jelas", akan sangat bagus untuk memiliki referensi untuk ini, setidaknya dalam contoh dokumentasi modul EC2, karena with_items akan menjadi pola yang sangat umum mengelola sistem di zona ketersediaan yang ditetapkan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat