2025-05-10 11:42:40 +00:00
2024-11-17 15:02:37 +01:00
2024-11-17 15:02:37 +01:00
2025-03-08 18:41:33 +01:00
2025-05-10 11:42:40 +00:00

Mikrotik RouterOS backup script

Postopek

Strežnik

Najprej je potrebna priprava strežnika. Skripta bi morala delovati na vseh sistemih na katerih teče python. Na strežniku mora biti nameščen Python3 ter nekaj knjižnic: paramiko, git, time. Na strežniku mora biti ustvarjen SSH ključ.

Mikrotikove naprave

Na Mikrotikovih napravah, za katere želimo narediti varnostno kopijo konfiguracije na Git strežniku, je potrebno ustvariti "skupino" (oz. group) za uporabnika s sledečimi pravicami: ssh, ftp, read, write, sensitive. Nato je treba ustvariti uporabnika, ki ima dodan prej generiran javni SSH ključ. Tako bo omogočena varna prijava preko protokola SSH na Mikrotikovo napravo brez gesla. Zagotovljeno mora biti tudi, da ima strežnik dostop do vrat 22 oz. nastavljenih SSH vrat na Mikrotiku.

Git Strežnik

Uporabniški račun, preko katerega bodo kopije konfiguracij nalagane na strežnik, mora imeti dodan javni SSH ključ strežnika, ki omogoča varno prijavo brez gesla. Pripravljen mora biti repozitorij, ki mora biti tudi kloniran na strežnik namenjen varnostnim kopijam. Nujno je, da so znotraj repozitorija pripravljene mape, ki imajo enako ime kot lokacije na seznamu.

Priprava skripte

Za delovanje skripte so potrebne 3 datoteke:

  • main.py -> Glavna skripta
  • config.py -> Parametri potrebni za delovanje skripte
  • devices.csv -> Seznam naprav, ki jih bo strežnik varnostno kopiral

Ko so naprave vpisane v seznam in so potrebni parametri pripravljeni v datoteki config.py, je potrebno le še pognati skripto oziroma nastaviti avtomatsko izvajanje skripte, na primer enkrat na dan. Skripta je zasnovana tako, da na Git strežnik nalaga le popravke. Če sprememb ni, skripta ne naloži ničesar.

Primer datoteke devices.csv

Location,DeviceName,HostName,Port,User
Nanos,Router,192.168.2.3,22,backupscript

V tem primeru se torej skripta priklaplja na router na Nanosu, ki ima IP 192.168.2.3, SSH posluša na vratih 22. Za priklop nanj je uporabljen uporabnik backupscript. Kot prej rečeno je nujno, da je tudi ustvarjena mapa Nanos oz. mapa z imenom uporabljene lokacije.

Skripta izvede varnostno kopijo na vseh napravah, ki so vpisane na seznam.

Za avtomatizacijo skripte uporabimo "cron"

sudo apt install cron -y

Do konfiguracije "cron-a" pridemo s komando:

crontab -e

Če želimo, da se skripta požene vsak dan ob 02:00 dodamo spodnjo vrstico:

0 2 * * * /usr/bin/python3 /path/to/script/main.py

Konfiguracijo pa lahko preverimo z:

crontab -l

Repozitorij ima dva brancha. Razlikujeta se v načinu izvoza konfiguracije Mikrotika. Skripta v prvemu branchu izvozi konfiguracijo v datoteko na mikrotiku in jo nato prenese. Skripta v drugemu branchu ukaže izvoz in zapiše izhod terminala direktno v datoteko na strežniku.

Description
Python skripta, ki naredi varnostno kopijo mikrotikovih naprav ter jih naloži na git strežnik, če se je konfiguracija spremenila.
Readme 39 KiB
Languages
Python 100%