Связывание экземпляра AWS ec2 с эластичным ip с использованием ANSIBLE PlayBook - PullRequest
0 голосов
/ 12 декабря 2018

Я создал код, и он успешно связывает мой экземпляр с EIP.Тем не менее, мой public_ip addr остается неизменным, то есть адрес, переданный vm до ассоциации с эластичным ip.Вот код,

---
  - name: Provision an EC2 Instance
    hosts: local
    connection: local
    gather_facts: False
    tags: provisioning
    vars:
      instance_type: t2.micro
      security_group: My secure group
      image: ami-5b673c34
      keypair: mynodes
      region: ap-south-1
      count: 1

    tasks:

      - name: Launch the new EC2 Instance
        local_action: ec2
                      group={{ security_group }}
                      instance_type={{ instance_type}}
                      image={{ image }}
                      wait=true
                      region={{ region }}
                      keypair={{ keypair }}
                      count={{count}}
        register: ec2

      - name: Get the Ip address
        debug: var=ec2.instances[0].public_dns_name

      - name: Allocating elastic IP to instance
        ec2_eip:
          in_vpc: yes
          reuse_existing_ip_allowed: yes
          state: present
          region: "{{ region }}"
          device_id: "{{ item }}"
        with_items: "{{ ec2.instance_ids }}"
          #device_id: "{{ ec2.instances[0] }}"
        #register: instance_eip

      - debug: msg=ec2.instances[0].public_ip


      - #name: eip with instance
        #pause:
          #seconds: 30

      - name: Add the newly created EC2 instance(s) to the local host group 
        local_action: lineinfile
                      dest="/etc/ansible/hosts"
                      regexp={{ item.private_ip }}
                      insertafter="[node3]" line={{ item.private_ip }}
        with_items: "{{ ec2.instances }}"


      - name: Wait for SSH to come up
        local_action: wait_for
                      host={{ item.public_ip }}
                      port=22
                      state=started
        with_items: '{{ ec2.instances }}'

      - name: Add tag to Instance(s)
        local_action: ec2_tag resource={{ item.id }} region={{ region }} state=present
        with_items: '{{ ec2.instances }}'
        args:
          tags:
            Name: node3

Так что мой код в настоящее время работает отлично, если я не назначил ему эластичный IP.Но когда я это делаю, я почему-то не могу выполнить задачу ssh'ing в моем только что созданном vm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...