1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-07-03 17:18:54 +00:00

adds GFS2 support (#12285)

* adds GFS support

* changes PR id
This commit is contained in:
Robert Sander 2026-06-15 17:43:36 +02:00 committed by GitHub
parent 07df65f293
commit 57739cbbd9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 61 additions and 19 deletions

View file

@ -15,20 +15,21 @@ tested_filesystems:
# - 1.7.0 requires at least 30Mo
# - 1.10.0 requires at least 38Mo
# - resizefs asserts when initial fs is smaller than 60Mo and seems to require 1.10.0
bcachefs: {fssize: 20, grow: true, new_uuid: null}
ext4: {fssize: 10, grow: true, new_uuid: 'random'}
ext4dev: {fssize: 10, grow: true, new_uuid: 'random'}
ext3: {fssize: 10, grow: true, new_uuid: 'random'}
ext2: {fssize: 10, grow: true, new_uuid: 'random'}
xfs: {fssize: 300, grow: false, new_uuid: 'generate'} # grow requires a mounted filesystem
btrfs: {fssize: 150, grow: false, new_uuid: null} # grow requires a mounted filesystem
reiserfs: {fssize: 33, grow: false, new_uuid: null} # grow not implemented
vfat: {fssize: 20, grow: true, new_uuid: null}
ocfs2: {fssize: '{{ ocfs2_fssize }}', grow: false, new_uuid: null} # grow not implemented
f2fs: {fssize: '{{ f2fs_fssize|default(60) }}', grow: 'f2fs_version is version("1.10.0", ">=")', new_uuid: null}
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}
bcachefs: {fssize: 20, grow: true, new_uuid: null, label: null}
ext4: {fssize: 10, grow: true, new_uuid: 'random', label: null}
ext4dev: {fssize: 10, grow: true, new_uuid: 'random', label: null}
ext3: {fssize: 10, grow: true, new_uuid: 'random', label: null}
ext2: {fssize: 10, grow: true, new_uuid: 'random', label: null}
xfs: {fssize: 300, grow: false, new_uuid: 'generate', label: null} # grow requires a mounted filesystem
btrfs: {fssize: 150, grow: false, new_uuid: null, label: null} # grow requires a mounted filesystem
reiserfs: {fssize: 33, grow: false, new_uuid: null, label: null} # grow not implemented
vfat: {fssize: 20, grow: true, new_uuid: null, label: null}
ocfs2: {fssize: '{{ ocfs2_fssize }}', grow: false, new_uuid: null, label: null} # grow not implemented
f2fs: {fssize: '{{ f2fs_fssize|default(60) }}', grow: 'f2fs_version is version("1.10.0", ">=")', new_uuid: null, label: null}
lvm: {fssize: 20, grow: true, new_uuid: 'something', label: null}
swap: {fssize: 10, grow: false, new_uuid: null, label: null} # grow not implemented
ufs: {fssize: 10, grow: true, new_uuid: null, label: null}
gfs2: {fssize: 50, grow: false, new_uuid: null, label: 'CLUSTER:LOCKSPACE'}
get_uuid_any: "blkid -c /dev/null -o value -s UUID {{ dev }}"

View file

@ -7,6 +7,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
register: fs_result
- name: "Assert that results are as expected"
@ -25,6 +26,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
register: fs2_result
- name: "Get UUID of the filesystem"
@ -44,6 +46,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
force: true
register: fs3_result

View file

@ -30,13 +30,14 @@
fssize: '{{ item.0.value.fssize }}'
grow: '{{ item.0.value.grow }}'
new_uuid: '{{ item.0.value.new_uuid }}'
label: '{{ item.0.value.label }}'
action: '{{ item.1 }}'
when:
# FreeBSD limited support
# Not available: btrfs, lvm, f2fs, ocfs2
# All BSD systems use swap fs, but only Linux needs mkswap
# Supported: ext2/3/4 (e2fsprogs), xfs (xfsprogs), reiserfs (progsreiserfs), vfat
- 'not (ansible_facts.system == "FreeBSD" and item.0.key in ["bcachefs", "btrfs", "f2fs", "swap", "lvm", "ocfs2"])'
- 'not (ansible_facts.system == "FreeBSD" and item.0.key in ["bcachefs", "btrfs", "f2fs", "swap", "lvm", "ocfs2", "gfs2"])'
# Available on FreeBSD but not on testbed (util-linux conflicts with e2fsprogs): wipefs, mkfs.minix
- 'not (ansible_facts.system == "FreeBSD" and item.1 in ["overwrite_another_fs", "remove_fs"])'
@ -80,6 +81,8 @@
# TODO: figure out why it fails, fix it!
# swap does not work on Alpine due to no -f support in mkswap
- 'not (item.0.key == "swap" and ansible_facts.distribution == "Alpine")'
# GFS2 not available on these distributions
- 'not (item.0.key == "gfs2" and ansible_facts.distribution in ["Alpine", "Archlinux", "CentOS", "RedHat"])'
loop: "{{ query('dict', tested_filesystems)|product(['create_fs', 'reset_fs_uuid', 'overwrite_another_fs', 'remove_fs', 'set_fs_uuid_on_creation', 'set_fs_uuid_on_creation_with_opts'])|list }}"
@ -97,6 +100,7 @@
fstype: '{{ item.0.key }}'
fssize: '{{ item.0.value.fssize }}'
grow: '{{ item.0.value.grow }}'
label: '{{ item.0.value.label }}'
action: '{{ item.1 }}'
when:
- 'ansible_facts.system == "FreeBSD"'

View file

@ -23,6 +23,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
register: fs_result
ignore_errors: true
@ -42,6 +43,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
force: true
register: fs_result2

View file

@ -9,6 +9,7 @@
community.general.filesystem:
dev: '{{ dev }}'
fstype: '{{ fstype }}'
label: '{{ label }}'
- name: "Get filesystem UUID with 'blkid'"
ansible.builtin.shell:

View file

@ -102,6 +102,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', 'Suse', 'Ubuntu'] or ansible_facts.distribution == 'Fedora'
- name: "Install f2fs tools and get version"
when:
- ansible_facts.os_family != 'RedHat' or ansible_facts.distribution == 'Fedora'