【发布时间】:2022-01-11 20:07:36
【问题描述】:
我正在尝试开发一个 Ansible playbook 来选择和显示 vCenter 中的数据存储列表,但是出于验证目的,我不应该选择名称中包含 local 或 Local 的数据存储。
例如考虑以下 4 个数据存储:
datastore:local8TQAESXHOST05-Local01vnx_dwcesxbl_ecom_lun7tqaesx37d_1
它应该只选择:
vnx_dwcesxbl_ecom_lun7tqaesx37d_1
应该不选择:
datastore:local8TQAESXHOST05-Local01
这是剧本
tasks:
- name: List of datastores with calculated values
set_fact:
ds_size_list: "{{ ds_size_list | default([]) + [{ 'name' : item.name, 'capacity' : item.capacity, 'freeSpace' : item.freeSpace, 'freeSpaceAfter' : freeSpaceAfter | int, 'percentFreeAfter' : percentFreeAfter | int }] }}"
with_items: "{{ datastore_info.datastores }}"
vars:
freeSpaceAfter: "{{ item.freeSpace - (vm_size_b | int) }}"
percentFreeAfter: "{{ freeSpaceAfter | int / item.capacity * 100 }}"
when: item.accessible
when: when: item.name is regex(?!local) #should exclude datastores containing "local" word
需要有关编写正则表达式以排除包含单词local 的数据存储的建议。
【问题讨论】:
标签: python regex automation ansible vmware