community.general.btrfs_subvolume 模块 – 管理 btrfs 子卷

注意

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

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

要安装它,请使用: ansible-galaxy collection install community.general

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

community.general 6.6.0 中的新增功能

概要

  • 创建、更新和删除 btrfs 子卷和快照。

参数

参数

注释

automount

布尔值

允许模块临时挂载目标 btrfs 文件系统以验证当前状态并进行任何必要的更改。

选项

  • false ← (默认)

  • true

default

布尔值

将由 name 指定的子卷设置为文件系统的默认子卷。

选项

  • false ← (默认)

  • true

filesystem_device

路径

包含在要定位的 btrfs 文件系统中的块设备。

当存在多个 btrfs 文件系统时,用于指定应定位哪个文件系统。

filesystem_label

字符串

分配给要定位的 btrfs 文件系统的描述性标签。

当存在多个 btrfs 文件系统时,用于指定应定位哪个文件系统。

filesystem_uuid

字符串

分配给要定位的 btrfs 文件系统的唯一标识符。

当存在多个 btrfs 文件系统时,用于指定应定位哪个文件系统。

name

字符串 / 必需

要定位的子卷/快照的名称。

recursive

布尔值

如果为 true,则表示应根据需要创建/删除父/子子卷以完成操作(分别针对 state=presentstate=absent)。

选项

  • false ← (默认)

  • true

snapshot_conflict

字符串

定义当请求的快照路径上已存在子卷时的行为的策略。

skip - 仅当请求位置不存在子卷时才创建快照,否则表示不需要更改。警告,此选项尚未验证目标子卷是否是由请求源的快照生成的。

clobber - 如果请求的位置上已存在子卷,则先将其删除。此选项不是幂等的,每次执行都会生成新的快照。

error - 如果请求的位置上已存在子卷,则返回错误。此选项不是幂等的,并且在模块重放时将导致错误。

选项

  • "skip" ← (默认)

  • "clobber"

  • "error"

snapshot_source

字符串

标识创建的快照的源子卷。

推断创建的子卷是快照。

state

字符串

指示目标子卷的当前状态。

选项

  • "absent"

  • "present" ← (默认)

属性

属性

支持

描述

check_mode

支持:部分

在某些情况下,它可能会错误地报告正在创建的中间子卷。挂载后,如果在子卷创建位置发现类似文件的目录,则跳过该操作。

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

diff_mode

支持:不支持

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

备注

注意

  • 如果提供了任何或所有选项 filesystem_devicefilesystem_labelfilesystem_uuid 参数,则应存在匹配的 btrfs 文件系统。如果没有提供任何参数并且只有一个 btrfs 文件系统存在或只有一个 btrfs 文件系统已挂载,则将使用该文件系统;否则,模块将不执行任何操作并返回错误。

示例

- name: Create a @home subvolume under the root subvolume
  community.general.btrfs_subvolume:
    name: /@home
    filesystem_device: /dev/vda2

- name: Remove the @home subvolume if it exists
  community.general.btrfs_subvolume:
    name: /@home
    state: absent
    filesystem_device: /dev/vda2

- name: Create a snapshot of the root subvolume named @
  community.general.btrfs_subvolume:
    name: /@
    snapshot_source: /
    filesystem_device: /dev/vda2

- name: Create a snapshot of the root subvolume and make it the new default subvolume
  community.general.btrfs_subvolume:
    name: /@
    snapshot_source: /
    default: Yes
    filesystem_device: /dev/vda2

- name: Create a snapshot of the /@ subvolume and recursively creating intermediate subvolumes as required
  community.general.btrfs_subvolume:
    name: /@snapshots/@2022_06_09
    snapshot_source: /@
    recursive: True
    filesystem_device: /dev/vda2

- name: Remove the /@ subvolume and recursively delete child subvolumes as required
  community.general.btrfs_subvolume:
    name: /@snapshots/@2022_06_09
    snapshot_source: /@
    recursive: True
    filesystem_device: /dev/vda2

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

filesystem

字典

目标 btrfs 文件系统的最终状态摘要。

返回: 成功

default_subvolume

整数

文件系统默认子卷的 ID。

返回:成功,且文件系统已挂载

示例: 5

devices

列表 / 元素=字符串

分配给文件系统的设备列表。

返回: 成功

示例: ["/dev/sda1", "/dev/sdb1"]

label

字符串

分配给文件系统的可选标签。

返回: 成功

示例: "Tank"

subvolumes

列表 / 元素=字典

包含文件系统所有子卷元数据的字典列表。

返回:成功,且文件系统已挂载

id

整数

分配给子卷的标识符,在包含的文件系统中唯一。

返回: 成功

示例: 256

mountpoints

列表 / 元素=字符串

子卷在目标主机上挂载的路径。

返回: 成功

示例: ["/home"]

parent

整数

此子卷父级的标识符。

返回: 成功

示例: 5

路径

字符串

相对于 btrfs 文件系统根目录的子卷的完整路径。

返回: 成功

示例: "/@home"

uuid

字符串

分配给文件系统的唯一标识符。

返回: 成功

示例: "96c9c605-1454-49b8-a63a-15e2584c208e"

modifications

列表 / 元素=字符串

列表,每个元素描述对目标 btrfs 文件系统进行的更改。

返回: 成功

target_subvolume_id

整数

使用 name 参数指定的子卷的 ID,该子卷要么预先存在,要么在模块执行期间创建。

返回:成功,且模块执行后子卷存在

示例: 257

作者

  • Gregory Furlong (@gnfzdz)