如何使用gcp_compute_instance_info获取特定磁盘



我有一个GCP实例,它有3个磁盘:启动磁盘、数据磁盘和临时磁盘。我想使用类似gcp_compute_instance_info的Ansible模块来查找数据磁盘名称:

- name: found the data disk
gcp_compute_instance_info:
zone: "{{ gcp_zone }}"
filters:
- name = "{{ host }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_auth_kind }}"
service_account_file: "{{ gcp_acct_file }}"
register: inst_reg
- debug: msg="{{ inst_reg.resources[0].disks[0].deviceName }}"

这只给了我一个磁盘名称,

TASK [debug] **************************************************************************************************
Friday 03 June 2022  00:46:08 +0000 (0:00:00.762)       0:00:03.198 *********** 
ok: [localhost] => {
"msg": "abc-prod"
}

它是引导盘。

我知道这是因为disks[0],但我如何找到数据磁盘的名称?

对于服务器abc-prod,磁盘为:

abc-prod
abc-prod-data (or abc-prod-data-2022-01-01-05-23-22)
abc-prod-temp

数据磁盘名称的格式为abc-prod-data或具有时间戳的abc-prod-data-2022-01-01-05-23-22

我需要检索数据磁盘,然后创建它的快照。

谢谢!

我有额外的代码可以工作,它会拾取数据磁盘:

- set_fact:
disk_list: "{{ inst_reg.resources[0]| community.general.json_query('disks[*].deviceName') | list }}"
- debug: msg="{{ disk_list }}"
- set_fact:
target_disk: "{{ item }}"
loop: "{{ disk_list }}"
when: item | regex_search("^(.*)-data(.*)$")
- debug: msg="{{ target_disk }}"

对于没有时间戳的数据盘,输出看起来是这样的:

TASK [debug] ************************************************************************************Friday 03 June 2022  03:07:38 +0000 (0:00:00.181)       0:00:03.290 *********** 
ok: [localhost] => {
"msg": [
"abc-test",
"abc-test-temp",
"abc-test-data"
]
}
TASK [set_fact] ************************************************************************************Friday 03 June 2022  03:07:38 +0000 (0:00:00.042)       0:00:03.332 *********** 
skipping: [localhost] => (item=abc-test) 
skipping: [localhost] => (item=abc-test-temp) 
ok: [localhost] => (item=abc-test-data)
TASK [debug] ************************************************************************************Friday 03 June 2022  03:07:38 +0000 (0:00:00.055)       0:00:03.388 *********** 
ok: [localhost] => {
"msg": "abc-test-data"
}

或者对于有时间戳的数据盘:

TASK [debug] ************************************************************************************Friday 03 June 2022  03:04:28 +0000 (0:00:00.172)       0:00:03.252 *********** 
ok: [localhost] => {
"msg": [
"abc-prod",
"abc-prod-temp",
"abc-prod-data-2022-06-03-01-01-54"
]
}
TASK [set_fact] ************************************************************************************Friday 03 June 2022  03:04:28 +0000 (0:00:00.041)       0:00:03.294 *********** 
skipping: [localhost] => (item=abc-prod) 
skipping: [localhost] => (item=abc-prod-temp) 
ok: [localhost] => (item=abc-prod-data-2022-06-03-01-01-54)
TASK [debug] ************************************************************************************Friday 03 June 2022  03:04:29 +0000 (0:00:00.093)       0:00:03.387 *********** 
ok: [localhost] => {
"msg": "abc-prod-data-2022-06-03-01-01-54"
}

最新更新