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

要在剧本中使用它,请指定: 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"

  • "save_config"

  • "action"

resource

字符串

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

mas_loginsave_config之外,所有操作值都需要。

validate_certs

布尔值

如果为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

字典

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

返回:始终

示例: "status: 200"

nitro_auth_token

字符串

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

返回:适用时

示例: "##E8D7D74DDBD907EE579E8BB8FF4529655F22227C1C82A34BFC93C9539D66"

nitro_errorcode

整数

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

返回:始终

示例: 0

nitro_message

字符串

包含NITRO操作结果的人类可读解释的字符串。

返回:始终

示例: "Success"

nitro_object

列表 / 元素=字符串

从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)