我想编写一个 Ansible 剧本,以确定 raid 阵列中的驱动器是否md0
、md1
或md2
出现故障。如果失败,请删除并重新添加驱动器。如何使用 Ansible 进行此检查。
服务器上的驱动器/dev/nvme0n1
且/dev/nvme1n1
。
没有mdadm
模块(还...因此,您将不得不使用shell
/command
模块来执行此操作。
这可以通过 2 个任务完成。
第一个,你收集状态(你可以在StackExchange上找到关于如何grep的答案(
- name: Get mdadm status
command: >
mdadm -D {{ md_device }} …
您必须注册输出以检查是否有任何磁盘出现故障:
register: md_status
从那里您可以删除/添加磁盘:
- name: Attach/detach disk from RAID
shell: |
mdadm --manage {{ md_device }} --remove /dev/{{ drive }}
mdadm --manage {{ md_device }} --add /dev/{{ drive }}
带有when
条款。(抱歉,我不知道故障磁盘的输出(。
when: "FAILURE" in md_status
当然,您还必须处理md_device
和磁盘设备上的循环。那里的逻辑将取决于mdadm
的输出...
对不起,如果答案不是很准确。但是你的问题对你面临的问题太模糊了。