f5networks.f5_modules.bigip_gtm_server (1.28.0) — module

Manages F5 BIG-IP GTM servers

| "added in version" 1.0.0 of f5networks.f5_modules"

Authors: Robert Teller (@r-teller), Tim Rupp (@caphrim007), Wojciech Wypior (@wojtek0806)

Install collection

Install with ansible-galaxy collection install f5networks.f5_modules:==1.28.0


Add to requirements.yml

  collections:
    - name: f5networks.f5_modules
      version: 1.28.0

Description

Manage BIG-IP GTM (now BIG-IP DNS) server configuration. This module is able to manipulate the server definitions in a BIG-IP.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create server "GTM_Server"
  bigip_gtm_server:
    name: GTM_Server
    datacenter: /Common/New York
    server_type: bigip
    link_discovery: disabled
    virtual_server_discovery: disabled
    devices:
      - name: server_1
        address: 1.1.1.1
      - name: server_2
        address: 2.2.2.1
        translation: 192.168.2.1
      - name: server_2
        address: 2.2.2.2
      - name: server_3
        addresses:
          - address: 3.3.3.1
          - address: 3.3.3.2
      - name: server_4
        addresses:
          - address: 4.4.4.1
            translation: 192.168.14.1
          - address: 4.4.4.2
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create server "GTM_Server" with expanded keys
  bigip_gtm_server:
    server: lb.mydomain.com
    user: admin
    password: secret
    name: GTM_Server
    datacenter: /Common/New York
    server_type: bigip
    link_discovery: disabled
    virtual_server_discovery: disabled
    devices:
      - name: server_1
        address: 1.1.1.1
      - name: server_2
        address: 2.2.2.1
        translation: 192.168.2.1
      - name: server_2
        address: 2.2.2.2
      - name: server_3
        addresses:
          - address: 3.3.3.1
          - address: 3.3.3.2
      - name: server_4
        addresses:
          - address: 4.4.4.1
            translation: 192.168.14.1
          - address: 4.4.4.2
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

Inputs

    
name:
    description:
    - The name of the server.
    - If the virtual server is auto-discovered from the LTM,then the partition name needs
      to be included as part of the virtual server name when referencing from the module
      e.g. "/Common/vsname".
    required: true
    type: str

state:
    choices:
    - present
    - absent
    - enabled
    - disabled
    default: present
    description:
    - The server state. If C(absent), the module attempts to delete the server. This will
      only succeed if this server is not in use by a virtual server. C(present) creates
      the server and enables it. If C(enabled), enables the server if it exists. If C(disabled),
      creates the server if needed, and sets state to C(disabled).
    type: str

limits:
    description:
    - Specifies resource thresholds or limit requirements at the pool member level.
    - When you enable one or more limit settings, the system then uses that data to take
      members in and out of service.
    - You can define limits for any or all of the limit settings. However, when a member
      does not meet the resource threshold limit requirement, the system marks the member
      as unavailable and directs load balancing traffic to another resource.
    suboptions:
      bits_enabled:
        description:
        - Whether the bits limit it enabled or not.
        - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      bits_limit:
        description:
        - Specifies the maximum allowable data throughput rate for the member, in bits
          per second.
        - If the network traffic volume exceeds this limit, the system marks the member
          as unavailable.
        type: int
      connections_enabled:
        description:
        - Whether the current connections limit it enabled or not.
        - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      connections_limit:
        description:
        - Specifies the maximum number of concurrent connections, combined, for all of
          the members.
        - If the connections exceed this limit, the system marks the server as unavailable.
        type: int
      cpu_enabled:
        description:
        - Whether the CPU limit it enabled or not.
        - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      cpu_limit:
        description:
        - Specifies the percent of CPU usage.
        - If percent of CPU usage goes above the limit, the system marks the server as
          unavailable.
        type: int
      memory_enabled:
        description:
        - Whether the memory limit it enabled or not.
        - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      memory_limit:
        description:
        - Specifies the available memory required by the virtual servers on the server.
        - If available memory falls below this limit, the system marks the server as unavailable.
        type: int
      packets_enabled:
        description:
        - Whether the packets limit it enabled or not.
        - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      packets_limit:
        description:
        - Specifies the maximum allowable data transfer rate for the member, in packets
          per second.
        - If the network traffic volume exceeds this limit, the system marks the member
          as unavailable.
        type: int
    type: dict

