dellemc.unity.nfs 模块 – 管理 Unity 存储系统上的 NFS 导出

注意

此模块是 dellemc.unity 集合 (版本 2.0.0) 的一部分。

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

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

要在 playbook 中使用它,请指定: dellemc.unity.nfs

dellemc.unity 1.1.0 中的新增功能

概要

  • 管理 Unity 存储系统上的 NFS 导出包括:创建新的 NFS 导出、修改 NFS 导出属性、显示 NFS 导出详细信息、删除 NFS 导出。

要求

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

  • Dell Unity 存储设备版本 5.1 或更高版本。

  • Ansible-core 2.14 或更高版本。

  • Python 3.9、3.10 或 3.11。

  • Storops Python SDK 1.2.11。

参数

参数

注释

adv_host_mgmt_enabled

布尔值

如果为 false,则允许您在无需先注册主机的情况下指定主机。

添加访问主机时为必填项。

选项

  • false

  • true

anonymous_gid

整数

指定匿名帐户的组 ID。

如果在创建时未指定,它将设置为 4294967294。

anonymous_uid

整数

指定匿名帐户的用户 ID。

如果在创建时未指定,它将设置为 4294967294。

default_access

字符串

可以访问 NFS 导出的所有主机的默认访问级别。

对于需要与默认值不同的访问权限的主机,可以通过添加到列表中进行配置。

如果创建时未提及 *default_access*,则 NFS 导出将使用 NO_ACCESS 创建。

选项

  • "NO_ACCESS"

  • "READ_ONLY"

  • "READ_WRITE"

  • "ROOT"

  • "READ_ONLY_ROOT"

description

字符串

NFS 导出的描述。

创建 NFS 导出时的可选参数。

要修改描述,请在 *description* 字段中传递新值。

要删除描述,请在 *description* 字段中传递空值。

filesystem_id

字符串

文件系统的 ID。

这是由 Unity 存储系统生成的唯一 ID。

filesystem_name

字符串

将为其创建 NFS 导出的文件系统的名称。

创建 NFS 时需要文件系统或快照。

如果指定了 *filesystem_name*,则需要 *nas_server* 来唯一标识文件系统。

如果提供了 filesystem 参数,则不能指定快照。

host_state

字符串

定义主机是否可以访问 NFS 导出。

在向导出添加或删除主机的访问权限时需要。

选项

  • "present-in-export"

  • "absent-in-export"

min_security

字符串

访问 NFS 导出的用户强制执行的 NFS 安全类型。

如果在创建时未指定,它将设置为 SYS

选项

  • "SYS"

  • "KERBEROS"

  • "KERBEROS_WITH_INTEGRITY"

  • "KERBEROS_WITH_ENCRYPTION"

nas_server_id

字符串

将托管文件系统的 NAS 服务器的 ID。

nas_server_name

字符串

将托管文件系统的 NAS 服务器的名称。

nfs_export_id

字符串

NFS 导出的 ID。

这是由 Unity 存储系统生成的唯一 ID。

nfs_export_name

字符串

NFS 导出的名称。

创建操作时为必填项。

对于任何操作,请指定 *nfs_export_name* 或 *nfs_export_id*(但不能同时指定两者)。

no_access_hosts

列表 / 元素=字典

无权访问 NFS 导出的主机。

字典列表。每个字典都将具有来自 *host_name*、*host_id*、*subnet*、*netgroup*、*domain* 和 *ip_address* 的任何键。

如果 *adv_host_mgmt_enabled* 为 true,则可接受的键为 *host_name*、*host_id* 和 *ip_address*。

如果 *adv_host_mgmt_enabled* 为 false,则可接受的键为 *host_name*、*subnet*、*netgroup*、*domain* 和 *ip_address*。

domain

字符串

DNS 域名,其中域名中的所有 NFS 客户端都包含在主机列表中。

host_id

字符串

主机的 ID。

host_name

字符串

主机的名称。

ip_address

