# salt.states.bigip

A state module designed to enforce load-balancing configurations for F5 Big-IP entities.
  maturity:

    develop

  platform:

    f5_bigip_11.6

salt.states.bigip.add_pool_member(hostname, username, password, name, member)

  A function to connect to a bigip device and add a new member to an existing pool.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to modify

  member

    The member to add to the pool

salt.states.bigip.create_monitor(hostname, username, password, monitor_type, name, **kwargs)

  A function to connect to a bigip device and create a monitor.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  monitor_type

    The type of monitor to create

  name

    The name of the monitor to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each monitor type. Typically, tmsh arg names are used.

salt.states.bigip.create_node(hostname, username, password, name, address)

  Create a new node if it does not already exist.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the node to create

  address

    The address of the node

salt.states.bigip.create_pool(hostname, username, password, name, members=None, allow_nat=None, allow_snat=None, description=None, gateway_failsafe_device=None, ignore_persisted_weight=None, ip_tos_to_client=None, ip_tos_to_server=None, link_qos_to_client=None, link_qos_to_server=None, load_balancing_mode=None, min_active_members=None, min_up_members=None, min_up_members_action=None, min_up_members_checking=None, monitor=None, profiles=None, queue_depth_limit=None, queue_on_connection_limit=None, queue_time_limit=None, reselect_tries=None, service_down_action=None, slow_ramp_time=None)

  Create a new node if it does not already exist.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to create

  members

    List of members to be added to the pool

  allow_nat

    [yes | no]

  allow_snat

    [yes | no]

  description

    [string]

  gateway_failsafe_device

    [string]

  ignore_persisted_weight

    [enabled | disabled]

  ip_tos_to_client

    [pass-through | [integer]]

  ip_tos_to_server

    [pass-through | [integer]]

  link_qos_to_client

    [pass-through | [integer]]

  link_qos_to_server

    [pass-through | [integer]]

  load_balancing_mode

    [dynamic-ratio-member | dynamic-ratio-node | fastest-app-response | fastest-node | least-connections-members | least-connections-node | least-sessions | observed-member | observed-node | predictive-member | predictive-node | ratio-least-connections-member | ratio-least-connections-node | ratio-member | ratio-node | ratio-session | round-robin | weighted-least-connections-member | weighted-least-connections-node]

  min_active_members

    [integer]

  min_up_members

    [integer]

  min_up_members_action

    [failover | reboot | restart-all]

  min_up_members_checking

    [enabled | disabled]

  monitor

    [name]

  profiles

    [none | profile_name]

  queue_depth_limit

    [integer]

  queue_on_connection_limit

    [enabled | disabled]

  queue_time_limit

    [integer]

  reselect_tries

    [integer]

  service_down_action

    [drop | none | reselect | reset]

  slow_ramp_time

    [integer]

