【发布时间】:2020-09-05 08:06:18
【问题描述】:
我正在尝试创建一个执行以下操作的剧本,
- 创建具有特定大小的逻辑卷,如果卷组没有足够的大小输出消息并使用其他大小。
- 如果卷组不存在退出并输出消息
- 如果逻辑卷创建格式并挂载到磁盘
我正在尝试找到一种方法来做到这一点,但我在谷歌上找不到任何可以帮助我解决这个问题的方法。
我正在使用 ansible 2.7.8
【问题讨论】:
我正在尝试创建一个执行以下操作的剧本,
我正在尝试找到一种方法来做到这一点,但我在谷歌上找不到任何可以帮助我解决这个问题的方法。
我正在使用 ansible 2.7.8
【问题讨论】:
假设您有 100 个节点和 1 个控制节点。 100 个节点混合了一些具有称为数据仓的 VG 和一些没有 和 100个节点混合不同大小的VG数据仓
创建具有特定大小的逻辑卷,如果卷组 没有足够的大小输出一条消息并使用另一个大小。 (LV name = dbdata and size 2.5G if VG databin has enough size or fall back to 1G )
如果卷组不存在退出并输出消息 (如果没有 VG 数据仓,我们跳过)
如果逻辑卷创建格式并挂载到磁盘 (如果创建了 dbdata LV,则使用 ext4 格式化并挂载到 /db)
--使用 Block and Fail 的示例 Playbook(错误处理)--
---
- name: Setup LVM
hosts: all
tasks:
- name: Check for databin VG
fail:
msg: VG databin does not exist
when:
- ansible_lvm['vgs']['databin'] is not defined
- name: Create LVM and Filesystem and Mount
block:
- name: Check for databin VG Size of 2500MiB
fail:
msg: Could not create LV with 2500MiB size
when:
- ansible_lvm['vgs']['databin']['size_g'] < "2.50"
- name: Create 2500MiB LVM on databin VG
lvol:
lv: dbdata
vg: databin
size: "2532"
rescue:
- name: Fall back and Create 1024MiB LVM on databin VG
lvol:
size: "1024"
vg: databin
lv: dbdata
always:
- name: Set Filesystem
filesystem:
dev: /dev/databin/dbdata
fstype: ext4
- name: Mount LV
mount:
path: /db
src: /dev/databin/dbdata
fstype: ext4
state: present
【讨论】:
我会在 ansible 中查看“块”。块,允许您执行一项操作并使用“救援”捕获任何错误,然后执行其他操作。
对于问题 2,我会检查调试以及如何在“何时”条件下使用它。
IE:当:vgname 不在 ansible_lvm.vgs 中
【讨论】: