netapp.ontap.na_ontap_user 模块 – NetApp ONTAP 用户配置和管理

注意

此模块是 netapp.ontap 集合(版本 22.13.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install netapp.ontap。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:netapp.ontap.na_ontap_user

netapp.ontap 2.6.0 中的新增功能

概要

  • 创建或销毁用户。

要求

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

  • Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。

  • Python3 - 建议使用 3.9 或更高版本。

  • 使用 ZAPI 时,netapp-lib 2018.11.13 或更高版本(使用“pip install netapp-lib”安装),强烈建议使用 netapp-lib 2020.3.12,因为它为连接问题提供了更好的错误报告。

  • 物理或虚拟集群 Data ONTAP 系统,该模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。

参数

参数

注释

application_dicts

列表 / 元素=字典

在 netapp.ontap 21.6.0 中添加

要授予访问权限的应用程序列表。提供对应用程序和身份验证方法的更好控制。

不支持为数据 Vserver 创建具有应用程序控制台、telnet、rsh 和服务处理器的登录。

该模块支持 service-processor 和 service_processor 选项。

ZAPI 需要 service-processor,而 REST 需要 service_processor,但 ONTAP 9.6 和 9.7 存在问题。

REST 中不支持 snmp。

需要 application_dictsapplication_strs 中的一个。

application

字符串 / 必需

应用程序的名称。

选项

  • "console"

  • "http"

  • "ontapi"

  • "rsh"

  • "snmp"

  • "service_processor"

  • "service-processor"

  • "sp"

  • "ssh"

  • "telnet"

authentication_methods

列表 / 元素=字符串 / 必需

应用程序的身份验证方法列表(请参阅 authentication_method)。

选项

  • "community"

  • "password"

  • "publickey"

  • "domain"

  • "nsswitch"

  • "usm"

  • "cert"

  • "saml"

second_authentication_method

字符串

当使用 ssh 时,MFA 的可选附加身份验证方法。

选项

  • "none"

  • "password"

  • "publickey"

  • "nsswitch"

application_strs

别名:application、applications

列表 / 元素=字符串

在 netapp.ontap 21.6.0 中添加

要授予访问权限的应用程序列表。

此选项保持与现有 applications 选项的向后兼容性,但受到限制。

建议使用新的 application_dicts 选项,该选项提供更大的灵活性。

不支持为数据 Vserver 创建具有应用程序控制台、telnet、rsh 和服务处理器的登录。

该模块支持 service-processor 和 service_processor 选项。

ZAPI 需要 service-processor,而 REST 需要 service_processor,但 ONTAP 9.6 和 9.7 存在问题。

REST 中不支持 snmp。

需要 application_dictsapplication_strs 中的一个。

选项

  • "console"

  • "http"

  • "ontapi"

  • "rsh"

  • "snmp"

  • "service_processor"

  • "service-processor"

  • "sp"

  • "ssh"

  • "telnet"

authentication_method

字符串

应用程序的身份验证方法。如果您需要多种方法,请使用 application_dicts

并非所有身份验证方法都对应用程序有效。

每个应用程序的有效身份验证方法如authentication_choices_description 中所示。

控制台应用程序的密码

http 应用程序的密码、域、nsswitch、cert、saml。

ontapi 应用程序的密码、域、nsswitch、cert、saml。

SAML 仅支持 REST,但似乎也适用于 ZAPI。

snmp 应用程序的 community(创建 SNMPv1 和 SNMPv2 用户时)。

snmp 应用程序的 usm 和 community(创建 SNMPv3 用户时)。

sp 应用程序的密码。

rsh 应用程序的密码。

telnet 应用程序的密码。

ssh 应用程序的密码、公钥、域、nsswitch。

当存在 application_strs 时,这是必需的。

选项

  • "community"

  • "password"

  • "publickey"

  • "domain"

  • "nsswitch"

  • "usm"

  • "cert"

  • "saml"

authentication_password

字符串

在 netapp.ontap 20.6.0 中添加

身份验证协议的密码。这应该至少 8 个字符长。

这是 ‘md5’、‘sha’ 和 ‘sha2-256’ 身份验证协议所必需的,而 ‘none’ 不需要。

仅适用于 ‘usm’ 身份验证方法且不可修改。

authentication_protocol

字符串

在 netapp.ontap 20.6.0 中添加

snmp 用户的身份验证协议。

当集群 FIPS 模式开启时,‘sha’ 和 ‘sha2-256’ 是唯一可能的有效值。

当集群 FIPS 模式关闭时,默认值为 ‘none’。

当集群 FIPS 模式开启时,默认值为 ‘sha’。

仅适用于 ‘usm’ 身份验证方法且不可修改。

选项

  • "none"

  • "md5"

  • "sha"

  • "sha2-256"

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端证书文件 (.pem) 的路径。

不支持 python 2.6。

engine_id

字符串

在 netapp.ontap 20.6.0 中添加

SNMPv3 用户的权威实体的 EngineID。

这应该指定为十六进制字符串。

第一个八位字节中第一位设置为 1 的 Engine ID 应具有最少 5 个或最多 32 个八位字节。

第一个八位字节中第一位设置为 0 的 Engine Id 应为 12 个八位字节长。

Engine Id 的地址不能全部为零。

仅适用于 ‘usm’ 身份验证方法且不可修改。

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

这可以用于启用实验性功能或禁用破坏向后兼容性的新功能。

支持的键和值可能会在不另行通知的情况下更改。未知键将被忽略。

force_ontap_version

字符串

在 netapp.ontap 21.23.0 中添加

使用 REST 时覆盖集群 ONTAP 版本。

如果版本与目标集群不匹配,则行为是未定义的。

当由于权限问题无法读取集群版本时,提供此作为解决方法。请参阅 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues

这应采用 9.10 或 9.10.1 的形式,其中每个元素都是整数。

use_rest 设置为 auto 时,这可能会根据版本和平台功能强制切换到 ZAPI。

使用 ZAPI 时将被忽略。

hostname

字符串 / 必需

ONTAP 实例的主机名或 IP 地址。

http_port

整数

使用此端口覆盖默认端口(80 或 443)

https

布尔值

启用和禁用 https。

当使用 REST 时将被忽略,因为仅支持 https。

当使用 SSL 证书身份验证时将被忽略,因为它需要 SSL。

选项

  • false ←(默认)

  • true

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端密钥文件的路径。

lock_user

布尔值

指定的用户帐户是否被锁定。

选项

  • false

  • true

name

字符串 / 必需

要管理的用户名称。

ontapi

整数

要使用的 ontap API 版本

password

别名: pass

字符串

指定用户的密码。

privacy_password

字符串

在 netapp.ontap 20.6.0 中添加

隐私协议的密码。长度应至少为 8 个字符。

“des” 和 “aes128” 隐私协议需要此密码,而 “none” 不需要。

仅适用于 ‘usm’ 身份验证方法且不可修改。

privacy_protocol

字符串

在 netapp.ontap 20.6.0 中添加

snmp 用户的隐私协议。

当集群 FIPS 模式开启时,“aes128” 是唯一可能且有效的值。

当集群 FIPS 模式关闭时,默认值为 “none”。当集群 FIPS 模式开启时,默认值为 “aes128”。

仅适用于 ‘usm’ 身份验证方法且不可修改。

选项

  • "none"

  • "des"

  • "aes128"

remote_switch_ipaddress

字符串

在 netapp.ontap 20.6.0 中添加

此选项可指定远程交换机的 IP 地址。

远程交换机可以是集群交换机(由集群交换机健康监视器 (CSHM) 监视),也可以是光纤通道 (FC) 交换机(由 Metro 集群健康监视器 (MCC-HM) 监视)。

此选项仅适用于远程 SNMPv3 用户,即仅当用户为远程(非本地)用户、应用程序为 snmp 且身份验证方法为 usm 时才适用。

replace_existing_apps_and_methods

字符串

在 netapp.ontap 20.6.0 中添加

如果用户已存在,当 state=present 时,当前应用程序和身份验证方法将被替换。

如果用户已存在,当 state=absent 时,当前应用程序和身份验证方法将被删除。

当使用 application_dicts 或 REST 时,这是唯一支持的行为。

当使用 application_strs 和 ZAPI 时,当此选项设置为 always 时,此为行为。

当使用 application_strs 和 ZAPI 时,如果此选项设置为 auto,则未列出的应用程序不会被删除。

当使用 application_strs 和 ZAPI 时,如果此选项设置为 auto,则未列出的身份验证方法不会被删除。

auto 保留现有行为以实现向后兼容,但请注意 REST 和 ZAPI 的行为不一致。

这是建议使用 application_dicts 的另一个原因。

选项

  • "always"

  • "auto" ←(默认)

role_name

字符串

角色的名称。当 state=present 时是必需的

set_password

字符串

用户帐户的密码。

创建 snmp 用户时将被忽略,但创建非 snmp 用户时是必需的。

对于现有用户,此值将用作新密码。

state

字符串

指定的用户应该存在还是不应该存在。

选项

  • "present" ←(默认)

  • "absent"

use_rest

字符串

是否使用 REST 或 ZAPI。

always – 如果模块支持 REST,则始终使用 REST API。如果模块不支持 REST,则会发出警告。如果 REST 不支持模块选项,则会发出错误。

never – 如果模块支持 ZAPI,则始终使用 ZAPI。如果 ZAPI 不支持 REST 选项,则可能会发出错误。

auto – 如果模块支持 REST 且支持模块选项,则会尝试使用 REST API。否则会恢复为 ZAPI。

默认: "auto"

username

别名: user

字符串

这可以是集群范围或 SVM 范围的帐户,具体取决于需要集群级 API 还是 SVM 级 API。

有关详细信息,请阅读文档 https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/

支持两种身份验证方法

  1. 基本身份验证,使用用户名和密码,

  2. SSL 证书身份验证,使用 SSL 客户端证书文件,以及可选的私钥文件。

要使用证书,必须已在 ONTAP 集群中安装证书,并且必须启用证书身份验证。

validate_certs

布尔值

如果设置为 no,则不会验证 SSL 证书。

此选项仅应在个人控制的站点上使用自签名证书时设置为 False

选项

  • false

  • true ←(默认)

vserver

别名: svm

字符串

要使用的 vserver 的名称。

ZAPI 是必需的。

使用 REST 时,忽略此选项以创建集群范围的接口。

说明

注意

  • 以 na_ontap 为前缀的模块旨在支持 ONTAP 存储平台。

  • 默认启用并建议使用 https。要在集群上启用 http,必须运行以下命令“set -privilege advanced;”“system services web modify -http-enabled true;”

示例

- name: Create User
  netapp.ontap.na_ontap_user:
    state: present
    name: SampleUser
    applications: ssh,console
    authentication_method: password
    set_password: apn1242183u1298u41
    lock_user: True
    role_name: vsadmin
    vserver: ansibleVServer
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create cluster scoped user in REST.
  netapp.ontap.na_ontap_user:
    state: present
    name: SampleUser
    applications: ssh,console
    authentication_method: password
    set_password: apn1242183u1298u41
    lock_user: True
    role_name: admin
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Delete User
  netapp.ontap.na_ontap_user:
    state: absent
    name: SampleUser
    applications: ssh
    authentication_method: password
    vserver: ansibleVServer
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create user with snmp application (ZAPI)
  netapp.ontap.na_ontap_user:
    state: present
    name: test_cert_snmp
    applications: snmp
    authentication_method: usm
    role_name: admin
    authentication_protocol: md5
    authentication_password: '12345678'
    privacy_protocol: 'aes128'
    privacy_password: '12345678'
    engine_id: '7063514941000000000000'
    remote_switch_ipaddress: 10.0.0.0
    vserver: "{{ vserver }}"
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Create user
  netapp.ontap.na_ontap_user:
    state: present
    name: test123
    application_dicts:
      - application: http
        authentication_methods: password
      - application: ssh
        authentication_methods: password,publickey
    role_name: vsadmin
    set_password: bobdole1234566
    vserver: "{{ vserver }}"
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"

作者

  • NetApp Ansible 团队 (@carchi8py)