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.

Parameters:
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.

Parameters:

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

Keyword Args: [ 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.

Parameters:
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.

Parameters:

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.

Parameters:

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

Keyword Args: [ 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.

Parameters:

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.

Parameters:

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

Keyword Args: [ 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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:

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

Keyword Args: [ 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.

Parameters:
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 fucntion to list an exsiting monitor.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:

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

Keyword Args: [ 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.

Parameters:

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] 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.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.

Parameters:

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.

Parameters:

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.

Parameters:

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

Keyword Args: [ 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.

Parameters:

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.

Parameters:

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

Keyword Args: [ 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.

Parameters:

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.

Parameters:

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.

Parameters:

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.

Parameters:

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

Keyword Args: [ 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.

Parameters:

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 ]