Ansible: register:ec2 / with_items:ec2.instances-「strオブジェクトには属性がありません」という結果になります

作成日 2015年06月18日  ·  3コメント  ·  ソース: ansible/ansible

オンラインの例と非常によく似たプレイブックがあります。


タスク:
-名前:EC2インスタンスを作成します
ec2:
[-をちょきちょきと切る-]
登録:ec2
-名前:印刷する
デバッグ:msg = "item has-{{item.public_ip}}"
with_items:ec2.instances


これにより、エラーが発生します。


致命的:[localhost] => 1つ以上の未定義変数: 'strobject'には属性 'public_ip'がありません

{{item}}に変更すると、次のように表示されます。

タスク:[印刷] * * * * * * * * * * * * * * * * * * * *
ok:[localhost] =>(item = ec2.instances)=> {
"item": "ec2.instances"、
"msg": "item has --ec2.instances"
}


'ec2.instances'は単なる文字列のようですか? 最後に、「with_items:ec2.results」を使用すると、繰り返し処理できますが、item.instances.0.public_ipとして参照する必要があります。

ec2_instancesが辞書ではなく文字列のように見える理由はありますか?

編集:
:arp_kiki / pts / 55:0.08:new; ansible --version ansible 1.5.4

アップグレード後:

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

PLAY RECAP * * * * * * * * * * * * * * * * * * * * * *
ローカルホスト:ok = 2変更= 1到達不能= 0失敗= 0

:arp_kiki / pts / 55:0.31:new; ansible --version
ansible 1.9.1

最も参考になるコメント

了解した。 ドキュメントに従っていて異なる結果が得られたので、バグだと思いました。

全てのコメント3件

やあ!

Ansibleに関心をお寄せいただきありがとうございます。 それは私たちにとって心から多くのことを意味します。

これはユーザーの質問のようです。このようなことをメーリングリストまたはIRCチャネルに転送したいと思います。

また、with_itemsが使用されているため、複数のインスタンスが存在し、作成された各インスタンスの結果がec2.resultsdictに保存されるためです。 avoild with_itemsを作成するインスタンスが1つしかない場合は、必要なものを取得する必要があります。作成するインスタンスが複数ある場合は、パブリックIPを使用してwith_itemsを取得します:ec2.resultsおよびitem.public_ip

IRC:irc.freenode.netで#ansible
メーリングリスト: https ://groups.google.com/forum/#!forum / ansible -project
よろしくお願いします。 これにより、バグ、プルリクエスト、RFEなどの課題追跡システムを維持できます。

改めて感謝いたします。リストまたはIRCでお会いできることを楽しみにしております。 ありがとう!

了解した。 ドキュメントに従っていて異なる結果が得られたので、バグだと思いました。

@bennojoyが原因を非常に簡潔に説明した同じ「ユーザーエラー」を作成したため、このスレッドにwith_itemsが非常に一般的なパターンになるため、これを参照することをお勧めします。設定されたアベイラビリティーゾーンでシステムを管理します。

このページは役に立ちましたか?
0 / 5 - 0 評価