如何解决从 Ansible 输入挂载点名称查找 LVM 和 VG 名称
如果我们将挂载点名称作为剧本的输入,我正在尝试查找设置中是否有任何选项或 ansible 模块的任何组合来查找 LVM/VG 名称,如果您有任何选项,请提出建议,到目前为止,我只能看到设置中的唯一选项是使用 ansible_mounts.device 获取设备名称“device”:“/dev/mapper/rhel-root”。但是将 LV 和 VG 名称从“/dev/mapper/rhel-root”中分离出来是另一个挑战。如果有任何选择,请提出建议。
解决方法
通过ansible_lvm
返回的setup
事实和hardware
子集的一部分,这实际上是可能的since 2015。
要获得结果,您需要以 root 身份运行 setup
,并且必须在目标上安装 lvm 实用程序。
您可以在本地机器上进行快速测试(如果相关,请适应您拥有提权权限的任何目标):
ansible localhost -b -m setup \
-a 'gather_subset=!all,!min,hardware' -a 'filter=ansible_lvm'
这是我可以连接到的第一个测试虚拟机的示例输出:
localhost | SUCCESS => {
"ansible_facts": {
"ansible_lvm": {
"lvs": {
"docker_data": {
"size_g": "80.00","vg": "docker"
},"root": {
"size_g": "16.45","vg": "system"
},"swap": {
"size_g": "3.00","vg": "system"
}
},"pvs": {
"/dev/sda2": {
"free_g": "0.05","size_g": "19.50","/dev/sdb": {
"free_g": "0","size_g": "80.00","vg": "docker"
}
},"vgs": {
"docker": {
"free_g": "0","num_lvs": "1","num_pvs": "1","size_g": "80.00"
},"system": {
"free_g": "0.05","num_lvs": "2","size_g": "19.50"
}
}
}
},"changed": false
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。