获取使用Ansible创建的AMI的AMI ID

Pet*_*ter 3 amazon-web-services ansible

我正在使用Ansible构建EC2实例,然后从实例创建AMI.我确定我在这里遗漏了一些东西,但是如何获得新创建的AMI的DI?我试过了:

tasks:
- name: create an ami in us-east-1
  ec2_ami: wait=yes
           aws_access_key={{ ec2_access_key }}
           aws_secret_key={{ ec2_secret_key }}
           instance_id={{ item }}
           region={{ region1 }}
           name=data-mgmt-qa-006
  with_items: hostvars[inventory_hostname]['ansible_ec2_instance_id']
  register: ec2_ami_info

- debug: var=item
  with_items: ec2_ami_info.image_id 
Run Code Online (Sandbox Code Playgroud)

和:

tasks:
- name: create an ami in us-east-1
  ec2_ami: wait=yes
           aws_access_key={{ ec2_access_key }}
           aws_secret_key={{ ec2_secret_key }}
           instance_id={{ item }}
           region={{ region1 }}
           name=data-mgmt-qa-006
  with_items: hostvars[inventory_hostname]['ansible_ec2_instance_id']
  register: instance

- debug: var=item
  with_items: instance.image_id
Run Code Online (Sandbox Code Playgroud)

后者'注册'是从文档中复制的,但我显然无法正确使用with_items.

AMI正在创建中.任何建议将不胜感激.

Pet*_*ter 6

Ran debug var = instance,得到:

TASK: [debug var=instance] **************************************************** 
ok: [54.90.128.104] => {
"instance": {
    "changed": true, 
    "msg": "All items completed", 
    "results": [
        {
            "changed": true, 
            "image_id": "ami-be14b9d6", 
            "invocation": {
                "module_args": "wait=yes aws_access_key=**** aws_secret_key=**** instance_id=i-393284d2 region=us-east-1 name=blah", 
                "module_name": "ec2_ami"
            }, 
            "item": "i-393284d2", 
            "msg": "AMI creation operation complete", 
            "state": "available"
        }
    ]
}
}
Run Code Online (Sandbox Code Playgroud)

鉴于:

- debug: var=instance.results[0].image_id
Run Code Online (Sandbox Code Playgroud)

给出了正确的结果.