Sebagai seorang Network Engineer, kita sering menghadapi tantangan dalam mengelola konfigurasi berbagai perangkat dari banyak vendor. Tugas konfigurasi yang rutin bisa sangat melelahkan dan sering kali rentan terhadap kesalahan atau human error. Dalam pekerjaan sehari-hari, tidak jarang kita harus melakukan tugas-tugas berulang pada banyak perangkat sekaligus.
Berdasarkan masalah tersebut, saya membuat aplikasi yang dapat mengotomatisasi konfigurasi jaringan melalui antarmuka web yang mudah digunakan, yang saya beri nama XNetManager.
XNetManager
XNetManager adalah aplikasi web berbasis Python yang dirancang untuk mengotomatisasi konfigurasi perangkat jaringan seperti Mikrotik, Fortinet, dan Cisco melalui SSH. Aplikasi ini menggunakan Docker untuk memudahkan proses deployment.
Fitur Utama
- Otomatisasi konfigurasi perangkat jaringan
- Dukungan untuk berbagai vendor (Mikrotik, Fortinet, Cisco)
- Antarmuka web yang user-friendly
- Multi-Factor Authentication (MFA) dengan Google Authenticator
- Pengelolaan hak akses untuk pengguna administrator
- Pemantauan status perangkat dengan ping utilities
Persyaratan
- Docker dan Docker Compose terinstal di sistem Anda
- GitHub untuk mengakses repositori
Langkah-Langkah
1. Buat Dockerfile
Buat file Dockerfile
dengan konten berikut:
# Base image
FROM python:3.9-slim
# Install Nginx dan git
RUN apt-get update && \
apt-get install -y nginx git iputils-ping
# Clone repository from GitHub
RUN git clone https://github.com/deckiokmal/xnetmanager.git /app
# Install Python dependencies
WORKDIR /app
RUN pip install -r requirements.txt
# Configure Nginx
RUN echo "server { \
listen 80; \
server_name localhost; \
location / { \
proxy_pass http://localhost:5000; \
proxy_set_header Host \$host; \
proxy_set_header X-Real-IP \$remote_addr; \
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \
proxy_set_header X-Forwarded-Proto \$scheme; \
} \
}" > /etc/nginx/sites-available/default
# Configure DNS
RUN echo "nameserver 8.8.8.8" > /etc/resolv.conf
# Install ping utils
RUN apt-get install -y iputils-ping
# Expose ports
EXPOSE 80
# Start Nginx and Flask application
CMD service nginx start && flask run --host=0.0.0.0 --port=5000
2. Build Docker Image
Bangun image Docker dengan perintah berikut:
sudo docker build -t xnetmanager:latest .
3. Jalankan Kontainer Docker
Jalankan kontainer dengan perintah berikut:
docker run
sudo docker run -d -p 8008:80 --name xnetmanager --restart=always xnetmanager:latest
4. (Opsional) Buat Jaringan Docker
Jika Anda memerlukan konfigurasi jaringan khusus, buat jaringan Docker dengan perintah berikut:
sudo docker network create -d ipvlan --subnet 10.0.210.0/24 -o parent=ens18 -o ipvlan_mode=l3 frontend_l3
5. Testing
– Anda dapat menguji konektivitas dan ping dari dalam kontainer:
docker exec xnetmanager ping 8.8.8.8
– Akses Web Interface:
http://ip-address-dockerhost:8008
Jika perlu menginstal ulang, jalankan:
sudo docker exec -it xnetmanager apt-get update
sudo docker exec -it xnetmanager apt-get install -y iputils-ping
Bagaimana Cara Menggunakan XNetManager?
default username: Adminx
default password: adminx

Sign Up dan Isi Data: Pertama, lakukan sign-up dan lengkapi data yang diperlukan untuk menggunakan aplikasi.

MFA dengan Google Authenticator

Masukkan OTP

User berhasil dibuat.

Tambahkan Daftar Perangkat: Selanjutnya, tambahkan perangkat yang akan dikonfigurasi. Pastikan untuk memasukkan parameter penting seperti IP address, username, password, dan SSH port saat menambahkan perangkat.
Navigasi ke Device Manager:

Create Device dan isi parameter yang diperlukan:

Device Berhasil ditambahkan:

Buat Template dan Parameter: Setelah perangkat ditambahkan, buat atau tambahkan template berbasis Jinja2 dan file parameter berbasis YAML. Lakukan parsing pada kedua file tersebut sehingga menjadi file baru yang siap dikirim ke perangkat.
Navigasi ke Template Manager

Anda perlu menyiapkan template file Jinja2 dan Parameter file YAML. setelah siap lakukan upload.

Contoh Template Jinja2:

Contoh Parameter YAML:

Setelah upload selesai anda bisa lakukan generated data agar file konfigurasi siap dikirimkan ke perangkat.


Pada tahap ini anda sudah siap untuk melakukan konfigurasi perangkat menggunakan template yang sudah anda generated.
Cek Status Perangkat: Sebelum mengirim konfigurasi, cek status perangkat apakah online atau offline. Jika perangkat online, Anda siap melakukan push konfigurasi menggunakan template yang telah di-generate.
Navigasi ke Network Manager untuk melakukan push konfigurasi.

Push Konfigurasi: XNetManager menggunakan protokol SSH untuk mengirim konfigurasi, jadi pastikan SSH aktif pada perangkat jaringan yang akan dikelola.
pilih template yang sebelumnya anda generated. perhatikan tanggal pada nama file nya.

Sebagai contoh pengujian saya menggunakan template berikut:

Lalu saya lakukan push konfigurasi pada mikrotik, perhatikan hostname mikrotik saya sebelum dilakukan push:

Saya lakukan push:

kita lakukan pengecekan kembali ke mikrotik:

Berikut log pada mikrotik:

Dengan langkah-langkah ini, Anda dapat dengan mudah mengelola konfigurasi jaringan Anda menggunakan XNetManager.