2016-08-25 4 views
-4

에서 생성 된 인스턴스의 IP 주소를 얻기 나는 AWS EC2 인스턴스를 만들 수Ansible 각본

include: launch.yml 

를 사용하는 Ansible의 각본 있습니다. 내가 그랬어

hosts: server-launch 
sudo: yes 
gather_facts: yes 
vars_files: 
    - vars.yml 

roles: 
    - { role: "role1" } 
    - { role: "role2" } 
    - { role: "stop aws instance", ip_address: "" } 

IP 주소를 가져 와서 중지 aws 인스턴스 역할에 명시 적으로 보내는 방법을 모르겠습니다. 이 문제를 어떻게 해결할 수 있습니까? 이것은 Ansible v2.1.1.0입니다.

+0

나는 글자 그대로의 글을 게시 할 자유가 없지만 필요한 곳을 명확히 할 수있다. 내가 게시 한 것은 실제 코드와 거의 다른 이름을 제외하고 있습니다. – danielhklein

+1

인스턴스를 시작한 후 어떻게 IP 주소를 얻습니까? –

답변

-1

나는이 문제를 해결하기 위해 불안정한 환경에서 ec2 구현을 사용하지 않았다. 대신에 나는 위에서 언급 한 "role2"에 다음 줄을 추가 :

- name: restart machine 
    shell: sleep 2 && shutdown -r now "Ansible updates triggered" 
    async: 1 
    poll: 0 
    sudo: true 
    ignore_errors: true 

- name: waiting for server to come back 
    local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=300 
    sudo: false 

here을 발견했다. 그것은 잘 작동하고 있습니다.