字符串

主机的 IP 地址。

netgroup

字符串

在 NIS 或本地 netgroup 文件中定义的 Netgroup。

subnet

字符串

子网可以是“IP 地址/子网掩码”或“IP 地址/前缀长度”。

password

字符串 / 必填

Unity 管理服务器的密码。

path

字符串

相对于 NAS 服务器根目录的导出本地路径。

使用 NFS 时,每个文件系统或文件快照的导出必须具有唯一的本地路径。

创建 NFS 导出时必须设置。

端口

整数

与 Unity 管理服务器进行通信的端口号。

默认值: 443

read_only_hosts

列表 / 元素=字典

具有 NFS 导出只读访问权限的主机。

字典列表。每个字典都将具有来自 *host_name*、*host_id*、*subnet*、*netgroup*、*domain* 和 *ip_address* 的任何键。

如果 *adv_host_mgmt_enabled* 为 true,则可接受的键为 *host_name*、*host_id* 和 *ip_address*。

如果 *adv_host_mgmt_enabled* 为 false,则可接受的键为 *host_name*、*subnet*、*netgroup*、*domain* 和 *ip_address*。

domain

字符串

DNS 域名,其中域名中的所有 NFS 客户端都包含在主机列表中。

host_id

字符串

主机的 ID。

host_name

字符串

主机的名称。

ip_address

字符串

主机的 IP 地址。

netgroup

字符串

在 NIS 或本地 netgroup 文件中定义的 Netgroup。

subnet

字符串

子网可以是“IP 地址/子网掩码”或“IP 地址/前缀长度”。

read_only_root_hosts

列表 / 元素=字典

具有 root 用户对 NFS 导出只读访问权限的主机。

字典列表。每个字典都将具有来自 *host_name*、*host_id*、*subnet*、*netgroup*、*domain* 和 *ip_address* 的任何键。

如果 *adv_host_mgmt_enabled* 为 true,则可接受的键为 *host_name*、*host_id* 和 *ip_address*。

如果 *adv_host_mgmt_enabled* 为 false,则可接受的键为 *host_name*、*subnet*、*netgroup*、*domain* 和 *ip_address*。

domain

字符串

DNS 域名,其中域名中的所有 NFS 客户端都包含在主机列表中。

host_id

字符串

主机的 ID。

host_name

字符串

主机的名称。

ip_address

字符串

主机的 IP 地址。

netgroup

字符串

在 NIS 或本地 netgroup 文件中定义的 Netgroup。

subnet

字符串

子网可以是“IP 地址/子网掩码”或“IP 地址/前缀长度”。

read_write_hosts

列表 / 元素=字典

具有 NFS 导出读写访问权限的主机。

字典列表。每个字典都将具有来自 *host_name*、*host_id*、*subnet*、*netgroup*、*domain* 和 *ip_address* 的任何键。

如果 *adv_host_mgmt_enabled* 为 true,则可接受的键为 *host_name*、*host_id* 和 *ip_address*。

如果 *adv_host_mgmt_enabled* 为 false,则可接受的键为 *host_name*、*subnet*、*netgroup*、*domain* 和 *ip_address*。

domain

字符串

DNS 域名,其中域名中的所有 NFS 客户端都包含在主机列表中。

host_id

字符串

主机的 ID。

host_name

字符串

主机的名称。

ip_address

字符串

主机的 IP 地址。

netgroup

字符串

在 NIS 或本地 netgroup 文件中定义的 Netgroup。

subnet

字符串

子网可以是“IP 地址/子网掩码”或“IP 地址/前缀长度”。

read_write_root_hosts

列表 / 元素=字典

具有 root 用户对 NFS 导出读写访问权限的主机。

字典列表。每个字典都将具有来自 *host_name*、*host_id*、*subnet*、*netgroup*、*domain* 和 *ip_address* 的任何键。

如果 *adv_host_mgmt_enabled* 为 true,则可接受的键为 *host_name*、*host_id* 和 *ip_address*。

