【发布时间】:2019-03-27 23:47:41
【问题描述】:
我是 Ansible 的新手,也是 Stackoverflow 的全新成员。
我正在尝试创建一个可查找未使用磁盘(可以是 SAN、Solidfire 或 localdisk)的剧本。根据大小变量过滤它们,并从符合条件的磁盘中创建一个卷组。
例如,服务器有 2 个 50GB 磁盘和 2 个 100GB 磁盘。
我希望即使用户输入51Gb 大小或49 GB 大小,剧本也应该能够考虑到 +-5gb 的误差范围。
我被卡住的部分是如何按大小过滤未使用的磁盘,误差范围为 +- 5gb。
我可以通过
查找未使用的磁盘set fact:
disks: "{{ansible_local.unused_disks}}"
这给出了未使用磁盘的列表。但是如何过滤该列表以获取具有上述误差范围的特定大小?
编辑
是的,你是对的。 ansible_local.unused_disks 不存在。
在我使用自定义事实放置之前检查的服务器上。在每台服务器上都不会出现这种情况。因此,我需要找到另一种方法来查找磁盘。
我与另一个 SA 核对并获得了此代码。
- name: Discover Disks
set_fact:
disks: "['/dev/{{item.key}}']"
when:
- not item.value.partitions
- not item.value.holder
- not item.value.links.ids
- item.key | search ("sd")
with_dict: "{{ ansible_devices }}"
但它给了我一个输出,它只显示找到的第一个未使用的设备,而不是列表中所有未使用的设备。所以我也需要这方面的帮助。
【问题讨论】: