Porting Guides - Breaking Changes¶
These porting guides are meant for modules where deprecations caused breaking changes. The guides are in the form of playbook examples to allow for users to adjust their playbooks accordingly.
Module: bigip_log_destination¶
- Removed Parameters:
- syslog_settings
- pool_settings
Old Style Playbook:
---
- name: Create a remote high speed logging destination
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
pool_settings:
pool: pool1
- name: Create a remote syslog destination
bigip_log_destination:
name: log1
type: remote-syslog
syslog_settings:
syslog_format: syslog
forward_to: hsl1
- name: Change protocol, udp
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
pool_settings:
protocol: udp
- name: Change distribution, balanced
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
pool_settings:
distribution: balanced
New Style Playbook:
---
- name: Create a remote high speed logging destination
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
pool: pool1
- name: Create a remote syslog destination
bigip_log_destination:
name: log1
type: remote-syslog
syslog_format: syslog
forward_to: hsl1
- name: Change protocol, udp
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
protocol: udp
- name: Change distribution, balanced
bigip_log_destination:
name: hsl1
type: remote-high-speed-log
distribution: balanced
Module: bigip_node¶
- Removed Parameters:
- quorum
- monitor_type
Old Style Playbook:
---
- name: Create node with multiple monitors
bigip_node:
state: present
name: test_node
fqdn: foo.monitor.com
monitors:
- icmp
- tcp_echo
monitor_type: m_of_n
quorum: 1
- name: Modify node with multiple monitors
bigip_node:
state: present
name: test_node
fqdn: foo.monitor.com
monitors:
- icmp
- tcp_echo
monitor_type: and_list
- name: Change node to single monitor
bigip_node:
state: present
name: test_node
monitors:
- icmp
monitor_type: single
New Style Playbook:
---
- name: Create node with multiple monitors
bigip_node:
state: present
name: test_node
fqdn: foo.monitor.com
monitors:
- icmp
- tcp_echo
availability_requirements:
type: at_least
at_least: 1
- name: Modify node with multiple monitors
bigip_node:
state: present
name: test_node
monitors:
- icmp
- tcp_echo
availability_requirements:
type: all
- name: Change node to single monitor
bigip_node:
state: present
name: test_node
monitors:
- icmp
Module: bigip_config¶
This module has been changed in f5_bigip
collection to work asynchronously and
use appropriate rest endpoints instead of tmsh commands. Due to this change, the module should allow execution by
non admin accounts.
Old Style Playbook:
---
- name: Save the running configuration of the BIG-IP
bigip_config:
save: yes
- name: Reset the BIG-IP configuration, for example, to RMA the device
bigip_config:
reset: yes
save: yes
- name: Load an SCF configuration
bigip_config:
merge_content: "{{ role_path }}/files/config.scf') }}"
New Style Playbook:
---
- name: Save the running configuration of the BIG-IP
bigip_config:
save: yes
register: task
- name: Check for task completion
bigip_config:
task_id: "{{ task.task_id }}"
timeout: 150
- name: Reset the BIG-IP configuration, for example, to RMA the device
bigip_config:
reset: yes
register: task
- name: Change connection password after config was reset
set_fact:
ansible_httpapi_password: "default"
- name: Check for reset task completion
bigip_config:
task_id: "{{ task.task_id }}"
timeout: 150
- name: Save the running configuration of the BIG-IP after reset
bigip_config:
save: yes
register: task
- name: Check for save config task completion after reset
bigip_config:
task_id: "{{ task.task_id }}"
timeout: 150
- name: Load an SCF configuration
bigip_config:
merge_content: "{{ role_path }}/files/config.scf') }}"
register: task
- name: Check for merge config task completion
bigip_config:
task_id: "{{ task.task_id }}"
timeout: 150
- name: Verify an SCF configuration merge validity
bigip_config:
merge_content: "{{ role_path }}/files/config.scf') }}"
validate: true
Module: bigip_ucs_fetch¶
This module has been changed in f5_bigip
collection to work asynchronously.
Old Style Playbook:
---
- name: Download a new UCS
bigip_ucs_fetch:
src: cs_backup.ucs
dest: /tmp/cs_backup.ucs
New Style Playbook:
---
- name: Create a new UCS
bigip_ucs_fetch:
dest: /tmp/cs_backup.ucs
register: task
- name: Check for task completion and download created UCS
bigip_ucs_fetch:
dest: /tmp/cs_backup.ucs
src: "{{ task.src }}"
task_id: "{{ task.task_id }}"
timeout: 300
Module: bigip_ucs¶
This module has been changed in f5_bigip
collection to work asynchronously when installing UCS.
Old Style Playbook:
---
- name: Install a new UCS
bigip_ucs:
ucs: cs_backup.ucs
state: installed
New Style Playbook:
---
- name: Install a new UCS
bigip_ucs:
ucs: cs_backup.ucs
state: installed
register: task
- name: Check for installation status of a UCS
bigip_ucs:
ucs: "{{ task.ucs }}"
task_id: "{{ task.task_id }}"
timeout: 300
Module: all velos modules in f5_bigip collection¶
This modules have been moved to f5os
collection to bring all F5OS related modules under a single banner. All of the
the modules will work with existing playbooks with minor changes, see below example:
Old Style Playbook:
- hosts: all
collections:
- f5networks.f5_bigip
connection: httpapi
vars:
ansible_host: "lb.mydomain.com"
ansible_user: "admin"
ansible_httpapi_password: "secret"
ansible_network_os: f5networks.f5_bigip.velos
ansible_httpapi_use_ssl: yes
tasks:
- name: Attach Trunk-vlans to LAG to interface
velos_partition_lag:
name: "Arista"
trunk_vlans: [444]
state: present
- name: Modify Vlans to LAG interface
velos_partition_lag:
name: "Arista"
trunk_vlans: [444,555]
state: present
- name: Delete LAG on interface
velos_partition_lag:
name: "Arista"
trunk_vlans: [444,555]
state: absent
New Style Playbook:
- hosts: all
collections:
- f5networks.f5os
connection: httpapi
vars:
ansible_host: "lb.mydomain.com"
ansible_user: "admin"
ansible_httpapi_password: "secret"
ansible_network_os: f5networks.f5os.f5os
ansible_httpapi_use_ssl: yes
tasks:
- name: Attach Trunk-vlans to LAG to interface
f5os_lag:
name: "Arista"
lag_type: "lacp"
trunk_vlans: [444]
state: present
- name: Modify Vlans to LAG interface
f5os_lag:
name: "Arista"
trunk_vlans: [444,555]
state: present
- name: Delete LAG interface
f5os_lag:
name: "Arista"
trunk_vlans: [444,555]
state: absent
It is worth keeping in mind due to introduction of F5OS rSeries support, there are some minor differences in parameter requirements in the following modules:
- f5os_lag and f5os_interface -
trunk_vlans
andnative_vlan
parameters are no longer mutually exclusive. - f5os_vlan -
name
parameter is now required.
See also¶
- Learn more about Ansible collections.
- F5 BIG-IP Ansible collections
- F5OS Ansible collection