如果 *adv_host_mgmt_enabled* 为 false,则可接受的键为 *host_name*、*subnet*、*netgroup*、*domain* 和 *ip_address*。

domain

字符串

DNS 域名,其中域名中的所有 NFS 客户端都包含在主机列表中。

host_id

字符串

主机的 ID。

host_name

字符串

主机的名称。

ip_address

字符串

主机的 IP 地址。

netgroup

字符串

在 NIS 或本地 netgroup 文件中定义的 Netgroup。

subnet

字符串

子网可以是“IP 地址/子网掩码”或“IP 地址/前缀长度”。

snapshot_id

字符串

快照的 ID。

这是由 Unity 存储系统生成的唯一 ID。

snapshot_name

字符串

将为其创建 NFS 导出的快照名称。

创建 NFS 导出需要文件系统或快照。

如果提供 snapshot 参数,则不能指定 filesystem。

state

字符串 / 必填

状态变量,用于确定 NFS 导出是否存在。

选项

  • "absent"

  • "present"

unispherehost

字符串 / 必填

Unity 管理服务器的 IP 地址或 FQDN。

username

字符串 / 必填

Unity 管理服务器的用户名。

validate_certs

别名:verifycert

布尔值

布尔变量,用于指定是否验证 SSL 证书。

true - 表示应验证 SSL 证书。

false - 表示不应验证 SSL 证书。

选项

  • false

  • true ← (默认)

注释

注意

  • 不支持check_mode

  • 此集合中名为“dellemc.unity”的模块旨在支持 Dell Unity 存储平台。

示例

- name: Create nfs export from filesystem
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    path: '/'
    filesystem_id: "fs_377"
    state: "present"

- name: Create nfs export from snapshot
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_snap"
    path: '/'
    snapshot_name: "ansible_fs_snap"
    state: "present"

- name: Modify nfs export
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    nas_server_id: "nas_3"
    description: ""
    default_access: "READ_ONLY_ROOT"
    anonymous_gid: 4294967290
    anonymous_uid: 4294967290
    state: "present"

- name: Add host in nfs export with adv_host_mgmt_enabled as true
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    filesystem_id: "fs_377"
    adv_host_mgmt_enabled: true
    no_access_hosts:
      - host_id: "Host_1"
    read_only_hosts:
      - host_id: "Host_2"
    read_only_root_hosts:
      - host_name: "host_name1"
    read_write_hosts:
      - host_name: "host_name2"
    read_write_root_hosts:
      - ip_address: "1.1.1.1"
    host_state: "present-in-export"
    state: "present"

- name: Remove host in nfs export with adv_host_mgmt_enabled as true
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    filesystem_id: "fs_377"
    adv_host_mgmt_enabled: true
    no_access_hosts:
      - host_id: "Host_1"
    read_only_hosts:
      - host_id: "Host_2"
    read_only_root_hosts:
      - host_name: "host_name1"
    read_write_hosts:
      - host_name: "host_name2"
    read_write_root_hosts:
      - ip_address: "1.1.1.1"
    host_state: "absent-in-export"
    state: "present"

- name: Add host in nfs export with adv_host_mgmt_enabled as false
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    filesystem_id: "fs_377"
    adv_host_mgmt_enabled: false
    no_access_hosts:
      - domain: "google.com"
    read_only_hosts:
      - netgroup: "netgroup_admin"
    read_only_root_hosts:
      - host_name: "host5"
    read_write_hosts:
      - subnet: "168.159.57.4/255.255.255.0"
    read_write_root_hosts:
      - ip_address: "10.255.2.4"
    host_state: "present-in-export"
    state: "present"

