72 lines
1.7 KiB
YAML
72 lines
1.7 KiB
YAML
- hosts: minio-backups
|
|
gather_facts: true
|
|
tasks:
|
|
- name: ensure mdadm is installed
|
|
package:
|
|
name: mdadm
|
|
state: present
|
|
tags:
|
|
- install
|
|
- name: ensure usb hdd partitions are removed
|
|
command:
|
|
wipefs -fa {{ item }}
|
|
args:
|
|
removes: '{{ item }}-part1'
|
|
loop: '{{ raid_disks }}'
|
|
tags:
|
|
- wipefs
|
|
- name: ensure md raid array exists
|
|
command: >-
|
|
systemd-cat -t mdadm
|
|
mdadm --create --run
|
|
--name={{ md_name }}
|
|
--level=raid1
|
|
--raid-devices=2
|
|
/dev/md/{{ md_name }}
|
|
{{ raid_disks | join(' ') }}
|
|
args:
|
|
creates: /dev/disk/by-id/md-name-{{ md_name }}
|
|
tags:
|
|
- mdadm
|
|
- mdadm-create
|
|
- name: ensure md-auto-readd script is installed
|
|
copy:
|
|
content: |+
|
|
#!/bin/sh
|
|
|
|
main() {
|
|
md_dev=$(readlink -e /dev/disk/by-id/md-name-"$2")
|
|
if [ -z "${md_dev}" ]; then
|
|
printf 'Could not find block device for MD raid %s\n' "$2" >&2
|
|
exit 1
|
|
fi
|
|
exec mdadm --re-add "${md_dev}" "$1"
|
|
}
|
|
|
|
main "$@" 2>&1 | logger
|
|
dest: /usr/local/libexec/md-auto-readd
|
|
owner: root
|
|
group: root
|
|
mode: u=rwx,go=rx
|
|
tags:
|
|
- script
|
|
- name: ensure raid auto re-add udev rule exists
|
|
copy:
|
|
content: >+
|
|
ACTION=="add",
|
|
ENV{ID_FS_TYPE}=="linux_raid_member",
|
|
ENV{ID_FS_USAGE}=="raid",
|
|
RUN+="/usr/local/libexec/md-auto-readd $devnode $env{ID_FS_LABEL}"
|
|
dest: /etc/udev/rules.d/80-md-auto-readd.rules
|
|
mode: u=rw,go=r
|
|
owner: root
|
|
group: root
|
|
notify:
|
|
- reload udev
|
|
tags:
|
|
- udev
|
|
handlers:
|
|
- name: reload udev
|
|
command:
|
|
udevadm control --reload
|