在Ansible playbook中获取已创建实例的IP地址

时间:2016-08-25 21:46:46

标签: amazon-web-services amazon-ec2 ansible ansible-playbook

我有一个使用

的Ansible剧本
include: launch.yml

创建AWS EC2实例。然后我

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

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

我不确定如何获取IP地址并将其明确发送到stop aws实例角色。我怎么能这样做?这适用于Ansible v2.1.1.0。

1 个答案:

答案 0 :(得分:-1)

我最终没有在Ansible中使用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。这一直运作良好。