You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible的amazon.aws集合获取最新Amazon Linux 2 AMI

用Ansible amazon.aws.ec2_ami_info模块获取最新Amazon Linux 2 AMI(无需硬编码OwnerID)

你可以直接利用amazon.aws.ec2_ami_info模块的owners参数支持别名的特性,不需要硬编码数字OwnerID,再通过Ansible过滤器实现按创建时间排序取最新AMI的逻辑,完全替代你给出的AWS CLI命令。

完整Playbook示例

- name: 获取最新Amazon Linux 2 AMI
  hosts: localhost
  gather_facts: false
  collections:
    - amazon.aws
  tasks:
    - name: 收集符合条件的Amazon Linux 2 AMI列表
      amazon.aws.ec2_ami_info:
        region: us-east-1
        owners: amazon  # 使用官方账户别名,无需硬编码OwnerID
        filters:
          name: "amzn2-ami-hvm-2.0.*-x86_64-gp2"
      register: amzn2_amis

    - name: 提取最新的AMI ID
      set_fact:
        latest_amzn2_ami_id: "{{ amzn2_amis.images | sort(attribute='creation_date', reverse=true) | first | json_query('image_id') }}"

    - name: 打印最新AMI ID(可选)
      debug:
        msg: "最新Amazon Linux 2 AMI ID: {{ latest_amzn2_ami_id }}"

关键说明

  • owners: amazon:该参数支持AWS官方账户的别名(如amazon、self),无需手动获取或硬编码数字OwnerID,完美适配你的需求。
  • 排序取最新:通过sort(attribute='creation_date', reverse=true)对AMI列表按创建时间倒序排列,| first取第一个元素,再用json_query提取image_id,和你CLI命令中的reverse(sort_by(Images, &CreationDate))[:1]逻辑完全一致。
  • 后续使用:后续部署EC2实例时,直接引用变量{{ latest_amzn2_ami_id }}即可。

内容的提问来源于stack exchange,提问作者Chris King-Parra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:31:03