Introduction
Ansible enables repeatable, version-controlled network automation across major vendors.
Setup
bash
1python -m venv .venv2source .venv/bin/activate3pip install ansible ansible-pylibssh4ansible-galaxy collection install cisco.iosInventory
yaml
1# inventory.yml2all:3 children:4 routers:5 hosts:6 core-rtr-01:7 ansible_host: 192.168.1.18 ansible_network_os: cisco.ios.ios9 vars:10 ansible_connection: ansible.netcommon.network_cli11 ansible_user: admin12 ansible_ssh_private_key_file: ~/.ssh/network_keyFirst Playbook
yaml
1- name: Gather Network Facts2 hosts: routers3 gather_facts: no4 tasks:5 - name: Gather IOS facts6 cisco.ios.ios_facts:7 gather_subset:8 - allRoles and Variables
- Split configs into roles
- Use group_vars/host_vars
- Keep secrets in Ansible Vault
Run
bash
1ansible-playbook -i inventory.yml gather_facts.ymlConclusion
Ansible turns manual CLI changes into auditable automation.
Ansible
Cisco IOS
YAML
Python