我需要编写一个ansible剧本来搜索GCP中的磁盘快照。
我需要获取的快照命名如下:
aaa-bbb-ccc-data-2020-11-30-20-58-35-sb-20201205150005
aaa-bbb-ccc-data-sb-20201204150027有些在中间有时间戳(在data和sb之间),有些没有中间的时间戳。但是它们都有快照创建时的时间戳,它的格式类似于yyyymmddhhmmss。
这是我的代码:
- set_fact:
snapshot_name: "aaa-bbb-ccc-data[-0-9]*-[s][b][-0-9]*"
- debug: msg="{{ snapshot_name }}"
- name: get snap
gcp_compute_snapshot_info:
filters:
- name = "{{ snapshot_name }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_kind }}"
service_account_file: "{{ gcp_file }}"
register: snaps
- debug: msg="{{ snaps }}"我希望获得与snapshot_name中定义的模式匹配的所有快照,但结果是空的:
TASK [get snap] *************************************************************************************************************************************************************************************************************************
Sunday 05 June 2022 00:51:28 +0000 (0:00:00.028) 0:00:03.502 ***********
ok: [localhost]
TASK [debug] **************************************************************************************************Sunday 05 June 2022 00:51:29 +0000 (0:00:00.598) 0:00:04.100 ***********
ok: [localhost] => {
"msg": {
"changed": false,
"failed": false,
"resources": []
}
}snapshot_name设置正确的模式,以便代码能够获取我想要的快照?谢谢!
发布于 2022-06-10 01:05:32
好吧,我通过删除字符串中的sb来解决这个问题,所以我使用了:
- set_fact:
snapshot_name: "aaa-bbb-ccc-data*"
- debug: msg="{{ snapshot_name }}"
- name: get snap
gcp_compute_snapshot_info:
filters:
- name = "{{ snapshot_name }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_kind }}"
service_account_file: "{{ gcp_file }}"
register: snaps
- debug: msg="{{ snaps }}" 结果是正确的!
https://stackoverflow.com/questions/72504122
复制相似问题