Panduan Otomatisasi Jaringan Enterprise Menggunakan Ansible dan Python (Netmiko) untuk Mass Backup & Configuration Management
Implementasi Bertahap
Langkah konfigurasi dan tindakan lapangan yang dilakukan dari awal sampai siap diuji.
Tested & Verified On
Ansible 2.16+, Python 3.11, Netmiko 4.3+, Cisco IOS-XE 17.x & MikroTik RouterOS v7
Prerequisites
Dasar Linux Ubuntu/Debian, SSH Key Authentication, & pengetahuan dasar Python/YAML
Arsitektur Network Automation
Mengelola puluhan hingga ratusan perangkat jaringan secara manual via SSH satu per satu rentan terhadap *human error* dan memakan banyak waktu. Dengan Ansible & Python Netmiko, Anda dapat mengontrol seluruh infrastruktur perangkat jaringan dari satu titik *Control Node*.
Langkah 1: Setup Environment Python & Ansible di Ubuntu Server
Instal Ansible dan pustaka Netmiko pada server Linux Ubuntu 24.04 LTS Anda.
# Install Python Virtualenv & Ansible sudo apt update && sudo apt install -y python3-pip python3-venv git python3 -m venv ~/netauto-env source ~/netauto-env/bin/activate pip install ansible netmiko paramiko
Langkah 2: Konfigurasi File Inventory (`hosts.ini`)
Kelompokkan IP address perangkat jaringan berdasarkan jenis vendor (Cisco IOS / MikroTik RouterOS).
[cisco_switches] sw-core-01 ansible_host=192.168.100.10 ansible_network_os=cisco.ios.ios sw-access-01 ansible_host=192.168.100.11 ansible_network_os=cisco.ios.ios [mikrotik_routers] r-edge-01 ansible_host=192.168.100.21 ansible_network_os=community.routeros.routeros [all:vars] ansible_user=netadmin ansible_ssh_pass=DevNetSecurePass2026! ansible_connection=network_cli
Langkah 3: Membuat Ansible Playbook untuk Mass Backup Configuration
Buat file YAML `backup_network.yml` yang secara otomatis mengesekusi perintah backup dan menyimpannya dalam folder berstempel tanggal.
---
- name: Automate Cisco Network Backup
hosts: cisco_switches
gather_facts: no
tasks:
- name: Run Show Running-Config on Cisco
cisco.ios.ios_command:
commands: show running-config
register: cisco_config
- name: Save Running Config to File
ansible.builtin.copy:
content: "{{ cisco_config.stdout[0] }}"
dest: "/var/backups/network/cisco_{{ inventory_hostname }}_{{ ansible_date_time.date }}.cfg"
Langkah 4: Skrip Python Custom dengan Netmiko untuk Audit VLAN Masal
Skrip Python Netmiko berikut mengecek status VLAN pada perangkat Cisco dan MikroTik secara bersamaan.
from netmiko import ConnectHandler
cisco_device = {
"device_type": "cisco_ios",
"host": "192.168.100.10",
"username": "netadmin",
"password": "DevNetSecurePass2026!"
}
net_connect = ConnectHandler(**cisco_device)
output = net_connect.send_command("show vlan brief")
print("=== CISCO VLAN AUDIT OUTPUT ===")
print(output)
net_connect.disconnect()
Contoh Konfigurasi / Command Penting
# Run Ansible Playbook:
ansible-playbook -i hosts.ini backup_network.yml
python3 audit_network.py
CLI Command & Configuration Script
# Run Ansible Playbook: ansible-playbook -i hosts.ini backup_network.yml python3 audit_network.py