salt.states.bigip.create_profile(hostname, username, password, profile_type, name, **kwargs)

  A function to connect to a bigip device and create a profile.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  profile_type

    The type of profile to create

  name

    The name of the profile to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each profile type. Typically, tmsh arg names are used.

  Special Characters `|`, `,` and `:` must be escaped using `\` when used within strings.

salt.states.bigip.create_virtual(hostname, username, password, name, destination, pool=None, address_status=None, auto_lasthop=None, bwc_policy=None, cmp_enabled=None, connection_limit=None, dhcp_relay=None, description=None, fallback_persistence=None, flow_eviction_policy=None, gtm_score=None, ip_forward=None, ip_protocol=None, internal=None, twelve_forward=None, last_hop_pool=None, mask=None, mirror=None, nat64=None, persist=None, profiles=None, policies=None, rate_class=None, rate_limit=None, rate_limit_mode=None, rate_limit_dst=None, rate_limit_src=None, rules=None, related_rules=None, reject=None, source=None, source_address_translation=None, source_port=None, virtual_state=None, traffic_classes=None, translate_address=None, translate_port=None, vlans=None)

  A function to connect to a bigip device and create a virtual server if it does not already exists.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the virtual to create

  destination

    [ [virtual_address_name:port] | [ipv4:port] | [ipv6.port] ]

  pool

    [ [pool_name] | none]

  address_status

    [yes | no]

  auto_lasthop

    [default | enabled | disabled ]

  bwc_policy

    [none] | string]

  cmp_enabled

    [yes | no]

  dhcp_relay

    [yes | no}

  connection_limit

    [integer]

  description

    [string]

  state

    [disabled | enabled]

  fallback_persistence

    [none | [profile name] ]

  flow_eviction_policy

    [none | [eviction policy name] ]

  gtm_score

    [integer]

  ip_forward

    [yes | no]

  ip_protocol

    [any | protocol]

  internal

    [yes | no]

  twelve_forward(12-forward)

    [yes | no]

  last_hop-pool

    [ [pool_name] | none]

  mask

    { [ipv4] | [ipv6] }

  mirror

    { [disabled | enabled | none] }

  nat64

    [enabled | disabled]

  persist

    [list]

  profiles

    [none | default | list ]

  policies

    [none | default | list ]

  rate_class

    [name]

  rate_limit

    [integer]

  rate_limit-mode

    [destination | object | object-destination | object-source | object-source-destination | source | source-destination]

  rate_limit-dst

    [integer]

  rate_limit-src

    [integer]

  rules

    [none | list ]

  related_rules

    [none | list ]

  reject

    [yes | no]

  source

    { [ipv4[/prefixlen]] | [ipv6[/prefixlen]] }

  source_address_translation

    [none | snat:pool_name | lsn | automap | dictionary ]

  source_port

    [change | preserve | preserve-strict]

  state

    [enabled | disabled]

  traffic_classes

    [none | default | list ]

  translate_address

    [enabled | disabled]

  translate_port

    [enabled | disabled]

  vlans

    [none | default | dictionary]

    vlan_ids

      [ list]

    enabled

      [ true | false ]

salt.states.bigip.delete_monitor(hostname, username, password, monitor_type, name)

  Modify an existing monitor. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  monitor_type

    The type of monitor to create

  name

    The name of the monitor to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each monitor type. Typically, tmsh arg names are used.

salt.states.bigip.delete_node(hostname, username, password, name)

  Delete an existing node.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the node which will be deleted.

salt.states.bigip.delete_pool(hostname, username, password, name)

  Delete an existing pool.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool which will be deleted

salt.states.bigip.delete_pool_member(hostname, username, password, name, member)

  Delete an existing pool member.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to be modified

  member

    The name of the member to delete from the pool

salt.states.bigip.delete_profile(hostname, username, password, profile_type, name)

  Modify an existing profile. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  profile_type

    The type of profile to create

  name

    The name of the profile to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each profile type. Typically, tmsh arg names are used.

salt.states.bigip.delete_virtual(hostname, username, password, name)

  Delete an existing virtual.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the virtual which will be deleted

salt.states.bigip.list_monitor(hostname, username, password, monitor_type, name)

  A function to list an existing monitor.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  monitor_type

    The type of monitor to list

  name

    The name of the monitor to list

salt.states.bigip.list_node(hostname, username, password, name)

  A function to connect to a bigip device and list a specific node.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the node to list.

salt.states.bigip.list_pool(hostname, username, password, name)

  A function to connect to a bigip device and list a specific pool.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to list.

salt.states.bigip.list_profile(hostname, username, password, profile_type, name)

  A function to list an existing profile.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  profile_type

    The type of profile to list

  name

    The name of the profile to list

salt.states.bigip.list_virtual(hostname, username, password, name)

  A function to list a specific virtual.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the virtual to list

salt.states.bigip.manage_monitor(hostname, username, password, monitor_type, name, **kwargs)

  Create a new monitor if a monitor of this type and name does not already exists. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  monitor_type

    The type of monitor to create

  name

    The name of the monitor to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each monitor type. Typically, tmsh arg names are used.

salt.states.bigip.manage_node(hostname, username, password, name, address, connection_limit=None, description=None, dynamic_ratio=None, logging=None, monitor=None, rate_limit=None, ratio=None, session=None, node_state=None)

  Manages a node of a given bigip device. If the node does not exist it will be created, otherwise, only the properties which are different than the existing will be updated.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the node to manage.

  address

    The address of the node

  connection_limit

    [integer]

  description

    [string]

  dynam

    c_ratio: [integer]

  logging

    [enabled | disabled]

  monitor

    [[name] | none | default]

  rate_limit

    [integer]

  ratio

    [integer]

  session

    [user-enabled | user-disabled]

  node_state (state)

    [user-down | user-up ]

salt.states.bigip.manage_pool(hostname, username, password, name, allow_nat=None, allow_snat=None, description=None, gateway_failsafe_device=None, ignore_persisted_weight=None, ip_tos_to_client=None, ip_tos_to_server=None, link_qos_to_client=None, link_qos_to_server=None, load_balancing_mode=None, min_active_members=None, min_up_members=None, min_up_members_action=None, min_up_members_checking=None, monitor=None, profiles=None, queue_depth_limit=None, queue_on_connection_limit=None, queue_time_limit=None, reselect_tries=None, service_down_action=None, slow_ramp_time=None)

  Create a new pool if it does not already exist. Pool members are managed separately. Only the parameters specified are enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to create

  allow_nat

    [yes | no]

  allow_snat

    [yes | no]

  description

    [string]

  gateway_failsafe_device

    [string]

  ignore_persisted_weight

    [enabled | disabled]

  ip_tos_to_client

    [pass-through | [integer]]

  ip_tos_to_server

    [pass-through | [integer]]

  link_qos_to_client

    [pass-through | [integer]]

  link_qos_to_server

    [pass-through | [integer]]

  load_balancing_mode

    [dynamic-ratio-member | dynamic-ratio-node | fastest-app-response | fastest-node | least-connections-members | least-connections-node | least-sessions | observed-member | observed-node | predictive-member | predictive-node | ratio-least-connections-member | ratio-least-connections-node | ratio-member | ratio-node | ratio-session | round-robin | weighted-least-connections-member | weighted-least-connections-node]

  min_active_members

    [integer]

  min_up_members

    [integer]

  min_up_members_action

    [failover | reboot | restart-all]

  min_up_members_checking

    [enabled | disabled]

  monitor

    [name]

  profiles

    [none | profile_name]

  queue_depth_limit

    [integer]

  queue_on_connection_limit

    [enabled | disabled]

  queue_time_limit

    [integer]

  reselect_tries

    [integer]

  service_down_action

    [drop | none | reselect | reset]

  slow_ramp_time

    [integer]

salt.states.bigip.manage_pool_members(hostname, username, password, name, members)

  Manage the members of an existing pool. This function replaces all current pool members. Only the parameters specified are enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to modify

  members

    list of pool members to manage.

salt.states.bigip.manage_profile(hostname, username, password, profile_type, name, **kwargs)

  Create a new profile if a monitor of this type and name does not already exists. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  profile_type

    The type of profile to create

  name

    The name of the profile to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each profile type. Typically, tmsh arg names are used.

salt.states.bigip.manage_virtual(hostname, username, password, name, destination, pool=None, address_status=None, auto_lasthop=None, bwc_policy=None, cmp_enabled=None, connection_limit=None, dhcp_relay=None, description=None, fallback_persistence=None, flow_eviction_policy=None, gtm_score=None, ip_forward=None, ip_protocol=None, internal=None, twelve_forward=None, last_hop_pool=None, mask=None, mirror=None, nat64=None, persist=None, profiles=None, policies=None, rate_class=None, rate_limit=None, rate_limit_mode=None, rate_limit_dst=None, rate_limit_src=None, rules=None, related_rules=None, reject=None, source=None, source_address_translation=None, source_port=None, virtual_state=None, traffic_classes=None, translate_address=None, translate_port=None, vlans=None)

  Manage a virtual server. If a virtual does not exists it will be created, otherwise only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the virtual to create

  destination

    [ [virtual_address_name:port] | [ipv4:port] | [ipv6.port] ]

  pool

    [ [pool_name] | none]

  address_status

    [yes | no]

  auto_lasthop

    [default | enabled | disabled ]

  bwc_policy

    [none] | string]

  cmp_enabled

    [yes | no]

  dhcp_relay

    [yes | no}

  connection_limit

    [integer]

  description

    [string]

  state

    [disabled | enabled]

  fallback_persistence

    [none | [profile name] ]

  flow_eviction_policy

    [none | [eviction policy name] ]

  gtm_score

    [integer]

  ip_forward

    [yes | no]

  ip_protocol

    [any | protocol]

  internal

    [yes | no]

  twelve_forward(12-forward)

    [yes | no]

  last_hop-pool

    [ [pool_name] | none]

  mask

    { [ipv4] | [ipv6] }

  mirror

    { [disabled | enabled | none] }

  nat64

    [enabled | disabled]

  persist

    [list]

  profiles

    [none | default | list ]

  policies

    [none | default | list ]

  rate_class

    [name]

  rate_limit

    [integer]

  rate_limit-mode

    [destination | object | object-destination | object-source | object-source-destination | source | source-destination]

  rate_limit-dst

    [integer]

  rate_limit-src

    [integer]

  rules

    [none | list ]

  related_rules

    [none | list ]

  reject

    [yes | no]

  source

    { [ipv4[/prefixlen]] | [ipv6[/prefixlen]] }

  source_address_translation

    [none | snat:pool_name | lsn | automap | dictionary ]

  source_port

    [change | preserve | preserve-strict]

  state

    [enabled | disabled]

  traffic_classes

    [none | default | list ]

  translate_address

    [enabled | disabled]

  translate_port

    [enabled | disabled]

  vlans

    [none | default | dictionary]

    vlan_ids

      [ list]

    enabled

      [ true | false ]

salt.states.bigip.modify_monitor(hostname, username, password, monitor_type, name, **kwargs)

  Modify an existing monitor. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  monitor_type

    The type of monitor to create

  name

    The name of the monitor to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each monitor type. Typically, tmsh arg names are used.

salt.states.bigip.modify_node(hostname, username, password, name, connection_limit=None, description=None, dynamic_ratio=None, logging=None, monitor=None, rate_limit=None, ratio=None, session=None, node_state=None)

  Modify an existing node. Only a node which already exists will be modified and only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the node to modify

  connection_limit

    [integer]

  description

    [string]

  dynamic_ratio

    [integer]

  logging

    [enabled | disabled]

  monitor

    [[name] | none | default]

  rate_limit

    [integer]

  ratio

    [integer]

  session

    [user-enabled | user-disabled]

  node_state (state)

    [user-down | user-up ]

salt.states.bigip.modify_pool(hostname, username, password, name, allow_nat=None, allow_snat=None, description=None, gateway_failsafe_device=None, ignore_persisted_weight=None, ip_tos_to_client=None, ip_tos_to_server=None, link_qos_to_client=None, link_qos_to_server=None, load_balancing_mode=None, min_active_members=None, min_up_members=None, min_up_members_action=None, min_up_members_checking=None, monitor=None, profiles=None, queue_depth_limit=None, queue_on_connection_limit=None, queue_time_limit=None, reselect_tries=None, service_down_action=None, slow_ramp_time=None)

  Modify an existing pool. Pool members are managed separately. Only the parameters specified are enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to create

  allow_nat

    [yes | no]

  allow_snat

    [yes | no]

  description

    [string]

  gateway_failsafe_device

    [string]

  ignore_persisted_weight

    [enabled | disabled]

  ip_tos_to_client

    [pass-through | [integer]]

  ip_tos_to_server

    [pass-through | [integer]]

  link_qos_to_client

    [pass-through | [integer]]

  link_qos_to_server

    [pass-through | [integer]]

  load_balancing_mode

    [dynamic-ratio-member | dynamic-ratio-node | fastest-app-response | fastest-node | least-connections-members | least-connections-node | least-sessions | observed-member | observed-node | predictive-member | predictive-node | ratio-least-connections-member | ratio-least-connections-node | ratio-member | ratio-node | ratio-session | round-robin | weighted-least-connections-member | weighted-least-connections-node]

  min_active_members

    [integer]

  min_up_members

    [integer]

  min_up_members_action

    [failover | reboot | restart-all]

  min_up_members_checking

    [enabled | disabled]

  monitor

    [name]

  profiles

    [none | profile_name]

  queue_depth_limit

    [integer]

  queue_on_connection_limit

    [enabled | disabled]

  queue_time_limit

    [integer]

  reselect_tries

    [integer]

  service_down_action

    [drop | none | reselect | reset]

  slow_ramp_time

    [integer]

salt.states.bigip.modify_pool_member(hostname, username, password, name, member, connection_limit=None, description=None, dynamic_ratio=None, inherit_profile=None, logging=None, monitor=None, priority_group=None, profiles=None, rate_limit=None, ratio=None, session=None, member_state=None)

  A function to connect to a bigip device and modify a member of an existing pool.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the pool to modify

  member

    The member modify

  connection_limit

    [integer]

  description

    [string]

  dynamic_ratio

    [integer]

  inherit_profile

    [enabled | disabled]

  logging

    [enabled | disabled]

  monitor

    [name]

  priority_group

    [integer]

  profiles

    [none | profile_name]

  rate_limit

    [integer]

  ratio

    [integer]

  session

    [user-enabled | user-disabled]

  member_state (state)

    [ user-up | user-down ]

salt.states.bigip.modify_profile(hostname, username, password, profile_type, name, **kwargs)

  Modify an existing profile. If it does exists, only the parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  profile_type

    The type of profile to create

  name

    The name of the profile to create

  kwargs

    [ arg=val ] ...

    Consult F5 BIGIP user guide for specific options for each monitor type. Typically, tmsh arg names are used.

salt.states.bigip.modify_virtual(hostname, username, password, name, destination, pool=None, address_status=None, auto_lasthop=None, bwc_policy=None, cmp_enabled=None, connection_limit=None, dhcp_relay=None, description=None, fallback_persistence=None, flow_eviction_policy=None, gtm_score=None, ip_forward=None, ip_protocol=None, internal=None, twelve_forward=None, last_hop_pool=None, mask=None, mirror=None, nat64=None, persist=None, profiles=None, policies=None, rate_class=None, rate_limit=None, rate_limit_mode=None, rate_limit_dst=None, rate_limit_src=None, rules=None, related_rules=None, reject=None, source=None, source_address_translation=None, source_port=None, virtual_state=None, traffic_classes=None, translate_address=None, translate_port=None, vlans=None)

  Modify an virtual server. modify an existing virtual. Only parameters specified will be enforced.

  hostname

    The host/address of the bigip device

  username

    The iControl REST username

  password

    The iControl REST password

  name

    The name of the virtual to create

  destination

    [ [virtual_address_name:port] | [ipv4:port] | [ipv6.port] ]

  pool

    [ [pool_name] | none]

  address_status

    [yes | no]

  auto_lasthop

    [default | enabled | disabled ]

  bwc_policy

    [none] | string]

  cmp_enabled

    [yes | no]

  dhcp_relay

    [yes | no}

  connection_limit

    [integer]

  description

    [string]

  state

    [disabled | enabled]

  fallback_persistence

    [none | [profile name] ]

  flow_eviction_policy

    [none | [eviction policy name] ]

  gtm_score

    [integer]

  ip_forward

    [yes | no]

  ip_protocol

    [any | protocol]

  internal

    [yes | no]

  twelve_forward(12-forward)

    [yes | no]

  last_hop-pool

    [ [pool_name] | none]

  mask

    { [ipv4] | [ipv6] }

  mirror

    { [disabled | enabled | none] }

  nat64

    [enabled | disabled]

  persist

    [list]

  profiles

    [none | default | list ]

  policies

    [none | default | list ]

  rate_class

    [name]

  rate_limit

    [integer]

  rate_limit-mode

    [destination | object | object-destination | object-source | object-source-destination | source | source-destination]

  rate_limit_dst

    [integer]

  rate_limit_src

    [integer]

  rules

    [none | list ]

  related_rules

    [none | list ]

  reject

    [yes | no]

  source

    { [ipv4[/prefixlen]] | [ipv6[/prefixlen]] }

  source_address_translation

    [none | snat:pool_name | lsn | automap | dictionary ]

  source_port

    [change | preserve | preserve-strict]

  state

    [enabled | disabled]

  traffic_classes

    [none | default | list ]

  translate_address

    [enabled | disabled]

  translate_port

    [enabled | disabled]

  vlans

    [none | default | dictionary ]

    vlan_ids

      [ list]

    enabled

      [ true | false ]