devices:
    description:
    - Lists the self IP addresses and translations for each device. When creating a new
      GTM server, this value is required. This list is a complex list that specifies a
      number of keys.
    - The C(name) key specifies a name for the device. The device name must be unique
      per server. This key is required.
    - The C(address) key contains an IP address, or list of IP addresses, for the destination
      server. This key is required.
    - The C(translation) key contains an IP address to translate the C(address) value
      above to. This key is optional.
    - Specifying duplicate C(name) fields is a supported means of providing device addresses.
      In this scenario, the addresses will be assigned to the C(name)'s list of addresses.
    type: raw

monitors:
    description:
    - Specifies the health monitors the system currently uses to monitor this resource.
    - When C(availability_requirements.type) is C(require), you may only have a single
      monitor in the C(monitors) list.
    elements: str
    type: list

provider:
    description:
    - A dict object containing connection details.
    suboptions:
      auth_provider:
        description:
        - Configures the auth provider for to obtain authentication tokens from the remote
          device.
        - This option is really used when working with BIG-IQ devices.
        type: str
      no_f5_teem:
        default: false
        description:
        - If C(yes), TEEM telemetry data is not sent to F5.
        - You may omit this option by setting the environment variable C(F5_TELEMETRY_OFF).
        - Previously used variable C(F5_TEEM) is deprecated as its name was confusing.
        type: bool
      password:
        aliases:
        - pass
        - pwd
        description:
        - The password for the user account used to connect to the BIG-IP or the BIG-IQ.
        - You may omit this option by setting the environment variable C(F5_PASSWORD).
        required: true
        type: str
      server:
        description:
        - The BIG-IP host or the BIG-IQ host.
        - You may omit this option by setting the environment variable C(F5_SERVER).
        required: true
        type: str
      server_port:
        default: 443
        description:
        - The BIG-IP server port.
        - You may omit this option by setting the environment variable C(F5_SERVER_PORT).
        type: int
      timeout:
        description:
        - Specifies the timeout in seconds for communicating with the network device for
          either connecting or sending commands.  If the timeout is exceeded before the
          operation is completed, the module will error.
        type: int
      transport:
        choices:
        - rest
        default: rest
        description:
        - Configures the transport connection to use when connecting to the remote device.
        type: str
      user:
        description:
        - The username to connect to the BIG-IP or the BIG-IQ. This user must have administrative
          privileges on the device.
        - You may omit this option by setting the environment variable C(F5_USER).
        required: true
        type: str
      validate_certs:
        default: true
        description:
        - If C(no), SSL certificates are not validated. Use this only on personally controlled
          sites using self-signed certificates.
        - You may omit this option by setting the environment variable C(F5_VALIDATE_CERTS).
        type: bool
    type: dict
    version_added: 1.0.0
    version_added_collection: f5networks.f5_modules

partition:
    default: Common
    description:
    - Device partition to manage resources on.
    type: str

datacenter:
    description:
    - Data center to which the server belongs. When creating a new GTM server, this value
      is required.
    type: str

prober_pool:
    description:
    - Specifies the name of the prober pool to use to monitor this server's resources.
    - In C(TMOS) version C(13.x) and later, this parameter is mandatory when C(prober_preference)
      is set to C(pool).
    - The format of the name can be either be prepended by partition (C(/Common/foo)),
      or specified just as an object name (C(foo)).
    - In C(TMOS) version C(12.x), prober_pool can be set to an empty string to revert
      to default setting of C(inherit).
    type: str

server_type:
    aliases:
    - product
    choices:
    - alteon-ace-director
    - cisco-css
    - cisco-server-load-balancer
    - generic-host
    - radware-wsd
    - windows-nt-4.0
    - bigip
    - cisco-local-director-v2
    - extreme
    - generic-load-balancer
    - sun-solaris
    - cacheflow
    - cisco-local-director-v3
    - foundry-server-iron
    - netapp
    - windows-2000-server
    description:
    - Specifies the server type. The server type determines the metrics the system can
      collect from the server. When creating a new GTM server, the default value C(bigip)
      is used.
    type: str

iquery_options:
    description:
    - Specifies whether the Global Traffic Manager uses this BIG-IP system to conduct
      a variety of probes before delegating traffic to it.
    suboptions:
      allow_path:
        description:
        - Specifies the system verifies the logical network route between a data center
          server and a local DNS server.
        type: bool
      allow_service_check:
        description:
        - Specifies the system verifies that an application on a server is running, by
          remotely running the application using an external service checker program.
        type: bool
      allow_snmp:
        description:
        - Specifies the system checks the performance of a server running an SNMP agent.
        type: bool
    type: dict

