可见AWS创建和操作EC2



你好,我使用这个剧本创建EC2实例我使用这个文档来制作我的剧本:https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_module.html parameter-instance_tags

###Example pour launch une instance###
###ansible-playbook --extra-vars "hosts=ansible-test"###
- hosts: localhost
##Init variable##
vars:
keypair: "AWS-KEYS-WEBSERVER001"
instance_type: t2.micro
hosts: "{{ hosts }}"
groups: "Web"
image: "ami-0ea4a063871686f37"
tasks:
- name: startup new instance
community.aws.ec2_instance:
key_name: "{{ keypair }}"
security_group: "Web"
instance_type: "{{ instance_type }}"
name: "fermela"
image_id: "{{ image }}"
wait: true
region: "eu-west-3"
network:
assign_public_ip: true
vpc_subnet_id: "subnet-0c82e6027833af6cc"
register: ec2
- debug :
var: ec2

我的剧本工作和调试给我输出如下:

ok: [localhost] => {
"ec2": {
"changed": false,
"changes": [],
"failed": false,
"instance_ids": [
"i-0ecb077aafd7fda1c"
],
"instances": [
{
"ami_launch_index": 0,
"architecture": "x86_64",
"block_device_mappings": [
{
"device_name": "/dev/xvda",
"ebs": {
"attach_time": "2021-02-23T00:34:53+00:00",
"delete_on_termination": true,
"status": "attached",
"volume_id": "vol-0ad6a503c6cfa7f97"
}
}
],

我想操作这个输出,只显示ip_public

有人能帮我一下吗?

我已经尝试调试var: ec2。Public_ip但不工作

ec2_instance返回instances的列表,在本例中只有一个实例。尝试如下:

- debug :
var: ec2.instacnes[0].public_ip_address

您不能这样做,因为在您的输出中没有公共ip地址。试试这个使用ansible_facts注册

- debug :
ansible_facts['ansible_ec2_public_ipv4']

只有注册后在调试中显示的变量才能被访问。

最新更新