diff --git a/plugins/modules/filesystem.py b/plugins/modules/filesystem.py index 746f1660d0..caef9149ee 100644 --- a/plugins/modules/filesystem.py +++ b/plugins/modules/filesystem.py @@ -35,7 +35,7 @@ options: default: present version_added: 1.3.0 fstype: - choices: [bcachefs, btrfs, ext2, ext3, ext4, ext4dev, f2fs, lvm, ocfs2, reiserfs, xfs, vfat, swap, ufs] + choices: [bcachefs, btrfs, ext2, ext3, ext4, ext4dev, f2fs, lvm, ocfs2, reiserfs, xfs, vfat, swap, ufs, gfs2] description: - Filesystem type to be created. This option is required with O(state=present) (or if O(state) is omitted). - V(ufs) support has been added in community.general 3.4.0. @@ -611,6 +611,11 @@ class UFS(Filesystem): return fragmentsize * providersize +class GFS2(Filesystem): + MKFS = "mkfs.gfs2" + MKFS_FORCE_FLAGS = ["-O"] + MKFS_SET_UUID_OPTIONS = ["-U"] + FILESYSTEMS = { "bcachefs": Bcachefs, "ext2": Ext2, @@ -626,6 +631,7 @@ FILESYSTEMS = { "LVM2_member": LVM, "swap": Swap, "ufs": UFS, + "gfs2": GFS2, } diff --git a/tests/integration/targets/filesystem/defaults/main.yml b/tests/integration/targets/filesystem/defaults/main.yml index 7ff30bcd54..3ae2ffc2ed 100644 --- a/tests/integration/targets/filesystem/defaults/main.yml +++ b/tests/integration/targets/filesystem/defaults/main.yml @@ -29,6 +29,7 @@ tested_filesystems: lvm: {fssize: 20, grow: true, new_uuid: 'something'} swap: {fssize: 10, grow: false, new_uuid: null} # grow not implemented ufs: {fssize: 10, grow: true, new_uuid: null} + gfs2: {fssize: 10, grow: false, new_uuid: null} get_uuid_any: "blkid -c /dev/null -o value -s UUID {{ dev }}" diff --git a/tests/integration/targets/filesystem/tasks/setup.yml b/tests/integration/targets/filesystem/tasks/setup.yml index edf1609ee8..671dc347ba 100644 --- a/tests/integration/targets/filesystem/tasks/setup.yml +++ b/tests/integration/targets/filesystem/tasks/setup.yml @@ -89,6 +89,12 @@ state: present when: ansible_facts.os_family == 'Debian' +- name: "Install GFS2" + ansible.builtin.package: + name: gfs2-utils + state: present + when: ansible_facts.os_family in ['Debian', 'RedHat', 'Suse', 'Ubuntu'] + - name: "Install f2fs tools and get version" when: - ansible_facts.os_family != 'RedHat' or ansible_facts.distribution == 'Fedora'