f5networks.f5_modules.bigiq_application_https_waf (1.28.0) — module

Manages BIG-IQ HTTPS WAF applications

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

Authors: Tim Rupp (@caphrim007)

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

Manages BIG-IQ applications used for load balancing an HTTPS application on port 443 with a Web Application Firewall (WAF) using an ASM (Application Security Manager) Rapid Deployment policy.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: BIG-IQ CM an HTTPS application on port 443 with a WAF using ASM
  bigiq_application_https_waf:
    name: my-app
    description: Redirect HTTP to HTTPS via WAF
    service_environment: my-ssg
    servers:
      - address: 1.2.3.4
        port: 8080
      - address: 5.6.7.8
        port: 8080
    inbound_virtual:
      address: 2.2.2.2
      netmask: 255.255.255.255
      port: 443
    redirect_virtual:
      address: 2.2.2.2
      netmask: 255.255.255.255
      port: 80
    provider:
      password: secret
      server: cm.mydomain.com
      user: admin
    state: present
  delegate_to: localhost

Inputs

    
name:
    description:
    - Name of the new application.
    required: true
    type: str

wait:
    default: true
    description:
    - If the module should wait for the application to be created, deleted, or updated.
    type: bool

state:
    choices:
    - absent
    - present
    default: present
    description:
    - The state of the resource on the system.
    - When C(present), guarantees the resource exists with the provided attributes.
    - When C(absent), removes the resource from the system.
    type: str

servers:
    description:
    - A list of servers on which the application is hosted.
    - If you are familiar with other BIG-IP settings, you might also refer to this list
      as the list of pool members.
    - When creating a new application, at least one server is required.
    elements: dict
    suboptions:
      address:
        description:
        - The IP address of the server.
        required: true
        type: str
      port:
        default: 80
        description:
        - The port of the server.
        type: int
    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

description:
    description:
    - Description of the application.
    type: str

domain_names:
    description:
    - Specifies host names that are used to access the web application that this security
      policy protects.
    - When creating a new application, this parameter is required.
    elements: str
    type: list

add_analytics:
    default: false
    description:
    - Collects statistics of the BIG-IP that the application is deployed to.
    - This parameter is only relevant when specifying a C(service_environment) which is
      a BIG-IP; not an SSG.
    type: bool

inbound_virtual:
    description:
    - Settings to configure the virtual which receives the inbound connection.
    - This virtual is used to host the HTTPS endpoint of the application.
    - Traffic destined to the C(redirect_virtual) is offloaded to this parameter to ensure
      proper redirection from insecure to secure occurs.
    suboptions:
      address:
        description:
        - Specifies destination IP address information to which the virtual server sends
          traffic.
        - This parameter is required when creating a new application.
        required: true
        type: str
      netmask:
        description:
        - Specifies the netmask to associate with the given C(destination).
        - This parameter is required when creating a new application.
        required: true
        type: str
      port:
        default: 443
        description:
        - The port on which the virtual listens for connections.
        - When creating a new application, if this parameter is not specified, the default
          value is C(443).
        type: int
    type: dict

redirect_virtual:
    description:
    - Settings to configure the virtual which receives the connection to be redirected.
    - This virtual is used to host the HTTP endpoint of the application.
    - Traffic destined to this parameter is offloaded to the C(inbound_virtual) parameter
      to ensure proper redirection from insecure to secure occurs.
    suboptions:
      address:
        description:
        - Specifies destination IP address information to which the virtual server sends
          traffic.
        - This parameter is required when creating a new application.
        required: true
        type: str
      netmask:
        description:
        - Specifies the netmask to associate with the given C(destination).
        - This parameter is required when creating a new application.
        required: true
        type: str
      port:
        default: 80
        description:
        - The port on which the virtual listens for connections.
        - When creating a new application, if this parameter is not specified, the default
          value of C(80) will be used.
        type: int
    type: dict

client_ssl_profile:
    description:
    - Specifies the SSL profile for managing client-side SSL traffic.
    suboptions:
      cert_key_chain:
        description:
        - One or more certificates and keys to associate with the SSL profile.
        - This option is always a list. The keys in the list dictate the details of the
          client/key/chain/passphrase combination.
        - BIG-IPs can only have one of each type of each certificate/key type. This means
          you can only have one RSA, one DSA, and one ECDSA per profile.
        - If you attempt to assign two RSA, DSA, or ECDSA certificate/key combo, the device
          rejects it.
        - This list is a complex list that specifies a number of keys.
        - When creating a new profile, if this parameter is not specified, the default
          value is C(inherit).
        suboptions:
          cert:
            description:
            - Specifies a cert name for use.
            type: str
          chain:
            description:
            - Specifies a certificate chain that is relevant to the certificate and key.
            - This key is optional.
            type: str
          key:
            description:
            - Specifies a key name.
            type: str
          passphrase:
            description:
            - Contains the passphrase of the key file, should it require one.
            - Passphrases are encrypted on the remote BIG-IP device.
            type: str
        type: raw
      name:
        default: clientssl
        description:
        - The name of the client SSL profile to created and used.
        - When creating a new application, if this value is not specified, the default
          value of C(clientssl) will be used.
        type: str
    type: dict

service_environment:
    description:
    - Specifies the name of service environment the application will be deployed to.
    - When creating a new application, this parameter is required.
    type: str

Outputs

description:
  description: The new description of the application of the resource.
  returned: changed
  sample: My application
  type: str
inbound_virtual_destination:
  description: The destination of the virtual that was created.
  returned: changed
  sample: 6.7.8.9
  type: str
inbound_virtual_netmask:
  description: The network mask of the provided inbound destination.
  returned: changed
  sample: 255.255.255.0
  type: str
inbound_virtual_port:
  description: The port on which the inbound virtual address listens.
  returned: changed
  sample: 80
  type: int
servers:
  contains:
    address:
      description: The IP address of the server.
      returned: changed
      sample: 2.3.4.5
      type: str
    port:
      description: The port on which the server listens.
      returned: changed
      sample: 8080
      type: int
  description: List of servers, and their ports, that make up the application.
  returned: changed
  sample: hash/dictionary of values
  type: complex
service_environment:
  description: The environment to which the service was deployed.
  returned: changed
  sample: my-ssg1
  type: str