在 Ansible 剧本中获取创建实例的 IP 地址
Get IP address of created instance in 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 地址并将其显式发送给停止 aws 实例角色。我该怎么做?这是针对 Ansible v2.1.1.0 的。
我最终没有使用 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。这一直运作良好。
我有一个使用
的 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 地址并将其显式发送给停止 aws 实例角色。我该怎么做?这是针对 Ansible v2.1.1.0 的。
我最终没有使用 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。这一直运作良好。