11. évf: Automatizálás / scripting
11. évf: Automatizálás / scripting
Bash és Python automatizálás hálózati környezetben

Bevezetés
A modern hálózatüzemeltetésben a rendszergazdák és hálózati technikusok munkájának jelentős része:
- ismétlődő feladatokból,
- konfigurációk ellenőrzéséből,
- naplózásból,
- monitorozásból,
- és automatikus folyamatokból áll.
Nagyobb hálózatokban kézi módszerrel:
- IP-címeket ellenőrizni,
- mentéseket készíteni,
- eszközöket vizsgálni
rendkívül időigényes lenne.
Ezért alkalmaznak:
- Bash scriptet
- Python automatizálást
- hálózati API-kat
- ütemezett feladatokat
Mert húsz routert kézzel végigpingelni még „megoldható”. Kétszázat már csak akkor szeretne valaki, ha különösen haragszik önmagára.
Mi az a script?
A script:
- utasítások sorozata,
- amelyeket automatikusan végrehajt a rendszer.
Mire használható?
Példák:
- mentések
- naplózás
- konfigurációk kezelése
- monitorozás
- hálózati tesztelés
- automatizálás
Bash
Bash: Bourne Again Shell
Linux rendszereken:
- az egyik leggyakoribb parancsértelmező.
Bash script felépítése
Egy Bash script általában:
- #!/bin/bash
- parancsok
Shebang
#!/bin/bash
Megadja: melyik értelmező futtassa a scriptet.
Egyszerű Bash példa
#!/bin/bash
echo "Hálózati teszt"
echo "Mai dátum:"
date
Script futtathatóvá tétele
Linux: chmod +x script.sh
Futtatás: ./script.sh
Változók Bash-ben
#!/bin/bash
nev="Attila"
echo $nev
Felhasználói adatbekérés
#!/bin/bash
read -p "IP cím: " ip
echo "Ping indul: $ip"
Feltétel Bash-ben
#!/bin/bash
if ping -c 1 8.8.8.8
then
echo "Elérhető"
else
echo "Nincs kapcsolat"
fi
Ciklus Bash-ben
#!/bin/bash
for i in {1..5}
do
echo "Teszt: $i"
done
Hálózati példa Bash használatával
IP címek pingelése:
#!/bin/bash
for i in {1..10}
do
ping -c 1 192.168.1.$i
done
Ping Sweep
A ping sweep:
- IP tartomány vizsgálata,
- aktív gépek keresése.
Ping Sweep Bash példa
#!/bin/bash
for i in {1..254}
do
ping -c 1 -W 1 192.168.1.$i > /dev/null
if [ $? -eq 0 ]
then
echo "Aktív: 192.168.1.$i"
fi
done
A script működése
A script:
- végigmegy az IP-tartományon
- pinget küld
- ellenőrzi a visszajelzést
- kiírja az aktív gépeket
Python hálózati automatizálás
A Python:
- egyszerű,
- jól olvasható,
- és rendkívül népszerű hálózati környezetben.
Miért használják hálózatokban?
Előnyök:
- könnyen tanulható
- API támogatás
- sok könyvtár
- automatizálás
Hálózati Python könyvtárak
| Könyvtár | Funkció |
|---|---|
| socket | hálózati kapcsolat |
| requests | web/API |
| paramiko | SSH |
| netmiko | Cisco kezelés |
| napalm | automatizálás |
| scapy | csomagelemzés |
Egyszerű Python példa: print("Hálózati teszt")
Változók Pythonban
ip="192.168.1.1"
print(ip)
Felhasználói adatbekérés
ip=input("IP cím: ")
print(ip)
Egyszerű ping Pythonban
import os
ip="8.8.8.8"
os.system("ping "+ip)
Ping Sweep Pythonban
import os
for i in range(1,255):
ip="192.168.1."+str(i)
response=os.system(
"ping -n 1 "+ip)
if response==0:
print(ip,"elérhető")
A script működése
A program:
- IP-ket generál
- pinget küld
- ellenőrzi a választ
- megjeleníti az aktív eszközöket
Portvizsgáló Python példa
import socket
ip="192.168.1.1"
for port in [22,80,443]:
s=socket.socket()
result=s.connect_ex((ip,port))
if result==0:
print(port,"nyitott")
s.close()
Mire használható?
Példák:
- SSH ellenőrzés
- webszerver vizsgálat
- szolgáltatások keresése
SSH automatizálás
Pythonban gyakori: paramiko
Példa Cisco kapcsolódásra
from netmiko import ConnectHandler
router = {
'device_type':'cisco_ios',
'host':'192.168.1.1',
'username':'admin',
'password':'Cisco123'
}
connection=ConnectHandler(**router)
output=connection.send_command(
"show ip interface brief")
print(output)
Mire használható Netmiko?
Példák:
- konfigurációk lekérdezése
- mentések készítése
- tömeges módosítás
Automatikus backup
A konfigurációk rendszeres mentése fontos.
Miért?
Előnyök:
- gyors visszaállítás
- hibák javítása
- verziókövetés
Backup Bash példa
#!/bin/bash
date=$(date +%F)
cp /etc/network/interfaces \
backup_$date
Backup Python példa
import shutil
shutil.copy(
"config.txt",
"config_backup.txt")
Cisco konfiguráció mentése
Parancssorból: copy running-config startup-config
TFTP mentés
Cisco: copy running-config tftp:
Ütemezett futtatás Linux alatt
Cron használata: crontab -e
Példa
Minden nap 01:00-kor: 0 1 * * * /home/admin/backup.sh
Windows ütemezés
Eszköz:
Feladatütemező
(Task Scheduler)
Automatizálási példák
Hálózati környezetben:
- switch konfiguráció mentése
- aktív gépek keresése
- logfájl ellenőrzése
- VPN tesztelése
- interface állapot figyelése
- IP cím vizsgálat
Hibakeresés scriptnél
Gyakori hibák:
- rossz IP
- hibás jogosultság
- hiányzó könyvtár
- elírt változó
- hibás útvonal
Python csomag telepítés
Példa: pip install netmiko
Best Practice
Ajánlások:
- kommentek használata
- hibakezelés
- naplózás
- verziókezelés
- tesztkörnyezet
Gyakorlati feladat
Feladat:
Készíts Python programot:
- amely végigvizsgálja
a: 192.168.1.1–192.168.1.50
tartományt
és:
- kiírja az aktív gépeket
- naplófájlba menti az eredményt
