community.network.netscaler_servicegroup – Manage service group configuration in Netscaler

Note

This plugin is part of the community.network collection (version 2.1.1).

To install it use: ansible-galaxy collection install community.network.

To use it in a playbook, specify: community.network.netscaler_servicegroup.

Synopsis

  • Manage service group configuration in Netscaler.

  • This module is intended to run either on the ansible control node or a bastion (jumpserver) with access to the actual netscaler instance.

Requirements

The below requirements are needed on the host that executes this module.

  • nitro python sdk

Parameters

Parameter Choices/Defaults Comments
appflowlog
string
    Choices:
  • enabled
  • disabled
Enable logging of AppFlow information for the specified service group.
autoscale
string
    Choices:
  • DISABLED
  • DNS
  • POLICY
Auto scale option for a servicegroup.
cacheable
boolean
    Choices:
  • no
  • yes
Use the transparent cache redirection virtual server to forward the request to the cache server.
Note: Do not set this parameter if you set the Cache Type.
cachetype
string
    Choices:
  • TRANSPARENT
  • REVERSE
  • FORWARD
Cache type supported by the cache server.
cip
string
    Choices:
  • enabled
  • disabled
Insert the Client IP header in requests forwarded to the service.
cipheader
string
Name of the HTTP header whose value must be set to the IP address of the client. Used with the Client IP parameter. If client IP insertion is enabled, and the client IP header is not specified, the value of Client IP Header parameter or the value set by the set ns config command is used as client's IP header name.
Minimum length = 1
cka
boolean
    Choices:
  • no
  • yes
Enable client keep-alive for the service group.
clttimeout
string
Time, in seconds, after which to terminate an idle client connection.
Minimum value = 0
Maximum value = 31536000
cmp
boolean
    Choices:
  • no
  • yes
Enable compression for the specified service.
comment
string
Any information about the service group.
disabled
boolean
    Choices:
  • no ←
  • yes
When set to yes the service group state will be set to DISABLED.
When set to no the service group state will be set to ENABLED.
Note that due to limitations of the underlying NITRO API a disabled state change alone does not cause the module result to report a changed status.
downstateflush
string
    Choices:
  • enabled
  • disabled
Flush all active transactions associated with all the services in the service group whose state transitions from UP to DOWN. Do not enable this option for applications that must complete their transactions.
graceful
boolean
    Choices:
  • no
  • yes
Wait for all existing connections to the service to terminate before shutting down the service.
healthmonitor
boolean
    Choices:
  • no
  • yes
Monitor the health of this service. Available settings function as follows:
yes - Send probes to check the health of the service.
no - Do not send probes to check the health of the service. With the NO option, the appliance shows the service as UP at all times.
httpprofilename
string
Name of the HTTP profile that contains HTTP configuration settings for the service group.
Minimum length = 1
Maximum length = 127
maxbandwidth
string
Maximum bandwidth, in Kbps, allocated for all the services in the service group.
Minimum value = 0
Maximum value = 4294967287
maxclient
string
Maximum number of simultaneous open connections for the service group.
Minimum value = 0
Maximum value = 4294967294
maxreq
string
Maximum number of requests that can be sent on a persistent connection to the service group.
Note: Connection requests beyond this value are rejected.
Minimum value = 0
Maximum value = 65535
memberport
string
member port.
monitorbindings
string
A list of monitornames to bind to this service
Note that the monitors must have already been setup possibly using the community.network.netscaler_lb_monitor module or some other method
monitorname
string
The monitor name to bind to this servicegroup.
weight
string
Weight to assign to the binding between the monitor and servicegroup.
monthreshold
string
Minimum sum of weights of the monitors that are bound to this service. Used to determine whether to mark a service as UP or DOWN.
Minimum value = 0
Maximum value = 65535
netprofile
string
Network profile for the service group.
Minimum length = 1
Maximum length = 127
nitro_pass
string / required
The password with which to authenticate to the netscaler node.
nitro_protocol
string
    Choices:
  • http ←
  • https
Which protocol to use when accessing the nitro API objects.
nitro_timeout
float
Default:
310
Time in seconds until a timeout error is thrown when establishing a new session with Netscaler
nitro_user
string / required
The username with which to authenticate to the netscaler node.
nsip
string / required
The ip address of the netscaler appliance where the nitro API calls will be made.
The port can be specified with the colon (:). E.g. 192.168.1.1:555.
pathmonitor
boolean
    Choices:
  • no
  • yes
Path monitoring for clustering.
pathmonitorindv
boolean
    Choices:
  • no
  • yes
Individual Path monitoring decisions.
rtspsessionidremap
boolean
    Choices:
  • no
  • yes
Enable RTSP session ID mapping for the service group.
save_config
boolean
    Choices:
  • no
  • yes ←
