f5networks.f5_modules.bigip_user 模块 – 在 BIG-IP 上管理用户帐户和用户属性

注意

此模块是 f5networks.f5_modules 集合(版本 1.32.1)的一部分。

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

要安装它,请使用:ansible-galaxy collection install f5networks.f5_modules

要在 playbook 中使用它,请指定:f5networks.f5_modules.bigip_user

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 管理 BIG-IP 系统上的用户帐户和用户属性。通常,此模块仅对 REST API 用户而不是 CLI 用户进行操作。在指定 root 时,您只能更改密码。在这种情况下,您的其他参数将被忽略。更改 root 密码不是幂等操作。因此,每次此模块尝试更改密码时,它都会更改密码。

参数

参数

注释

full_name

字符串

用户的全名。

partition

字符串

要在其上管理资源的设备分区。

默认值: "Common"

partition_access

列表 / 元素=字符串

指定用户有权访问的管理分区。partition_access 在创建新帐户时是必需的,并且应采用“partition:role”的形式。

有效的角色包括 acceleration-policy-editoradminapplication-editorauditorcertificate-managerguestirule-managermanagerno-accessoperatorresource-adminuser-managerweb-application-security-administratorweb-application-security-editor

元组的分区部分应为现有分区或值“all”。

password_credential

字符串

将用户的密码设置为此未加密的值。password_credential 在创建新帐户时是必需的。

provider

字典

在 f5networks.f5_modules 1.0.0 中添加

一个包含连接详细信息的字典对象。

auth_provider

字符串

配置身份验证提供程序以从远程设备获取身份验证令牌。

此选项在处理 BIG-IQ 设备时真正使用。

no_f5_teem

布尔值

如果为 yes,则不会将 TEEM 遥测数据发送到 F5。

您可以通过设置环境变量 F5_TELEMETRY_OFF 来省略此选项。

以前使用的变量 F5_TEEM 已弃用,因为它的名称令人困惑。

选择

  • false ←(默认)

  • true

password

别名:pass, pwd

字符串 / 必需

用于连接到 BIG-IP 或 BIG-IQ 的用户帐户的密码。

您可以通过设置环境变量 F5_PASSWORD 来省略此选项。

server

字符串 / 必需

BIG-IP 主机或 BIG-IQ 主机。

您可以通过设置环境变量 F5_SERVER 来省略此选项。

server_port

整数

BIG-IP 服务器端口。

您可以通过设置环境变量 F5_SERVER_PORT 来省略此选项。

默认值: 443

timeout

整数

指定与网络设备通信(用于连接或发送命令)的超时时间(以秒为单位)。如果在操作完成之前超过超时时间,模块将出错。

transport

字符串

配置在连接到远程设备时要使用的传输连接。

选择

  • "rest" ←(默认)

user

字符串 / 必需

连接到 BIG-IP 或 BIG-IQ 的用户名。此用户必须在设备上具有管理权限。

您可以通过设置环境变量 F5_USER 来省略此选项。

validate_certs

布尔值

如果为 no,则不验证 SSL 证书。仅在个人控制的使用自签名证书的站点上使用此选项。

您可以通过设置环境变量 F5_VALIDATE_CERTS 来省略此选项。

选择

  • false

  • true ← (默认)

shell

字符串

可选设置用户的 shell。

选择

  • "bash"

  • "none"

  • "tmsh"

state

字符串

该账户是否应该存在,如果状态与声明的不同,则采取操作。

选择

  • "present" ← (默认)

  • "absent"

update_password

字符串

always 允许用户更新密码。on_create 仅为新创建的用户设置密码。

username_credentialroot 时,此值强制为 always

选择

  • "always" ← (默认)

  • "on_create"

username_credential

别名: name

字符串 / 必需

要创建、删除或修改的用户名。

不能删除 root 用户。

备注

注意

  • 需要 BIG-IP 版本 >= 12.0.0

  • 有关使用 Ansible 管理 F5 Networks 设备的更多信息,请参阅 https://ansible.org.cn/integrations/networks/f5

  • 需要 BIG-IP 软件版本 >= 12。

  • F5 模块仅操作 F5 产品的运行配置。为了确保 BIG-IP 的特定配置持久保存到磁盘,请务必至少包含一个使用 f5networks.f5_modules.bigip_config 模块保存运行配置的任务。有关正确使用该模块以保存您的运行配置,请参阅该模块的文档。

示例

- name: Add the user 'johnd' as an admin
  bigip_user:
    username_credential: johnd
    password_credential: password
    full_name: John Doe
    partition_access:
      - all:admin
    update_password: on_create
    state: present
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Change the user "johnd's" role and shell
  bigip_user:
    username_credential: johnd
    partition_access:
      - NewPartition:manager
    shell: tmsh
    state: present
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Make the user 'johnd' an admin and set to advanced shell
  bigip_user:
    name: johnd
    partition_access:
      - all:admin
    shell: bash
    state: present
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Remove the user 'johnd'
  bigip_user:
    name: johnd
    state: absent
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Update password
  bigip_user:
    state: present
    username_credential: johnd
    password_credential: newsupersecretpassword
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

# Note that the second time this task runs, it would fail because
# The password has been changed. Therefore, it is recommended that
# you either,
#
#   * Put this in its own playbook that you run when you need to
#   * Put this task in a `block`
#   * Include `ignore_errors` on this task
- name: Change the Admin password
  bigip_user:
    state: present
    username_credential: admin
    password_credential: NewSecretPassword
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Change the root user's password
  bigip_user:
    username_credential: root
    password_credential: secret
    state: present
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

返回值

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

描述

full_name

字符串

用户的全名。

返回: changed 和 success

示例: "John Doe"

partition_access

列表 / 元素=字符串

包含用户角色以及它们所应用的分区的字符串列表。它们以 “partition:role” 的形式指定。

返回: changed 和 success

示例: ["all:admin"]

shell

字符串

分配给用户帐户的 shell。

返回: changed 和 success

示例: "tmsh"

作者

  • Tim Rupp (@caphrim007)

  • Wojciech Wypior (@wojtek0806)