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

概要

  • 此模块创建一个文件系统。

要求

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

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

  • 主要使用与操作系统(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

状态

字符串

在 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。

支持fstypebcachefsext2ext3ext4ext4devlvmxfs

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

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)