列出ami超过x天/月

时间:2018-05-14 22:54:26

标签: amazon-web-services ansible

有没有人知道是否可以使用ec2_ami_find模块检索超过x个月(或几天)的EC2 AMI列表?到目前为止我已经:

- name: ec2 find all
  ec2_ami_find:
    owner: self
    region: us-west-1
    sort: creationDate
    sort_order: descending
  register: ec2_ami

- name: test
  set_fact:
    date: "{{lookup('pipe','date +%Y%m%d%H%M%S -d \"180 day ago\"')}}"
    msg: "{{ ec2_ami | json_query('results[?creationDate<`{{ date }}`]') }}"

但是,这似乎不适合我。无论我在日期命令中放置什么(180天,1天,700天),它都会为我检索完全相同的AMI列表。

1 个答案:

答案 0 :(得分:1)

它与字符串插值和替换set_fact指令中的日期变量有关。这是一个示例,我也使用ec2_ami_facts模块而不是ec2_ami_find,因为ec2_ami_find很快就会被弃用。

---

- hosts: localhost
  remote_user: me
  gather_facts: no
  connection: local

  tasks:
    - ec2_ami_facts:
        owner: self
        region: eu-central-1
      register: ec2_ami

    - set_fact:
        filter_date: "{{ lookup('pipe','date \"+%Y-%m-%d\" -d \"180 day ago\"') }}"

    - debug: var=filter_date

    - set_fact:
        filtered_ami: "{{ ec2_ami | json_query(\"images[?creation_date<=`\" + filter_date + \"`]\") }}"

    - shell: echo "{{ filtered_ami | length }} {{ ec2_ami.images | length }}"