- name: Remove host in nfs export with adv_host_mgmt_enabled as false
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_from_fs"
    filesystem_id: "fs_377"
    adv_host_mgmt_enabled: false
    no_access_hosts:
      - domain: "google.com"
    read_only_hosts:
      - netgroup: "netgroup_admin"
    read_only_root_hosts:
      - host_name: "host5"
    read_write_hosts:
      - subnet: "168.159.57.4/255.255.255.0"
    read_write_root_hosts:
      - ip_address: "10.255.2.4"
    host_state: "absent-in-export"
    state: "present"

- name: Get nfs details
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_id: "NFSShare_291"
    state: "present"

- name: Delete nfs export by nfs name
  dellemc.unity.nfs:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    nfs_export_name: "ansible_nfs_name"
    nas_server_name: "ansible_nas_name"
    state: "absent"

返回值

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

描述

changed

布尔值

资源是否已更改。

返回值:始终

示例: false

nfs_share_details

字典

NFS 导出的详细信息。

返回值:NFS 导出存在时。

示例: {"anonymous_gid": 4294967294, "anonymous_uid": 4294967294, "creation_time": "2022-03-09 15:05:34.720000+00:00", "default_access": "NFSShareDefaultAccessEnum.NO_ACCESS", "description": "", "existed": true, "export_option": 1, "export_paths": ["**.***.**.**:/dummy-share-123"], "filesystem": {"UnityFileSystem": {"id": "fs_id_1", "name": "fs_name_1"}}, "host_accesses": "None", "id": "NFSShare_14393", "is_read_only": "None", "min_security": "NFSShareSecurityEnum.SYS", "modification_time": "2022-04-25 08:12:28.179000+00:00", "name": "dummy-share-123", "nas_server": {"UnityNasServer": {"id": "nas_id_1", "name": "dummy_nas_server"}}, "nfs_owner_username": "None", "no_access_hosts": "None", "no_access_hosts_string": "host1,**.***.*.*", "path": "/", "read_only_hosts": "None", "read_only_hosts_string": "", "read_only_root_access_hosts": "None", "read_only_root_hosts_string": "", "read_write_hosts": "None", "read_write_hosts_string": "", "read_write_root_hosts_string": "", "role": "NFSShareRoleEnum.PRODUCTION", "root_access_hosts": "None", "snap": "None", "type": "NFSTypeEnum.NFS_SHARE"}

anonymous_gid

整数

匿名帐户的组 ID

返回值:成功

anonymous_uid

整数

匿名帐户的用户 ID

返回值:成功

default_access

字符串

可以访问导出的所有主机的默认访问级别

返回值:成功

description

字符串

关于 NFS 导出的描述

返回值:成功

export_paths

列表 / 元素=字符串

可用于挂载和访问导出的导出路径

返回值:成功

filesystem

字典

存在 NFS 导出的文件系统的详细信息

返回值:成功

UnityFileSystem

字典

文件系统详细信息

返回值:成功

id

字符串

文件系统的 ID

返回值:成功

name

字符串

文件系统的名称

返回值:成功

id

字符串

NFS 导出的 ID

返回值:成功

min_security

字符串

访问导出的用户强制执行的 NFS 安全类型

返回值:成功

name

字符串

NFS 导出的名称

返回值:成功

nas_server

字典

NAS 服务器的详细信息

返回值:成功

UnityNasServer

字典

NAS 服务器详细信息

返回值:成功

id

字符串

NAS 服务器的 ID

返回值:成功

name

字符串

NAS 服务器的名称

返回值:成功

no_access_hosts_string

字符串

无权访问 NFS 导出的主机

返回值:成功

read_only_hosts_string

字符串

具有 NFS 导出只读访问权限的主机

返回值:成功

read_only_root_hosts_string

字符串

具有 root 用户对 NFS 导出只读访问权限的主机

返回值:成功

read_write_hosts_string

字符串

具有 NFS 导出读写访问权限的主机

返回值:成功

read_write_root_hosts_string

字符串

具有 root 用户对导出读写访问权限的主机

返回值:成功

type

字符串

NFS 导出类型,即文件系统或快照

返回值:成功

作者

  • Vivek Soni (@v-soni11)