2016-11-15 14 views
1

私は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 "}

これを行う方法は他にありますか?

答えて

4

2.2でベア変数を使用することはできません。構文は廃止され、ユーザーはバージョン2.0から警告されました。

あなたが貼り付けられている、それは別の理由を示唆しているが、あなたが与えられた例に従ってくださいエラーメッセージ読んでください:あなたのケースでは、それが持つすべてのwith_items: ec2.instancesを交換するだけで十分です

Should be written as: 
    with_items: 
    - "{{ foo }}" 

を:

with_items: "{{ ec2.instances }}" 
+0

@tehrafあなたのアドバイスありがとうございます、それは完璧に動作します。 – rolindroy

関連する問題