Diverse Cisco Geräte können bei einem write Event die Konfiguration an einen anderen Server z.B. über HTTP pushen.
Cisco Config:
archive path http://1.2.3.4/cisco_config/put/$h-$t write-memory
Apache /etc/httpd/conf.d/zzz_cisco_backup.conf:
WSGIDaemonProcess cisco_backup user=apache group=apache threads=10 WSGIPythonPath /opt/cisco_backup/web_root WSGIScriptAlias /cisco_backup /opt/cisco_backup/web_root/cisco_backup.wsgi <Directory /opt/cisco_backup/web_root> WSGIProcessGroup cisco_backup WSGIApplicationGroup %{GLOBAL} WSGIScriptReloading On Order deny,allow Allow from all <Files cisco_backup.py> Require all granted </Files> <Files cisco_backup.wsgi> Require all granted </Files> </Directory>
cisco_backup.wsgi File:
import sys sys.path.append("/opt/cisco_backup/web_root") from cisco_backup import app as application
cisco_backup.py File:
#!/usr/bin/env python # -*- coding: utf-8 -*- from flask import Flask from flask import request app = Flask(__name__) @app.route("/put/<cfg>", methods=['PUT']) def get_config(cfg): with open('/opt/cisco_config/incoming_configs/%s' % cfg, "wb") as f: f.write(request.data) return "ok" if __name__ == "__main__": app.run()
Viel Spaß 😉