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 ]