Back to Learn

Ansible Automation Lab (sydasif)

A beginner-friendly Ansible-for-network-engineers lab: start with Linux server playbooks, then move to Cisco IOS network playbooks (VLANs, OSPF, EIGRP, backups) on GNS3/EVE-NG.

Ansible
Cisco IOS
Linux / RHEL9 / Ubuntu
GNS3
EVE-NG
Beginner
Server lab: Linux ping, packages, variables, conditionals
Network lab: Cisco IOS VLANs, OSPF, EIGRP, backups
Loops & GNS3/EVE-NG campus topologies

Setup, key playbooks & run commands

Step 0 โ€” setup
Setup

Clone the lab and install Ansible plus the Cisco IOS collection. The lab is split into ansible-server-lab (Linux) and ansible-network-lab (Cisco IOS on GNS3/EVE-NG).

Step 0 โ€” setup
bash
git clone https://github.com/sydasif/ansible-automation-lab.git
cd ansible-automation-lab

pip install -r requirements.txt
ansible-galaxy collection install cisco.ios
ansible-server-lab/playbooks/ping.yml
Server lab ยท first run

The classic starting point: confirm Ansible can reach managed Linux hosts before doing real work.

ansible-server-lab/playbooks/ping.yml
bash
cd ansible-server-lab
ansible-playbook -i inventory playbooks/ping.yml
playbook-8.yml (install git, conditional)
Variables & conditionals

Install packages across mixed distros (Ubuntu and Fedora) using variables and 'when' conditionals โ€” the core of idempotent OS automation.

playbook-8.yml (install git, conditional)
bash
ansible-playbook -i inventory playbooks/playbook-8.yml

# Related lessons:
#   playbook-3.yml  -> variables
#   playbook-6/7.yml -> per-distro conditionals
#   playbook-10.yml -> updates + web server
ansible-network-lab/playbooks/save_sh_run.yml
Network lab ยท backup

Connect to Cisco IOS devices and save 'show running-config' to a file per host โ€” config backup the Ansible way.

ansible-network-lab/playbooks/save_sh_run.yml
bash
cd ../ansible-network-lab
ansible-playbook -i inventory playbooks/save_sh_run.yml
ansible-playbook -i inventory playbooks/02_copy_run_sta.yml
create_vlan.yml / vlan_loop.yml
Loops

Provision VLANs from a list using loops (standard and dictionary loops) so one task scales to many VLANs.

create_vlan.yml / vlan_loop.yml
bash
ansible-playbook -i inventory playbooks/create_vlan.yml
ansible-playbook -i inventory playbooks/vlan_loop.yml
ansible-playbook -i inventory playbooks/dict_loop.yml
ospf_core.yml / eigrp_dist.yml
Routing config

Push routing configuration (OSPF on the core, EIGRP on distribution) to a multi-layer campus topology.

ospf_core.yml / eigrp_dist.yml
bash
ansible-playbook -i inventory playbooks/ospf_core.yml
ansible-playbook -i inventory playbooks/ospf_r1.yml
ansible-playbook -i inventory playbooks/eigrp_dist.yml
gns3-playbook/GNS3-Campus1.yml
GNS3 campus

End-to-end campus playbooks that build out Campus 1โ€“4 topologies running in GNS3 / EVE-NG.

gns3-playbook/GNS3-Campus1.yml
bash
ansible-playbook -i inventory gns3-playbook/GNS3-Campus1.yml

The repo ships dozens of small, focused playbooks plus sample IOS configs. Follow the online lab guide for the full step-by-step walkthrough and a recommended learning order.