community.network.netscaler_nitro_request 模块 – 向 Netscaler 实例发出 Nitro API 请求。

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.network

要在 playbook 中使用它,请指定:community.network.netscaler_nitro_request

注意

community.network 集合已被弃用,并将从 Ansible 12 中删除。有关更多信息,请参阅讨论帖

已弃用

在以下版本中移除:

版本 6.0.0

原因:

此集合及其中的所有内容均未维护且已弃用。

替代方案:

未知。

概要

  • 向 Netscaler 实例发出 Nitro API 请求。

  • 此模块旨在作为使用 uri Ansible 模块直接发出原始 HTTP 请求的简写。

  • 它提供了一致的返回值,并且除了基本的 Ansible 运行时环境外,没有其他依赖项。

  • 此模块旨在在 Ansible 控制节点或可以访问实际 Netscaler 实例的堡垒机(跳转服务器)上运行

别名:network.netscaler.netscaler_nitro_request

参数

参数

注释

action

字符串

operation 值设置为 action 时要执行的操作。

此参数的一些常见值是 enabledisablerename

args

字符串

一个字典,用于定义选择要操作的 Nitro 对象的关键参数。

以下 operation 值需要它:get_by_args'delete_by_args'

attributes

字符串

我们正在操作的 Nitro 对象的属性。

以下 operation 值需要它:addupdateaction

expected_nitro_errorcode

字符串

表示操作成功的数值列表。

默认值: [0]

filter

字符串

一个字典,用于定义筛选器,以便使用 get_filtered operation 优化返回的 Nitro 对象。

instance_id

字符串

通过 MAS 代理发出 Nitro 请求时,目标 Netscaler 实例的 ID。

instance_ip

字符串

通过 MAS 代理发出 Nitro 请求时,目标 Netscaler 实例的 IP 地址。

instance_name

字符串

通过 MAS 代理发出 Nitro 请求时,目标 Netscaler 实例的名称。

name

字符串

我们正在操作的资源的名称。

以下 operation 值需要它:updategetdelete

nitro_auth_token

字符串

mas_login 操作提供的身份验证令牌。 通过 MAS 代理发出 Nitro API 调用时需要它。

nitro_pass

字符串 / 必需

用于对 Netscaler 节点进行身份验证的密码。

nitro_protocol

字符串

访问 Nitro API 对象时要使用的协议。

选项

  • "http" ← (默认)

  • "https"

nitro_user

字符串 / 必需

用于对 Netscaler 节点进行身份验证的用户名。

nsip

字符串

将发出 Nitro API 调用的 Netscaler 或 MAS 实例的 IP 地址。

可以使用冒号 : 指定端口。 例如 192.168.1.1:555

operation

字符串

定义我们要执行的 Nitro 操作。

选项

  • "add"(添加)

  • "update"(更新)

  • "get"(获取)

  • "get_by_args"(按参数获取)

  • "get_filtered"(获取过滤后的)

  • "get_all"(获取全部)

  • "delete"(删除)

  • "delete_by_args"(按参数删除)

  • "count"(计数)

  • "mas_login"(MAS 登录)

  • "save_config"(保存配置)

  • "action"(操作)

resource(资源)

字符串

我们正在操作的资源类型。

除了 mas_loginsave_config 之外,所有 operation 值都需要此项。

validate_certs

boolean(布尔值)

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

选项

  • false(假)

  • true ← (默认)

示例

- name: Add a server
  delegate_to: localhost
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: add
    resource: server
    name: test-server-1
    attributes:
      name: test-server-1
      ipaddress: 192.168.1.1

- name: Update server
  delegate_to: localhost
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: update
    resource: server
    name: test-server-1
    attributes:
      name: test-server-1
      ipaddress: 192.168.1.2

- name: Get server
  delegate_to: localhost
  register: result
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: get
    resource: server
    name: test-server-1

- name: Delete server
  delegate_to: localhost
  register: result
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: delete
    resource: server
    name: test-server-1

- name: Rename server
  delegate_to: localhost
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: action
    action: rename
    resource: server
    attributes:
      name: test-server-1
      newname: test-server-2

- name: Get server by args
  delegate_to: localhost
  register: result
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: get_by_args
    resource: server
    args:
      name: test-server-1

- name: Get server by filter
  delegate_to: localhost
  register: result
  community.network.netscaler_nitro_request:
    nsip: "{{ nsip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: get_filtered
    resource: server
    filter:
      ipaddress: 192.168.1.2

# Doing a NITRO request through MAS.
# Requires to have an authentication token from the mas_login and used as the nitro_auth_token parameter
# Also nsip is the MAS address and the target Netscaler IP must be defined with instance_ip
# The rest of the task arguments remain the same as when issuing the NITRO request directly to a Netscaler instance.

- name: Do mas login
  delegate_to: localhost
  register: login_result
  community.network.netscaler_nitro_request:
    nsip: "{{ mas_ip }}"
    nitro_user: "{{ nitro_user }}"
    nitro_pass: "{{ nitro_pass }}"
    operation: mas_login

- name: Add resource through MAS proxy
  delegate_to: localhost
  community.network.netscaler_nitro_request:
    nsip: "{{ mas_ip }}"
    nitro_auth_token: "{{ login_result.nitro_auth_token }}"
    instance_ip: "{{ nsip }}"
    operation: add
    resource: server
    name: test-server-1
    attributes:
      name: test-server-1
      ipaddress: 192.168.1.7

返回值

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

描述

http_response_body

字符串

一个包含实际 HTTP 响应正文内容的字符串(如果存在)。如果没有 HTTP 响应正文,则为空字符串。

返回: 总是

示例: "{ errorcode: 0, message: Done, severity: NONE }"

http_response_data

dictionary(字典)

一个包含所有 HTTP 响应数据的字典。

返回: 总是

示例: "status: 200"

nitro_auth_token

字符串

成功时由 mas_login 操作返回的令牌。

返回: 在适用时

示例: "##E8D7D74DDBD907EE579E8BB8FF4529655F22227C1C82A34BFC93C9539D66"

nitro_errorcode

integer(整数)

一个数值,包含 NITRO 操作的返回码。当为 0 时,操作成功。任何非零值都表示错误。

返回: 总是

示例: 0

nitro_message

字符串

一个字符串,包含对 NITRO 操作结果的人工可读的解释。

返回: 总是

示例: "Success"

nitro_object

list(列表) / elements=string(元素=字符串)

从 NITRO 操作返回的对象。这适用于返回对象的各种获取操作。

返回: 在适用时

示例: [{"ipaddress": "192.168.1.8", "ipv6address": "NO", "maxbandwidth": "0", "name": "test-server-1", "port": 0, "sp": "OFF", "state": "ENABLED"}]

nitro_severity

字符串

一个描述 NITRO 操作错误严重程度的字符串或 NONE。

返回: 总是

示例: "NONE"

状态

  • 此模块将在 6.0.0 版本中删除。 [已弃用]

  • 有关详细信息,请参阅 已弃用

作者

  • George Nikolopoulos (@giorgos-nikolopoulos)