community.zabbix.zabbix_script 模块 – 创建/更新/删除 Zabbix 脚本

注意

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

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

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

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

community.zabbix 1.7.0 中的新增功能

概要

  • 此模块允许您创建、更新和删除脚本。

要求

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

  • python >= 3.9

参数

参数

注释

authtype

字符串

用于 SSH 脚本类型的身份验证方法。

如果类型为 ssh,则使用此项。

选择

  • "password"

  • "public_key"

command

字符串

要运行的命令。当状态为“present”时,此项为必填项。

confirmation

字符串

确认弹出文本。尝试从 Zabbix 前端运行脚本时,将出现弹出窗口。

如果范围为 manual_host_actionmanual_event_action,则使用此项。

description

字符串

脚本的描述。

execute_on

字符串

在何处运行脚本。

如果类型为 script,则使用此项。

选择

  • "zabbix_agent"

  • "zabbix_server"

  • "zabbix_server_proxy" ←(默认)

host_access

字符串

运行脚本所需的主机权限。

如果范围为 manual_host_actionmanual_event_action,则使用此项。

选择

  • "read" ←(默认)

  • "write"

host_group

字符串

可以运行脚本的主机组名称。如果设置为“all”,则该脚本将在所有主机组上可用。

默认值: "all"

http_login_password

字符串

基本身份验证密码

http_login_user

字符串

基本身份验证登录名

menu_path

字符串

当单击主机或事件时,由斜杠分隔的文件夹在前端形成一个类似菜单的导航。

如果范围为 manual_host_actionmanual_event_action,则使用此项。

name

字符串 / 必需

脚本的名称。

parameters

列表 / 元素=字典

Webhook 输入参数的数组。

如果类型为 webhook,则使用此项。

name

字符串

参数名称。当为“webhook”脚本指定“parameters”时,此项为必填项。

value

字符串

参数值。支持宏。

默认值: ""

password

字符串

用于使用密码身份验证的 SSH 脚本和 Telnet 脚本的密码。

如果类型为 ssh 且 authtype 为 password 或类型为 telnet,则使用此项。

port

字符串

用于 SSH 和 Telnet 脚本的端口号。

如果类型为 sshtelnet,则使用此项。

privatekey

字符串

用于使用公钥身份验证的 SSH 脚本的私钥文件名。

如果类型为 ssh 且 authtype 为 public_key,则使用此项。

publickey

字符串

用于使用公钥身份验证的 SSH 脚本的公钥文件名。

如果类型为 ssh 且 authtype 为 public_key,则使用此项。

scope

字符串

脚本范围。

选择

  • "action_operation" ←(默认)

  • "manual_host_action"

  • "manual_event_action"

script_timeout

字符串

Webhook 脚本执行超时(以秒为单位)。支持时间后缀,例如 30s、1m。

如果类型为 webhook,则此项为必填项。

可能的值:1-60 秒。

默认值: "30s"

script_type

字符串

脚本类型。当状态为“present”时,此项为必填项。

选择

  • "script"

  • "ipmi"

  • "ssh"

  • "telnet"

  • "webhook"

state

字符串

脚本的状态。

选择

  • "present" ←(默认)

  • "absent"

user_group

字符串

允许运行脚本的用户组名称。如果设置为“all”,则该脚本将对所有用户组可用。

如果范围为 manual_host_actionmanual_event_action,则使用此项。

默认值: "all"

username

字符串

用于身份验证的用户名。

如果类型为 sshtelnet,则使用此项

示例

# 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: test - Create new action operation script to execute webhook
  # 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_script:
    name: Test action operation script
    scope: action_operation
    script_type: webhook
    command: "return 0"
    description: "Test action operation script"
    state: present

作者

  • Evgeny Yurchenko (@BGmot)