私はec2インスタンスを作成し、そのホストを動的ホストとして追加することができます。タスクは完全に動作しており、インスタンスを作成しましたが、インスタンス情報を取得できませんでした。有能なEC2モジュールがインスタンス情報を取得していません
マイAnsibleバージョン:2.2.0.0/Ubuntuの14.04
ここに私のコードは
ある- name: launch ec2 instance for QA
local_action:
module: ec2
key_name: "{{ ec2_keypair }}"
group: "{{ ec2_security_group }}"
instance_type: "{{ ec2_instance_type }}"
image: "{{ ec2_image }}"
vpc_subnet_id: "{{ ec2_subnet_ids }}"
region: "{{ ec2_region }}"
instance_tags: '{"Name":"{{ec2_tag_Name}}","Type":"{{ec2_tag_Type}}","Environment":"{{ec2_tag_Environment}}"}'
assign_public_ip: yes
wait: true
count: 1
register: ec2
- debug: var=item
with_items: ec2.instances
- add_host: name={{ item.public_ip }} >
groups=dynamically_created_hosts
with_items: ec2.instances
- name: Wait for the instances to boot by checking the ssh port
wait_for: host={{item.public_ip}} port=22 delay=60 timeout=320 state=started
with_items: ec2.instances
取得していますどのような出力は、次のとおりです。
TASK [QAの起動EC2インスタンス] ************************************
変更: [localhost - > localhost]TASK [デバッグ] ********************************************* *********************
ok:[localhost] =>(item = ec2.instances)=> { "item": "ec2.instances 「 }TASK [add_host] *************************************** ************************
致命的:[localhost]:FAILED! => {"failed":true、 "msg": "フィールド 'args'の値が不正です。未定義の変数が含まれているようです。 'unicode object'に属性 'public_ip'がありません。\ n \ nエラーは '/var/lib/jenkins/jobs/QA/workspace/dynamic-ec2.yml':行37、列7にあるように見えますが、正確な構文の問題によってはファイルのどこかに\ nと表示されることがあります。 \ n \ n問題のある行は次のように表示されます:\ n \ n \ n - add_host:name = {{item.public_ip}}> \ n^here \ n間違っている可能性がありますが、 \ n \ n with_items:\ n - {{foo}} \ n \ n次のように記述する必要があります:\ n \ n with_items:\ n - \ "{{foo}} \" \ n "}
これを行う方法は他にありますか?
@tehrafあなたのアドバイスありがとうございます、それは完璧に動作します。 – rolindroy