2017-01-31 4 views
0

私は私のEC2の作成タスクにassign_public_ip: noを定義している:まだ"assign_public_ip:いいえ" まだパブリックIPアドレスを作成:AnsibleとEC2

- name: Basic provisioning of EC2 instance 
     ec2: 
     assign_public_ip: no 
     aws_access_key: "{{ aws_id }}" 
     aws_secret_key: "{{ aws_key }}" 
     region: "{{ aws_region }}" 
     image: "{{ standard_ami }}" 
     instance_type: "{{ free_instance }}" 
     key_name: "{{ ssh_keyname }}" 
     count: 3 
     state: present 
     group_id: "{{ secgroup_id }}" 
     wait: no 
     #delete_on_termination: yes 

     instance_tags: 
      Name: Dawny33Template 
     register: ec2 

、生成されたインスタンスは、パブリックIPの割り当てされています:

TASK [Add new instance to host group] ****************************************** 
changed: [localhost] => (item={u'kernel': None, u'root_device_type': u'ebs', u'private_dns_name': u'ip-172-31-45-61.us-west-2.compute.internal', u'public_ip': u'35.167.242.55', u'private_ip': u'172.31.45.61', u'id': u'i-0b2f186f2ea822a61', u'ebs_optimized': False, u'state': u'pending', u'virtualization_type': u'hvm', u'root_device_name': u'/dev/xvda', u'ramdisk': None, u'block_device_mapping': {u'/dev/xvda': {u'status': u'attaching', u'delete_on_termination': True, u'volume_id': u'vol-07e905319086716c9'}}, u'key_name': u'Dawny33Ansible', u'image_id': u'ami-f173cc91', u'tenancy': u'default', u'groups': {u'sg-eda31a95': u'POC'}, u'public_dns_name': u'ec2-35-167-242-55.us-west-2.compute.amazonaws.com', u'state_code': 0, u'tags': {u'Name': u'Dawny33Template'}, u'placement': u'us-west-2b', u'ami_launch_index': u'2', u'dns_name': u'ec2-35-167-242-55.us-west-2.compute.amazonaws.com', u'region': u'us-west-2', u'launch_time': u'2017-01-31T06:25:38.000Z', u'instance_type': u't2.micro', u'architecture': u'x86_64', u'hypervisor': u'xen'}) 

誰かがなぜこれが起こっているのか理解できるように助けることができますか?

答えて

0

ここでの問題は、公開VPCでスレーブインスタンスを起動していたことです。したがって、パブリックIPはデフォルトで割り当てられています。

パブリックIPが必要ない場合は、VPCのプライベートサブネットでインスタンスを起動する必要があります。

- name: Basic provisioning of EC2 instance 
    ec2: 
    assign_public_ip: no 
    aws_access_key: "{{ aws_id }}" 
    aws_secret_key: "{{ aws_key }}" 
    region: "{{ aws_region }}" 
    image: "{{image_instance }}" 
    instance_type: "{{ free_instance }}" 
    key_name: "{{ ssh_keyname }}" 
    count: 3 
    state: present 
    group_id: "{{ secgroup_id }}" 
    vpc_subnet_id: "{{ private_subnet_id }}" 
    wait: no 
    instance_tags: 
     Name: {{ template_name }} 
    #delete_on_termination: yes 
    register: ec2 
1

"assign_public_ip"フィールドはbool値です。 here

誰かがanabilities-module-coreライブラリでこれを修正しましたが、変更は反映されませんでした。 here

+1

[EC2](https://github.com/ansible/ansible/blob/5f89fc4a689fed6d60a79ba23fae6860706cb82d/lib/ansible/modules/cloud:例えば、以下のプライベートサブネット内のEC2インスタンスをプロビジョニングするための例示的なタスクであります/amazon/ec2.py#L1561)モジュールはブール値を持ち、 'no'はYAMLの' false'と似ています。私はそうは思わない。 –

+0

@ ConstantinSuvorovうん。私は 'false'でも試してみました。うまくいきませんでした:( – Dawny33

関連する問題