.. _2.1-delete-configuration: 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 with ``Visual Studio Code`` and can be accessed via UDF ACCESS Methods. Step 2: ------- Enter the following play definition into ``bigip-delete-configuration.yml``: .. code-block:: yaml --- - 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 .. code-block:: yaml 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 :ref:`Exercise 1.5 - Adding a virtual server <1.5-add-virtual-server>` with an additional **state** parameter. The ``state: absent`` will remove the configuration from the F5 BIG-IP load balancer. .. code-block:: yaml - 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 :ref:`Exercise 1.3 - Adding a load balancing pool <1.3-add-pool>` with an additional **state** parameter set to ``absent``. .. code-block:: yaml - 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 :ref:`Exercise 1.2 - Adding nodes to F5 BIG-IP <1.2-add-node>` with an additional **state** parameter set to ``absent``. .. code-block:: yaml - 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: .. code-block:: shell-session [centos@ansible ~]$ ansible-playbook bigip-delete-configuration.yml Playbook Output =============== .. code-block:: shell-session [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: :download:`bigip-delete-configuration.yml <./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 <..>`__