mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-12 07:35:31 +01:00
work around pipefails with bash subshells
Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
parent
d4c13adb85
commit
0f51b599fb
1 changed files with 108 additions and 99 deletions
|
|
@ -1,24 +1,93 @@
|
|||
- name: Linux dependencies
|
||||
- name: Install dependencies (Linux)
|
||||
ansible.builtin.package:
|
||||
name: e2fsprogs
|
||||
state: present
|
||||
when: ansible_system == 'Linux'
|
||||
block:
|
||||
- name: Install dependencies (Linux)
|
||||
ansible.builtin.package:
|
||||
name: e2fsprogs
|
||||
state: present
|
||||
- name: Set shell_executable fact (Linux)
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /bin/bash
|
||||
|
||||
- name: FreeBSD dependencies
|
||||
- name: Install dependencies (FreeBSD)
|
||||
ansible.builtin.package:
|
||||
name: bash
|
||||
state: present
|
||||
|
||||
- name: Register facts on Linux
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /bin/bash
|
||||
ephemeral_device_a: /tmp/myfs_A.img
|
||||
ephemeral_device_b: /tmp/myfs_B.img
|
||||
ephemeral_fstype: ext3
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'Linux'
|
||||
|
||||
- name: Register facts on Solaris/SunOS
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /usr/bin/bash
|
||||
ephemeral_device_a: /dev/lofi/1
|
||||
ephemeral_device_b: /dev/lofi/2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
lofiadm -a /tmp/myfs_A.img /dev/lofi/1 &&
|
||||
lofiadm -a /tmp/myfs_B.img /dev/lofi/2
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
lofiadm -d /dev/lofi/1 &&
|
||||
lofiadm -d /dev/lofi/2 || true
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/vfstab
|
||||
when: ansible_system == 'SunOS'
|
||||
|
||||
- name: Register facts on FreeBSD
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /usr/local/bin/bash
|
||||
ephemeral_device_a: /dev/md1
|
||||
ephemeral_device_b: /dev/md2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
mdconfig -a -t vnode -f /tmp/myfs_A.img -u /dev/md1 &&
|
||||
mdconfig -a -t vnode -f /tmp/myfs_B.img -u /dev/md2
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
mdconfig -d -u /dev/md1 &&
|
||||
mdconfig -d -u /dev/md2
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'FreeBSD'
|
||||
block:
|
||||
- name: Install dependencies (FreeBSD)
|
||||
ansible.builtin.package:
|
||||
name: bash
|
||||
state: present
|
||||
- name: Set shell_executable fact (FreeBSD)
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /usr/local/bin/bash
|
||||
|
||||
- name: Register facts on NetBSD
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /usr/local/bin/bash
|
||||
ephemeral_device_a: /dev/vnd1
|
||||
ephemeral_device_b: /dev/vnd2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
vnconfig /dev/vnd1 /tmp/myfs_A.img &&
|
||||
vnconfig /dev/vnd2 /tmp/myfs_B.img
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
vnconfig -u /dev/vnd1 &&
|
||||
vnconfig -u /dev/vnd2
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'NetBSD'
|
||||
|
||||
- name: Register format fs command on Non-Linux and Non-OpenBSD
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_format_fs_cmd: >-
|
||||
newfs {{ ephemeral_device_a }} &&
|
||||
newfs {{ ephemeral_device_b }}
|
||||
when: ansible_system in ('SunOS', 'FreeBSD', 'NetBSD')
|
||||
|
||||
- name: Register facts on OpenBSD
|
||||
ansible.builtin.set_fact:
|
||||
shell_executable: /usr/local/bin/bash
|
||||
ephemeral_device_a: /dev/vnd1c
|
||||
ephemeral_device_b: /dev/vnd2c
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
vnconfig vnd1 /tmp/myfs_A.img &&
|
||||
vnconfig vnd2 /tmp/myfs_B.img
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
vnconfig -u vnd1 &&
|
||||
vnconfig -u vnd2
|
||||
ephemeral_format_fs_cmd: >-
|
||||
newfs /dev/rvnd1c &&
|
||||
newfs /dev/rvnd2c
|
||||
ephemeral_fstype: ffs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'OpenBSD'
|
||||
|
||||
|
||||
- name: Create the mount point
|
||||
ansible.builtin.file:
|
||||
|
|
@ -464,80 +533,6 @@
|
|||
path: /tmp/myfs_B.img
|
||||
size: 20M
|
||||
|
||||
- name: Register facts on Linux
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_device_a: /tmp/myfs_A.img
|
||||
ephemeral_device_b: /tmp/myfs_B.img
|
||||
ephemeral_fstype: ext3
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'Linux'
|
||||
|
||||
- name: Register facts on Solaris/SunOS
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_device_a: /dev/lofi/1
|
||||
ephemeral_device_b: /dev/lofi/2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
lofiadm -a /tmp/myfs_A.img /dev/lofi/1 &&
|
||||
lofiadm -a /tmp/myfs_B.img /dev/lofi/2
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
lofiadm -d /dev/lofi/1 &&
|
||||
lofiadm -d /dev/lofi/2 || true
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/vfstab
|
||||
when: ansible_system == 'SunOS'
|
||||
|
||||
- name: Register facts on FreeBSD
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_device_a: /dev/md1
|
||||
ephemeral_device_b: /dev/md2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
mdconfig -a -t vnode -f /tmp/myfs_A.img -u /dev/md1 &&
|
||||
mdconfig -a -t vnode -f /tmp/myfs_B.img -u /dev/md2
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
mdconfig -d -u /dev/md1 &&
|
||||
mdconfig -d -u /dev/md2
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'FreeBSD'
|
||||
|
||||
- name: Register facts on NetBSD
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_device_a: /dev/vnd1
|
||||
ephemeral_device_b: /dev/vnd2
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
vnconfig /dev/vnd1 /tmp/myfs_A.img &&
|
||||
vnconfig /dev/vnd2 /tmp/myfs_B.img
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
vnconfig -u /dev/vnd1 &&
|
||||
vnconfig -u /dev/vnd2
|
||||
ephemeral_fstype: ufs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'NetBSD'
|
||||
|
||||
- name: Register format fs command on Non-Linux and Non-OpenBSD
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_format_fs_cmd: >-
|
||||
yes | newfs {{ ephemeral_device_a }} &&
|
||||
yes | newfs {{ ephemeral_device_b }}
|
||||
when: ansible_system in ('SunOS', 'FreeBSD', 'NetBSD')
|
||||
|
||||
- name: Register facts on OpenBSD
|
||||
ansible.builtin.set_fact:
|
||||
ephemeral_device_a: /dev/vnd1c
|
||||
ephemeral_device_b: /dev/vnd2c
|
||||
ephemeral_create_loop_dev_cmd: >-
|
||||
vnconfig vnd1 /tmp/myfs_A.img &&
|
||||
vnconfig vnd2 /tmp/myfs_B.img
|
||||
ephemeral_remove_loop_dev_cmd: >-
|
||||
vnconfig -u vnd1 &&
|
||||
vnconfig -u vnd2
|
||||
ephemeral_format_fs_cmd: >-
|
||||
yes | newfs /dev/rvnd1c &&
|
||||
yes | newfs /dev/rvnd2c
|
||||
ephemeral_fstype: ffs
|
||||
ephemeral_fstab: /etc/fstab
|
||||
when: ansible_system == 'OpenBSD'
|
||||
|
||||
##### FORMAT FS ON LINUX
|
||||
|
||||
- name: Block to format FS on Linux
|
||||
|
|
@ -603,7 +598,9 @@
|
|||
register: fstab_stat_after_mount
|
||||
|
||||
- name: Get mountinfo
|
||||
ansible.builtin.command: grep -c '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep -c '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
register: check_mountinfo
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
|
|
@ -616,7 +613,9 @@
|
|||
- fstab_stat_before_mount['stat']['checksum'] == fstab_stat_after_mount['stat']['checksum']
|
||||
|
||||
- name: Get first mount record
|
||||
ansible.builtin.command: grep '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
register: ephemeral_mount_record_1
|
||||
changed_when: false
|
||||
|
||||
|
|
@ -630,12 +629,16 @@
|
|||
register: ephemeral_mount_info
|
||||
|
||||
- name: Get second mount record (should be different than the first)
|
||||
ansible.builtin.command: grep '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
register: ephemeral_mount_record_2
|
||||
changed_when: false
|
||||
|
||||
- name: Get mountinfo
|
||||
ansible.builtin.command: grep -c '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep -c '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
failed_when: false
|
||||
register: check_mountinfo
|
||||
changed_when: false
|
||||
|
|
@ -658,12 +661,16 @@
|
|||
ignore_errors: true
|
||||
|
||||
- name: Get third mount record (should be the same than the second)
|
||||
ansible.builtin.command: grep '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
register: ephemeral_mount_record_3
|
||||
changed_when: false
|
||||
|
||||
- name: Get mountinfo
|
||||
ansible.builtin.command: grep -c '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep -c '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
failed_when: false
|
||||
register: check_mountinfo
|
||||
changed_when: false
|
||||
|
|
@ -692,7 +699,9 @@
|
|||
register: fstab_stat_after_unmount
|
||||
|
||||
- name: Get mountinfo
|
||||
ansible.builtin.command: grep -c '/tmp/myfs' /etc/mtab
|
||||
ansible.builtin.shell:
|
||||
cmd: grep -c '/tmp/myfs' <(mount -v)
|
||||
executable: "{{ shell_executable }}"
|
||||
register: check_mountinfo
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
|
|
|
|||
Loading…
Reference in a new issue