有没有人知道是否可以使用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列表。
答案 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 }}"