SaveConfigs 0.8
Features:
- Per Knopfdruck im neuen Host-Template wird die Konfiguration gesichert und verglichen:
- automatischer Aufbau einer Telnet/SSH Verbindung zu Netzkomponenten
- automatische Erkennung des Modells: Huawei, Cisco IOS/CatOS getestet.
- Absetzung der korrekten Befehle zur Anzeige der Running-Config
(oder beliebig anderer Informationen, die erwünscht sind)
- Vergleich der neuen Konfiguration mit bereits gesicherter Konfiguration - und Archivierung der alten Config
- Das Ganze auch als Cronjob für alle (bis auf 127.0.0.1) hinterlegten Hosts aus der Datenbank durchführbar.
- Misc: IP-Adresse als Telnetlink zur Netzkomponente verfuegbar
I. Installation für die Weboberfläche:
(Alle folgenden Befehlsbeispiele sind auf Ubuntu zugeschnitten)
1. Pakete "nmap" und "expect" nachinstallieren:
sudo apt-get install nmap expect
2a. Dateien kopieren:
"saveconfigs.sh" und "commands.exp"
nach /usr/local/icinga/cgi-bin/ kopieren
Rechte anpassen, damit der Webuser diese Dateien ausfuehren darf.
Ggf. Ausfuehrung von *.sh Dateien in der entsprechenden Webserver-Konfigurationsdatei erlauben.
2b. Logincredentials in "saveconfigs.sh" anpassen
3. Ordner /tftpboot erstellen und für alle Benutzer freigeben?!
Hier werden die Konfigurationen später gesichert und auch archiviert.
4. Erstellen einer neuen Grid Ansicht:
"icinga-my-host-template.xml" kopieren nach
/usr/local/icinga-web/app/modules/Cronks/data/xml/grid/
5. Anlegen einer neuen Grid-Ansicht im "Data" Cronk-Container:
Editieren von cronks.xml im Unterverzeichnis /usr/local/icinga-web/app/modules/Cronks/config/ und hinzufügen von:
Cronks
System.ViewProc
false
Saving Configuration
SaveConfig
data
icinga-my-host-template
6. Cache leeren und Services neustarten (folgendes Beispiel unter Ubuntu):
sudo service icinga restart
sudo service apache2 restart
sudo rm -rf /usr/local/icinga-web/app/cache/config/*.php
II. Installation des Cronjobs:
1. Zugriff auf die Datenbank in "CRONsaveconfigs.sh" anpassen
2. Cronjob einrichten, welcher die "Cronsaveconfigs.sh" Datei ausführt:
sudo vi /etc/crontab
oder
crontab -e
* * * * *
- - - - -
¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ +---- Wochentag (0-7) (Sonntag =0 oder =7)
¦ ¦ ¦ +------ Monat (1-12)
¦ ¦ +-------- Tag (1-31)
¦ +---------- Stunde (0-23)
+------------ Minute (0-59)
//// Beispiele
// Täglich 0 Uhr:
0 0 * * * ./CRONsaveconfigs.sh >/dev/null 2>&1
// Sonntags um 23:59 Uhr:
59 23 * * 0 ./CRONsaveconfigs.sh >/dev/null 2>&1
// Am 1. jeden Monats um 1:00 Uhr:
0 1 1 * * ./CRONsaveconfigs.sh >/dev/null 2>&1
TODO:
- Code vereinfachen
- Weitere Netzkomponenten in "commands.exp" hinzufügen (Enterasys, Nortel, Extreme, ...) und testen
- In "saveconfigs.sh" den eigentlichen Konfigurationsausschnitt besser erkennen