If yes the module will save the configuration on the netscaler node if it makes any changes.
The module will not save the configuration on the netscaler node if it made no changes.
servicegroupname
string
Name of the service group. Must begin with an ASCII alphabetic or underscore _ character, and must contain only ASCII alphanumeric, underscore _, hash #, period ., space , colon :, at @, equals =, and hyphen - characters. Can be changed after the name is created.
Minimum length = 1
servicemembers
string
A list of dictionaries describing each service member of the service group.
customserverid
string
The identifier for this IP:Port pair.
Used when the persistency type is set to Custom Server ID.
hashid
string
The hash identifier for the service.
This must be unique for each service.
This parameter is used by hash based load balancing methods.
Minimum value = 1
ip
string
IP address of the service. Must not overlap with an existing server entity defined by name.
port
string
Server port number.
Range 1 - 65535
* in CLI is represented as 65535 in NITRO API
serverid
string
The identifier for the service.
This is used when the persistency type is set to Custom Server ID.
servername
string
Name of the server to which to bind the service group.
The server must already be configured as a named server.
Minimum length = 1
state
string
    Choices:
  • enabled
  • disabled
Initial state of the service after binding.
weight
string
Weight to assign to the servers in the service group.
Specifies the capacity of the servers relative to the other servers in the load balancing configuration.
The higher the weight, the higher the percentage of requests sent to the service.
Minimum value = 1
Maximum value = 100
servicetype
string
    Choices:
  • HTTP
  • FTP
  • TCP
  • UDP
  • SSL
  • SSL_BRIDGE
  • SSL_TCP
  • DTLS
  • NNTP
  • RPCSVR
  • DNS
  • ADNS
  • SNMP
  • RTSP
  • DHCPRA
  • ANY
  • SIP_UDP
  • SIP_TCP
  • SIP_SSL
  • DNS_TCP
  • ADNS_TCP
  • MYSQL
  • MSSQL
  • ORACLE
  • RADIUS
  • RADIUSListener
  • RDP
  • DIAMETER
  • SSL_DIAMETER
  • TFTP
  • SMPP
  • PPTP
  • GRE
  • SYSLOGTCP
  • SYSLOGUDP
  • FIX
  • SSL_FIX
Protocol used to exchange data with the service.
sp
boolean
    Choices:
  • no
  • yes
Enable surge protection for the service group.
state
string
    Choices:
  • absent
  • present ←
The state of the resource being configured by the module on the netscaler node.
When present the resource will be created if needed and configured according to the module's parameters.
When absent the resource will be deleted from the netscaler node.
svrtimeout
string
Time, in seconds, after which to terminate an idle server connection.
Minimum value = 0
Maximum value = 31536000
tcpb
boolean
    Choices:
  • no
  • yes
Enable TCP buffering for the service group.
tcpprofilename
string
Name of the TCP profile that contains TCP configuration settings for the service group.
Minimum length = 1
Maximum length = 127
useproxyport
boolean
    Choices:
  • no
  • yes
Use the proxy port as the source port when initiating connections with the server. With the NO setting, the client-side connection port is used as the source port for the server-side connection.
Note: This parameter is available only when the Use Source IP usip parameter is set to yes.
usip
boolean
    Choices:
  • no
  • yes
Use client's IP address as the source IP address when initiating connection to the server. With the NO setting, which is the default, a mapped IP (MIP) address or subnet IP (SNIP) address is used as the source IP address to initiate server side connections.
validate_certs
boolean
    Choices:
  • no
  • yes ←
If no, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.

Notes

Note

Examples

# The LB Monitors monitor-1 and monitor-2 must already exist
# Service members defined by C(ip) must not redefine an existing server's ip address.
# Service members defined by C(servername) must already exist.

- name: Setup http service with ip members
  delegate_to: localhost
  community.network.netscaler_servicegroup:
    nsip: 172.18.0.2
    nitro_user: nsroot
    nitro_pass: nsroot

    state: present

    servicegroupname: service-group-1
    servicetype: HTTP
    servicemembers:
      - ip: 10.78.78.78
        port: 80
        weight: 50
      - ip: 10.79.79.79
        port: 80
        weight: 40
      - servername: server-1
        port: 80
        weight: 10

    monitorbindings:
      - monitorname: monitor-1
        weight: 50
      - monitorname: monitor-2
        weight: 50

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
diff
dictionary
failure
List of differences between the actual configured object and the configuration specified in the module

Sample:
{'clttimeout': 'difference. ours: (float) 10.0 other: (float) 20.0'}
loglines
list / elements=string
always
list of logged messages by the module

Sample:
['message 1', 'message 2']
msg
string
failure
Message detailing the failure reason

Sample:
Action does not exist


Authors

  • George Nikolopoulos (@giorgos-nikolopoulos)