Read this in other languages: English, 日本語.
Demonstrate use of the BIG-IP config module to save the running configuration to disk
Using your text editor of choice create a new file called bigip-config.yml
.
[student1@ansible ~]$ nano bigip-config.yml
vim
andnano
are available on the control node, as well as Visual Studio and Atom via RDP
Ansible playbooks are YAML files. YAML is a structured encoding format that is also extremely human readable (unlike it’s subset - the JSON format).
Enter the following play definition into bigip-config.yml
:
---
- name: BIG-IP SETUP
hosts: lb
connection: local
gather_facts: false
---
at the top of the file indicates that this is a YAML file.hosts: f5
, indicates the play is run only on the F5 BIG-IP deviceconnection: local
tells the Playbook to run locally (rather than SSHing to itself)gather_facts: false
disables facts gathering. We are not using any fact variables for this playbook.Do not exit the editor yet.
Next, add the task
. This task will use the bigip-config
to save the running configuration to disk
tasks:
- name: SAVE RUNNING CONFIG ON BIG-IP
f5networks.f5_modules.bigip_config:
provider:
server: "{{private_ip}}"
user: "{{ansible_user}}"
password: "{{ansible_password}}"
server_port: 8443
validate_certs: false
save: true
A play is a list of tasks. Tasks and modules have a 1:1 correlation. Ansible modules are reusable, standalone scripts that can be used by the Ansible API, or by the ansible or ansible-playbook programs. They return information to ansible by printing a JSON string to stdout before exiting.
name: SAVE RUNNING CONFIG ON BIG-IP
is a user defined description that will display in the terminal output.bigip_config:
tells the task which module to use.server: ""
parameter tells the module to connect to the F5 BIG-IP IP address, which is stored as a variable private_ip
in inventoryprovider:
parameter is a group of connection details for the BIG-IP.user: ""
parameter tells the module the username to login to the F5 BIG-IP device withpassword: ""
parameter tells the module the password to login to the F5 BIG-IP device withserver_port: 8443
parameter tells the module the port to connect to the F5 BIG-IP device withsave: "yes""
parameter tells the module to save the running-config to startup-config.
This operation is performed after any changes are made to the current running config. If no changes are made, the configuration is validate_certs: "no"
parameter tells the module to not validate SSL certificates. This is just used for demonstration purposes since this is a lab.Save File and exit out of editor.
Run the playbook - exit back into the command line of the control host and execute the following:
[student1@ansible ~]$ ansible-playbook bigip-config.yml
[student1@ansible]$ ansible-playbook bigip-config.yml
PLAY [BIG-IP SETUP] *******************************************************************************
TASK [SAVE RUNNING CONFIG ON BIG-IP] *******************************************************************************
changed: [f5]
PLAY RECAP ********************************************************************
f5 : ok=1 changed=1 unreachable=0 failed=0
The finished Ansible Playbook is provided here for an Answer key. Click here: bigip-config.yml.
You have finished this exercise. Click here to return to the lab guide