Wer mehrere pfSense-Installationen betreut kommt schnell an den Punkt, an dem es eher unbequem wird sich zu jeder Installation verbinden und das Update mittels Web-Interface anstarten zu müssen. Schneller und automatisierbar geht dies mit einem Befehl.
Mittels “pfSense-upgrade” (Gross-/Kleinschreibung beachten! Bordmittel) kann via ssh das Update bzw. Upgrade auf eine neue Version durchgeführt werden. ssh muss zuvor aktiviert werden:
pfSense – HOWTO enable SSH access
Via ssh verbinden, Punkt “8) Shell” auswählen und folgenden Befehl ausführen:
pfSense-upgrade
Nach kurzer Zeit erscheint eine Abfrage, ob weitergemacht werden soll:
Reboot will be required!! Proceed with upgrade? (y/N)
Möchte man direkt ohne weitere Abfrage das Upgrade durchführen, fügt man “-y” an den Befehl an. Dabei wird das Upgrade ausgeführt und pfSense automatisch neu gestartet.
Der gesamte Vorgang kann z.B. unter Windows mittels plink als Skript automatisiert werden. In nachfolgendem Beispiel wird zunächst das Upgrade durchgeführt, dann fünf Minuten gewartet und anschließend ein neues selbst-signiertes Zertifikat generiert als auch eingebunden. Für diesen Beitrag wurde eine pfSense-Installation auf Version 3.4.3 aktualisiert und eine erforderliche Nacharbeit, gemeint ist das Zertifikat (Link), durchgeführt.
@echo off plink.exe -ssh -l root -pw <Passwort> <IP> "pfSense-upgrade -y" timeout /t 300 plink.exe -ssh -l root -pw <Passwort> <IP> "pfSsh.php playback generateguicert"
Bemerkung 1: Damit plink automatisiert ablaufen kann, muss einmalig eine Verbindung hergestellt und der Schlüssel werden.
Bemerkung 2: Unbedingt den Benutzer “root” verwenden, mit “admin” funktioniert es nicht.
Anbei die weiteren Optionen von “pfSense-upgrade”:
Usage: pfSense-upgrade [-46bdfhnRUy] [-l LOG_PATH] [-p SOCKET_PATH] [-c|-u|-i PKG_NAME|-r PKG_NAME] -4 - Force IPv4 -6 - Force IPv6 -b - Platform is booting -d - Turn on debug -f - Force package installation -h - Show this usage help -l - Logfile path (defaults to /cf/conf/upgrade_log.txt) -p socket - Write pkg progress to socket -R - Do not reboot (this can be dangerous) -n - Dry run -U - Do not update repository information -y - Assume yes as the answer to any possible interaction The following parameters are mutually exclusive: -c - Check if upgrade is necessary -i PKG_NAME - Install package PKG_NAME -r PKG_NAME - Remove package PKG_NAME -u - Update repository information
Mit “-c” kann auf Updates/Upgrades geprüft werden. Zum vorangehenden Testen kann “-n” benutzt werden. Grundsätzlich sollten Upgrades nicht ungeprüft durchgeführt werden! Zumindest an einer Referenz-Installation zunächst den Vorgang testen, bevor man mittels Skript mehrere Installationen aktualisiert.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar