netscaler_nitro_request – Issue Nitro API requests to a Netscaler instance
New in version 2.5.0.
Synopsis
- Issue Nitro API requests to a Netscaler instance.
- This is intended to be a short hand for using the uri Ansible module to issue the raw HTTP requests directly.
- It provides consistent return values and has no other dependencies apart from the base Ansible runtime environment.
- This module is intended to run either on the Ansible control node or a bastion (jumpserver) with access to the actual Netscaler instance
Parameters
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| action - | The action to perform when the operation value is set to action.Some common values for this parameter are enable, disable, rename. | |
| args - | A dictionary which defines the key arguments by which we will select the Nitro object to operate on. It is required for the following operation values: get_by_args, 'delete_by_args'. | |
| attributes - | The attributes of the Nitro object we are operating on. It is required for the following operation values: add, update, action. | |
| expected_nitro_errorcode - / required | Default: [0] | A list of numeric values that signify that the operation was successful. |
| filter - | A dictionary which defines the filter with which to refine the Nitro objects returned by the get_filtered operation. | |
| instance_id - | The id of the target Netscaler instance when issuing a Nitro request through a MAS proxy. | |
| instance_ip - | The IP address of the target Netscaler instance when issuing a Nitro request through a MAS proxy. | |
| instance_name - | The name of the target Netscaler instance when issuing a Nitro request through a MAS proxy. | |
| name - | The name of the resource we are operating on. It is required for the following operation values: update, get, delete. | |
| nitro_auth_token - | The authentication token provided by the mas_login operation. It is required when issuing Nitro API calls through a MAS proxy. | |
| nitro_pass - / required | The password with which to authenticate to the Netscaler node. | |
| nitro_protocol - |
| Which protocol to use when accessing the Nitro API objects. |
| nitro_user - / required | The username with which to authenticate to the Netscaler node. | |
| nsip - | The IP address of the Netscaler or MAS instance where the Nitro API calls will be made. The port can be specified with the colon :. E.g. 192.168.1.1:555. | |
| operation - |
| Define the Nitro operation that we want to perform. |
| resource - | The type of resource we are operating on. It is required for all operation values except mas_login and save_config. | |
| validate_certs boolean |
| If no, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. |
Examples
- name: Add a server
delegate_to: localhost
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
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
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
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
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
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
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
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
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
Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description |
|---|---|---|
| http_response_body string | always | A string with the actual HTTP response body content if existent. If there is no HTTP response body it is an empty string. Sample: { errorcode: 0, message: Done, severity: NONE } |
| http_response_data dictionary | always | A dictionary that contains all the HTTP response's data. Sample: status: 200 |
| nitro_auth_token string | when applicable | The token returned by the mas_login operation when successful.Sample: ##E8D7D74DDBD907EE579E8BB8FF4529655F22227C1C82A34BFC93C9539D66 |
| nitro_errorcode integer | always | A numeric value containing the return code of the NITRO operation. When 0 the operation is successful. Any non zero value indicates an error. |
| nitro_message string | always | A string containing a human readable explanation for the NITRO operation result. Sample: Success |
| nitro_object list | when applicable | The object returned from the NITRO operation. This is applicable to the various get operations which return an object. Sample: [{'ipaddress': '192.168.1.8', 'ipv6address': 'NO', 'maxbandwidth': '0', 'name': 'test-server-1', 'port': 0, 'sp': 'OFF', 'state': 'ENABLED'}] |
| nitro_severity string | always | A string describing the severity of the NITRO operation error or NONE. Sample: NONE |
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- George Nikolopoulos (@giorgos-nikolopoulos)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/netscaler_nitro_request_module.html