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