0
我正在運行Ansible遊戲以配置EC2實例,但我無法提取public_ip
參數。這裏的打法:無法在配置後使用Ansible提取EC2 public_ip
---
- name: Launch the new EC2 Instance
local_action:
module: ec2
group_id: "{{ webserver_firewall.group_id }}"
instance_type: "{{ instance_type}}"
image: "{{ ami_id }}"
region: "{{ aws_region }}"
count: "{{ count }}"
key_name: "{{ key_name }}"
wait: yes
volumes:
- device_name: /dev/sda1
volume_type: gp2
volume_size: 10
delete_on_termination: true
instance_tags:
Name: aws-webserver
register: ec2_webserver1
- debug: var="{{ item.public_ip }}"
with_items: "{{ ec2_webserver1.instances }}"
這裏的調試輸出的一部分:
ok: [localhost] => (item={u'kernel': None, u'root_device_type': u'ebs', <snip>, u'public_ip': u'1X.XX.XXX.X6', <snip>, u'root_device_name': u'/dev/sda1', u'hypervisor': u'xen'}) => {
"1X.XX.XXX.X6": "VARIABLE IS NOT DEFINED!",
"item": {
"ami_launch_index": "1",
"architecture": "x86_64",
<snip>
"public_ip": "1X.XX.XXX.X6",
"root_device_name": "/dev/sda1",
"root_device_type": "ebs",
"state": "running",
"hypervisor": "xen",
<snip>
}
}
如果我試圖提供一個實例(count: 1
),那麼我可以使用ec2_webserver1.instances[0]['public_ip']
提取IP - 我不知道這是提取IP的正確方法。我猜這可能是相關部分的錯誤:
"1X.XX.XXX.X6": "VARIABLE IS NOT DEFINED!",
但我不知道如何修改播放。我在這裏錯過了什麼?
出租車你嘗試:' - debug:var = item.public_ip' – helloV
你可以試試這個:with_items:「{{ec2_webserver1.instances [0]}}」 –