community.general.filesystem 模块 – 创建文件系统

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:community.general.filesystem

概要

  • 此模块创建文件系统。

要求

执行此模块的主机上需要以下要求。

  • 使用与创建或调整文件系统大小相关的特定工具(来自 e2fsprogs、xfsprogs、dosfstools 等软件包),这些工具与 fstype 有关。

  • 使用主要与操作系统(Linux 或 FreeBSD)相关或两者都可用的通用工具,如 blkid

  • 在 FreeBSD 上,需要 util-linuxe2fsprogs 软件包。

参数

参数

注释

dev

别名:device

路径 / 必需

块设备(Linux)或字符设备(FreeBSD)或常规文件(两者)的目标路径。

在 FreeBSD 上设置特定于 Linux 的文件系统类型时,此模块仅适用于常规文件,即磁盘映像。

目前,lvm(仅限 Linux)和 ufs(仅限 FreeBSD)不支持将常规文件作为其目标 dev

community.general 3.4.0 中添加了对 FreeBSD 上字符设备的支持。

force

布尔值

如果 true,则允许在已具有文件系统的设备上创建新的文件系统。

选项

  • false ←(默认)

  • true

fstype

别名:type

字符串

要创建的文件系统类型。如果 state=present(或如果省略了 state),则此选项是必需的。

community.general 3.4.0 中添加了 ufs 支持。

community.general 8.6.0 中添加了 bcachefs 支持。

选项

  • "bcachefs"

  • "btrfs"

  • "ext2"

  • "ext3"

  • "ext4"

  • "ext4dev"

  • "f2fs"

  • "lvm"

  • "ocfs2"

  • "reiserfs"

  • "xfs"

  • "vfat"

  • "swap"

  • "ufs"

opts

字符串

要传递给 mkfs 命令的选项列表。

resizefs

布尔值

如果 true,如果块设备和文件系统大小不同,则将文件系统扩展到空间中。

支持 bcachefsbtrfsext2ext3ext4ext4devf2fslvmxfsufsvfat 文件系统。尝试调整其他文件系统类型的大小将会失败。

如果已挂载,XFS 将只会增长。目前,该模块基于 util-linux 软件包中的命令执行操作,因此 FreeBSD 系统不支持调整 XFS 的大小。

如果 fatresize < 1.04,则 vFAT 可能会失败。

uuid 互斥。

选项

  • false ←(默认)

  • true

state

字符串

在 community.general 1.3.0 中添加

如果 state=present,则文件系统在不存在时会被创建,如果省略 state,这是默认行为。

如果 state=absent,则如果 dev 上包含文件系统(由 blkid 检测到),文件系统签名将被擦除。

state=absent 时,除了 dev 之外的所有其他选项都将被忽略,并且如果设备 dev 实际上不存在,该模块也不会失败。

选项

  • "present" ← (默认)

  • "absent"

uuid

字符串

在 community.general 7.1.0 中添加

将文件系统的 UUID 设置为给定值。

opts 中指定的 UUID 选项优先于此值。

有关可能的值,请参阅 xfs_admin(8) (xfs)、tune2fs(8) (ext2ext3ext4ext4dev)。

对于 fstype=lvm,该值将被忽略,如果设置了,它将重置 PV UUID。

支持的 fstype 必须是 bcachefsext2ext3ext4ext4devlvmxfs 之一。

这不是幂等的。 指定此选项将始终导致更改。

resizefs 互斥。

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 中运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于差异模式时,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息。

注释

注意

  • 使用 blkid 检查 dev 上的潜在文件系统。如果 blkid 无法检测到文件系统(并且如果 FreeBSD 上的 fstyp 也无法检测到文件系统),即使 forcefalse,此文件系统也会被覆盖。

  • 在 FreeBSD 系统上,e2fsprogsutil-linux 包都提供与此模块兼容的 blkid 命令。但是,这些软件包彼此冲突,并且只有 util-linux 软件包提供在 state=absent 时不会失败所需的命令。

参见

另请参阅

community.general.filesize

创建一个具有给定大小的文件,或者如果该文件存在则调整其大小。

ansible.posix.mount

控制活动和已配置的挂载点。

Linux 的 xfs_admin(8) 手册页

GNU/Linux 的 xfs_admin 实现的手册页

Linux 的 tune2fs(8) 手册页

GNU/Linux 的 tune2fs 实现的手册页

示例

- name: Create a ext2 filesystem on /dev/sdb1
  community.general.filesystem:
    fstype: ext2
    dev: /dev/sdb1

- name: Create a ext4 filesystem on /dev/sdb1 and check disk blocks
  community.general.filesystem:
    fstype: ext4
    dev: /dev/sdb1
    opts: -cc

- name: Blank filesystem signature on /dev/sdb1
  community.general.filesystem:
    dev: /dev/sdb1
    state: absent

- name: Create a filesystem on top of a regular file
  community.general.filesystem:
    dev: /path/to/disk.img
    fstype: vfat

- name: Reset an xfs filesystem UUID on /dev/sdb1
  community.general.filesystem:
    fstype: xfs
    dev: /dev/sdb1
    uuid: generate

- name: Reset an ext4 filesystem UUID on /dev/sdb1
  community.general.filesystem:
    fstype: ext4
    dev: /dev/sdb1
    uuid: random

- name: Reset an LVM filesystem (PV) UUID on /dev/sdc
  community.general.filesystem:
    fstype: lvm
    dev: /dev/sdc
    uuid: random

作者

  • Alexander Bulimov (@abulimov)

  • quidame (@quidame)