link_discovery:
    choices:
    - enabled
    - disabled
    - enabled-no-delete
    description:
    - Specifies whether the system auto-discovers the links for this server. When creating
      a new GTM server, if this parameter is not specified, the default value C(disabled)
      is used.
    - If you set this parameter to C(enabled) or C(enabled-no-delete), you must also ensure
      the C(virtual_server_discovery) parameter is also set to C(enabled) or C(enabled-no-delete).
    type: str

prober_fallback:
    choices:
    - any
    - inside-datacenter
    - outside-datacenter
    - inherit
    - pool
    - none
    description:
    - Specifies the type of prober to use to monitor this server's resources when the
      preferred prober is not available.
    - This option is ignored in C(TMOS) version C(12.x).
    - From C(TMOS) version C(13.x) and up, when prober_preference is set to C(pool) a
      C(prober_pool) parameter must be specified.
    - The choices are mutually exclusive with prober_preference parameter, with the exception
      of the C(any-available) or C(none) options.
    type: str

prober_preference:
    choices:
    - inside-datacenter
    - outside-datacenter
    - inherit
    - pool
    description:
    - Specifies the type of prober to use to monitor this server's resources.
    - This option is ignored in C(TMOS) version C(12.x).
    - From C(TMOS) version C(13.x) and up, when prober_preference is set to C(pool) a
      C(prober_pool) parameter must be specified.
    type: str

virtual_server_discovery:
    choices:
    - enabled
    - disabled
    - enabled-no-delete
    description:
    - Specifies whether the system auto-discovers the virtual servers for this server.
      When creating a new GTM server, if this parameter is not specified, the default
      value C(disabled) is used.
    type: str

availability_requirements:
    description:
    - If you activate more than one health monitor, specifies the number of health monitors
      that must receive successful responses in order for the link to be considered available.
    suboptions:
      at_least:
        description:
        - Specifies the minimum number of active health monitors that must be successful
          before the link is considered up.
        - This parameter is only relevant when a C(type) of C(at_least) is used.
        - This parameter will be ignored if a type of either C(all) or C(require) is used.
        type: int
      number_of_probers:
        description:
        - Specifies the number of probers that should be used when running probes.
        - When creating a new virtual server, if this parameter is specified, the C(number_of_probes)
          parameter must also be specified.
        - The value of this parameter should always be B(higher) than, or B(equal to),
          the value of C(number_of_probers).
        - This parameter is only relevant when a C(type) of C(require) is used.
        - This parameter will be ignored if a type of either C(all) or C(at_least) is
          used.
        type: int
      number_of_probes:
        description:
        - Specifies the minimum number of probes that must succeed for this server to
          be declared up.
        - When creating a new virtual server, if this parameter is specified, then the
          C(number_of_probers) parameter must also be specified.
        - The value of this parameter should always be B(lower) than, or B(equal to),
          the value of C(number_of_probers).
        - This parameter is only relevant when a C(type) of C(require) is used.
        - This parameter will be ignored if a type of either C(all) or C(at_least) is
          used.
        type: int
      type:
        choices:
        - all
        - at_least
        - require
        description:
        - Monitor rule type when C(monitors) is specified.
        - When creating a new pool, if this value is not specified, the default of B(all)
          will be used.
        required: true
        type: str
    type: dict

Outputs

bits_enabled:
  description: Whether the bits limit is enabled.
  returned: changed
  sample: true
  type: bool
bits_limit:
  description: The new bits_enabled limit.
  returned: changed
  sample: 100
  type: int
connections_enabled:
  description: Whether the connections limit is enabled.
  returned: changed
  sample: true
  type: bool
connections_limit:
  description: The new connections_limit limit.
  returned: changed
  sample: 100
  type: int
datacenter:
  description: The new C(datacenter) which the server is a part of.
  returned: changed
  sample: datacenter01
  type: str
link_discovery:
  description: The new C(link_discovery) configured on the remote device.
  returned: changed
  sample: enabled
  type: str
monitors:
  description: The new list of monitors for the resource.
  returned: changed
  sample:
  - /Common/monitor1
  - /Common/monitor2
  type: list
packets_enabled:
  description: Whether the packets limit is enabled.
  returned: changed
  sample: true
  type: bool
packets_limit:
  description: The new packets_limit limit.
  returned: changed
  sample: 100
  type: int
server_type:
  description: The new type of the server.
  returned: changed
  sample: bigip
  type: str
virtual_server_discovery:
  description: The new C(virtual_server_discovery) name for the trap destination.
  returned: changed
  sample: disabled
  type: str