community.zabbix.zabbix_user 模块 – 创建/更新/删除 Zabbix 用户

注意

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

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

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

要在 playbook 中使用它,请指定:community.zabbix.zabbix_user

概要

  • 此模块允许您创建、修改和删除 Zabbix 用户。

要求

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

  • python >= 3.9

参数

参数

注释

after_login_url

字符串

用户登录后要重定向到的页面 URL。

autologin

布尔值

是否启用自动登录。

如果启用自动登录,则无法启用自动注销。

选项

  • false

  • true

autologout

字符串

用户会话生命周期(以秒为单位)。如果设置为 0,则会话将永不过期。

如果启用自动注销,则无法启用自动登录。

current_passwd

字符串

覆盖用户密码时用户的当前密码。

当覆盖已登录用户的密码时是必需的。

https://www.zabbix.com/documentation/6.4/en/manual/api/reference/user/update

http_login_password

字符串

基本身份验证密码

http_login_user

字符串

基本身份验证登录名

lang

字符串

用户语言的语言代码。

选项

  • "en_GB"

  • "en_US"

  • "zh_CN"

  • "cs_CZ"

  • "fr_FR"

  • "he_IL"

  • "it_IT"

  • "ko_KR"

  • "ja_JP"

  • "nb_NO"

  • "pl_PL"

  • "pt_BR"

  • "pt_PT"

  • "ru_RU"

  • "sk_SK"

  • "tr_TR"

  • "uk_UA"

  • "default"

name

字符串

用户名。

override_passwd

布尔值

覆盖用户的密码。

如果不将此值设置为 yes,则密码不会在后续运行中更新。

选项

  • false ← (默认)

  • true

passwd

字符串

用户密码。

除非所有 usrgrps 都设置为使用 LDAP 作为前端访问,否则是必需的。

refresh

字符串

自动刷新周期(以秒为单位)。

role_name

字符串

在 community.zabbix 1.2.0 中添加

用户的角色。

创建新用户时,默认值为 用户 角色

默认值将在版本 2.0.0 中删除。

rows_per_page

字符串

每页显示的对象行数。

state

字符串

用户的状态。

present 时,如果用户不存在,则创建用户;如果关联数据不同,则更新用户。

absent 时,如果用户存在,则删除用户。

选项

  • "present" ← (默认)

  • "absent"

surname

字符串

用户的姓氏。

theme

字符串

用户的主题。

选项

  • "default"

  • "blue-theme"

  • "dark-theme"

timezone

字符串

在 community.zabbix 1.2.0 中添加

用户的时区。

有关支持的时区的完整列表,请参阅 https://php.net/manual/en/timezones.php

user_medias

列表 / 元素=字典

设置用户的媒体。

如果未设置,则不对媒体进行任何更改。

active

布尔值

是否启用媒体。

选项

  • false

  • true ← (默认)

mediatype

字符串

要设置的媒体类型名称。

默认: "Email"

period

字符串

通知可以作为时间段或用户宏发送的时间,以分号分隔。

请查看文档以获取有关支持的时间段的更多信息。

https://www.zabbix.com/documentation/current/en/manual/appendix/time_period

默认: "1-7,00:00-24:00"

sendto

任意 / 必需

收件人的地址、用户名或其他标识符。

如果 mediatype 为 Email,则值表示为数组。对于其他类型的媒体类型,值表示为字符串。

severity

字典

要发送通知的触发器严重性。

默认: {"average": true, "disaster": true, "high": true, "information": true, "not_classified": true, "warning": true}

average

布尔值

严重性 average 启用/禁用。

选项

  • false

  • true ← (默认)

disaster

布尔值

严重性 disaster 启用/禁用。

选项

  • false

  • true ← (默认)

high

布尔值

严重性 high 启用/禁用。

选项

  • false

  • true ← (默认)

information

布尔值

严重性 information 启用/禁用。

选项

  • false

  • true ← (默认)

not_classified

布尔值

严重性 not_classified 启用/禁用。

选项

  • false

  • true ← (默认)

警告

布尔值

启用/禁用严重性警告。

选项

  • false

  • true ← (默认)

用户名

字符串 / 必需

用户名。

用户名是使用的唯一标识符,不能使用此模块更新。

用户组

列表 / 元素=字符串

要将用户添加到的用户组。

state=present时是必需的。

示例

# If you want to use Username and Password to be authenticated by Zabbix Server
- name: Set credentials to access Zabbix Server API
  ansible.builtin.set_fact:
    ansible_user: Admin
    ansible_httpapi_pass: zabbix

# If you want to use API token to be authenticated by Zabbix Server
# https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/administration/general#api-tokens
- name: Set API token
  ansible.builtin.set_fact:
    ansible_zabbix_auth_key: 8ec0d52432c15c91fcafe9888500cf9a607f44091ab554dbee860f6b44fac895

- name: create a new zabbix user.
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_user:
    username: example
    name: user name
    surname: user surname
    usrgrps:
      - Guests
      - Disabled
    passwd: password
    lang: en_GB
    theme: blue-theme
    autologin: no
    autologout: "0"
    refresh: "30"
    rows_per_page: "200"
    after_login_url: ""
    user_medias:
      - mediatype: Email
        sendto:
          - [email protected]
          - [email protected]
        period: 1-7,00:00-24:00
        severity:
          not_classified: no
          information: yes
          warning: yes
          average: yes
          high: yes
          disaster: yes
        active: no
    state: present

- name: delete existing zabbix user.
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_user:
    username: example
    state: absent

返回值

通用返回值记录在此处,以下是此模块特有的字段

描述

user_ids

字典

创建或更改的用户 ID

返回: 成功

示例: {"userids": ["5"]}

作者

  • sky-joker (@sky-joker)