Automation, Orchestration & DevOps > Class 9: Basic BIG-IP Configuration Management with Ansible > Section 2 - Ansible F5 Operational/Advanced Exercises Source | Edit on
Exercise 2.1: Using a combination of modules to delete configuration on the BIG-IP¶
Objective¶
Demonstrate use of the different modules to delete the configuration (Nodes/Pool/Virtual Server) on the BIG-IP. # Guide
Step 1:¶
Use VS Code Explorer to create a new file called bigip-delete-configuration.yml
.
The Ansible node is equiped withVisual Studio Code
and can be accessed via UDF ACCESS Methods.
Step 2:¶
Enter the following play definition into
bigip-delete-configuration.yml
:
---
- name: BIG-IP SETUP
hosts: lb
connection: local
gather_facts: false
- The
---
at the top of the file indicates that this is a YAML file. - The
hosts: f5
, indicates the play is run only on the F5 BIG-IP device connection: local
tells the Playbook to run locally (rather than SSHing to itself)gather_facts: no
disables facts gathering. We are not using any fact variables for this playbook.
Step 3¶
Add a tasks section with a set_fact for setting the provider values
tasks:
- name: Setup provider
set_fact:
provider:
server: "{{private_ip}}"
user: "{{ansible_user}}"
password: "{{ansible_ssh_pass}}"
server_port: "8443"
validate_certs: "no"
Step 4¶
Next, add the first task
using the
bigip_virtual_server.
This task will be identical to Exercise 1.5 - Adding a virtual
server with an additional
state parameter. The state: absent
will remove the configuration
from the F5 BIG-IP load balancer.
- name: DELETE VIRTUAL SERVER
bigip_virtual_server:
provider: "{{provider}}"
name: "vip"
state: absent
state: absent
is a parameter that tells the module to delete the configuration
Step 5¶
Next, add the second task
using the
bigip_pool.
This task will be identical to Exercise 1.3 - Adding a load balancing
pool with an additional state
parameter set to absent
.
- name: DELETE POOL
bigip_pool:
provider: "{{provider}}"
name: "http_pool"
state: absent
Step 6¶
Finally, add the last task
using the
bigip_node.
This task will be identical to Exercise 1.2 - Adding nodes to F5
BIG-IP with an additional state parameter set to
absent
.
- name: DELETE NODES
bigip_node:
provider: "{{provider}}"
name: "{{hostvars[item].inventory_hostname}}"
state: absent
loop: "{{ groups['webservers'] }}"
The above playbook will delete the virtual server, then the pool and then the nodes configured in previous exercises.
Step 7¶
Run the playbook - exit back into the command line of the control host and execute the following:
[centos@ansible ~]$ ansible-playbook bigip-delete-configuration.yml
Playbook Output¶
[centos@ansible]$ ansible-playbook bigip-delete-configuration.yml
PLAY [BIG-IP TEARDOWN] **************************************************************************************************************************************
TASK [Setup provider] ***************************************************************************************************************************************
ok: [f5]
TASK [DELETE VIRTUAL SERVER] ********************************************************************************************************************************
changed: [f5]
TASK [DELETE POOL] *********************************************************************************************************************************
changed: [f5]
TASK [DELETE NODES] *************************************************************************************************************************************
changed: [f5] => (item=host1)
changed: [f5] => (item=host2)
PLAY RECAP **************************************************************************************************************************************
f5 : ok=4 changed=3 unreachable=0 failed=0
Solution¶
The finished Ansible Playbook is provided here for an Answer key. Click
here: bigip-delete-configuration.yml
.
Verifying the Solution¶
Login to the F5 with your web browser to see what was configured. Grab the IP information for the F5 load balancer from the lab_inventory/hosts file, and type it in like so: https://X.X.X.X:8443/
Login information for the BIG-IP: - username: admin - password: provided by instructor defaults to ansible
Navigate the menu on the left and view that the configuration has been deleted.
- Check: Local Traffic Manager -> Virtual Server
- Check: Local Traffic Manager -> Pool
- Check: Local Traffic Manager -> Node
All configured objetcs are removed and the BIG-IP is 'empty'.
You have finished this exercise. Click here to return to the lab guide