Automatisieren Sie das WERC -Setup auf OpenBSD.
Sowohl die Skripte setup.sh als auch unsetup.sh in ihrer neuesten verfügbaren Version (V2.1) wurden erfolgreich auf der neuesten verfügbaren OpenBSD -Stabil -Version (7.6) getestet. Vor- oder spätere Versionen von OpenBSD funktionieren möglicherweise nicht.
Durch die Durchführung eines OpenBSD -Release -Upgrades (z. B. durch Verwendung von SysupGrade (8)) kann die aktuelle Herren -Installation unterbrochen werden. Es wird empfohlen, Ihre WERC -Installation immer zu testen, nachdem entweder ein System -Upgrade, ein WERC -Update oder ein Plan9port -Update durchgeführt wurden. Wenn es nicht mehr funktioniert, gehen Sie zur Fehlerbehebung.
Derzeit GET die Installation, die aus setup.sh resultiert. Andere Arten von HTTP -Anfragen können oder nicht funktionieren (z. B. die Funktion "Benutzeranmeldung"). Die URL-basierten Regeln in /etc/httpd.conf ( location ... ) müssen möglicherweise eine andere Konfiguration benötigen, um HTTP-Anforderungen zu unterstützen, die nicht GET .
Ein markiertes Commit mit dem Tag -Namen des Formulars vN.M (wobei N und M Ganzzahlen sind) ist ein Commit, dessen Arbeitsbaum die folgenden Eigenschaften hat:
setup.sh und unsetup.sh , die gegen die neueste OpenBSD -stabile Version (zu diesem Zeitpunkt verfügbar) mit positivem Ergebnis und ohne bekannte Nebenwirkung auf das System getestet wurden.Da der Testprozess manuell ist, kann ich einige Kantenfälle übersehen, manchmal absichtlich und manchmal nicht. Ich kümmere mich um die Qualität meiner Software, aber es ist wirklich zeitaufwändig und nicht nachhaltig, jede einzelne Zeile gegen all ihre möglichen Kantenfälle zu testen.
(Bewegt nach RAT.MD.)
Hinweis : Um die ursprünglichen Konfigurationsdateien zu erhalten, die geändert werden sollen, wird das Setup -Skript durch Hinzufügen von .bk zum Ende ihres Namens unterstützt. Beispielsweise wird der ursprüngliche Inhalt von /etc/httpd.conf in /etc/httpd.conf.bk kopiert. Um die Originaldateien wiederherzustellen, benennt das Unsetup -Skript die Sicherungsdateien mit ihrem ursprünglichen Namen um und ersetzt die geänderte Version.
In der folgenden Liste beziehen sich $webdir und $p9pdir jeweils standardmäßig auf das httpd von $ /var/www von $webdir als root, standardmäßig /plan9 auf das Installationsverzeichnis von HTTPD.
/etc/httpd.conf.bk und /etc/fstab.bk ? Wenn ja, wird setup.sh wahrscheinlich überschreiben, erwägen Sie, sie umzubenennen oder zu entfernen.$webdir hinzugefügt oder geändert, die nicht verloren gehen können? Das Setup -Skript erstellt neue Dateien in $webdir , die vorhandene überschreiben können, während das Unsetup -Skript einige Verzeichnisse beseitigt, die diese Dateien löschen können. Erwägen Sie, wichtige Dateien aus $webdir zu verschieben.setup.sh noch wird es unsetup.sh reparieren. (Wenn dies der Fall ist, haben Sie nur Glück.) Je nachdem, welche Befehl (n) fehlgeschlagen sind und welche Art des Fehlers die Installation selbst manuell reparieren können. Dies ist jedoch nicht immer der Fall und es ist eine fehleranfällige Prozedur, daher wird es überhaupt nicht empfohlen. Die folgende Prozedur lädt Skripte mit dem neuesten Release -Tag herunter. Das neueste Tag, das in der URL unten gezeigt wird, wird manuell aktualisiert. Bitte prüfen Sie, ob es der aktuellen neuesten Version entspricht, bevor Sie fortfahren. Es wird (überhaupt) nicht empfohlen, Skripte aus der main auszuführen.
Die folgende Prozedur bezieht sich auf das Setup -Skript ( setup.sh ). Für das nicht einsetzende Skript ( unsetup.sh ) ist die Prozedur mit Ausnahme des Skriptnamens gleich.
Das Verfahren ist wie folgt, geschrieben sowohl in den menschlichen lesbaren Schritten als auch als Befehle:
domain (und gegebenenfalls webdir ) nach Belieben.ftp https://raw.githubusercontent.com/EdoardoLaGreca/werc-on-openbsd/v2.1/setup.sh
sha256 -q setup.sh
vi setup.sh # change domain and webdir
chmod 744 setup.sh
doas ./setup.sh Das Setup -Skript startet httpd und slowcgi nicht automatisch. Es verhält sich aus zwei Gründen so: Erstens möchten Sie möglicherweise einige endgültige Änderungen Ihrer Website vornehmen, bevor Sie sie öffentlich anzeigen. Zweitens müssen Sie Ihr System neu starten, bevor /etc/fstab den Webserver starten. Das Skript sollte eine Protokollnachricht anzeigen, wenn Sie neu starten müssen (und/oder /etc/fstab wurde geändert). Das Fehlen einer solchen Nachricht im Protokoll bedeutet, dass das Neustart nicht erforderlich ist. All dies gilt nicht für unsetup.sh .
Anstatt das gesamte Skript auszuführen, möchte man möglicherweise nur einen oder einige Teile ausführen, um zum Beispiel das Skript zu debuggen oder erneut einen Teil auszuführen, der nicht erfolgreich enden konnte. Dies zu tun ist so einfach wie die Teilnamen an das Skript als Argumente weiterzugeben. Ein Beispiel wird unten angezeigt.
./setup.sh preinst inst Obwohl die obige Zeile setup.sh verwendet, verhält sich unsetup.sh auch auf diese Weise.
Es ist eine gute Praxis, die Software auf dem neuesten Stand zu halten, sowohl neue Funktionen zu erhalten als auch vorhandene Schwachstellen zu patchen.
Bei der Verwendung von WERC müssen 4 Softwarestücke auf dem neuesten Stand gehalten werden:
httpd und slowcgi ) Sofern Sie OpenBSD's -current -Zweig nicht verwenden, werden httpd und slowcgi in der Regel auf jedem System -Upgrade aktualisiert. Sie sind ziemlich sicher und minimalistisch, daher ist es nicht wichtig, sie auf dem neuesten Stand zu halten. Diese Programme sind Teil des Quellbaums von OpenBSD, das das gesamte Betriebssystem enthält, einschließlich des Kernels, der essentiellen Bibliotheken und aller vorinstallierten Versorgungsunternehmen. Alle Software in diesem Quellbaum werden schwerwiegende Sicherheitsaudits unterzogen, deshalb sind sie so sicher.
Andererseits ist es wichtig, dass Sie Werc und Plan9port auf dem neuesten Stand halten. Führen Sie dazu die folgenden Zeilen in der Schale aus. Sie entfernen die vorhandenen Installationen von WERC und Plan9port, laden ihre aktualisierte Version herunter und installieren sie erneut.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envÜberspringen Sie diesen Abschnitt, es sei denn, Sie möchten zur Entwicklung beitragen.
Ein Testskript, nämlich test.sh , automatisiert die Tests der Setup- und Unetup -Skripte. Das Testskript enthält drei Hauptfunktionen:
init , das alle vorläufigen Aufgaben ausführtsetup , das das Setup -Skript ausführt und Informationen zu Änderungen im Dateisystem sammeltunsetup , das mit setup das gleiche entspricht, aber mit dem uneingestellten SkriptDas Verhalten des Testskripts ähnelt dem der Setup- und Unetup -Skripte: Funktionen können aufgerufen werden, indem sie als Befehlszeilenargumente angegeben werden. Es gibt jedoch einen kleinen Unterschied, dass das Ausführen des Skripts ohne Argumente nicht anders ist als das Ausführen des Skripts überhaupt nicht. Dieses Verhalten ist eine Wahl, die theoretisch unachtsame Tests verringern sollte.
Es kann passieren, dass Ihre Website nach dem Upgrade von OpenBSD nicht mehr funktioniert und nur "500 interner Serverfehler" angezeigt wird.
Während der genaue Grund für dieses Verhalten sorgfältig analysiert und verstanden werden sollte, können Sie versuchen, Werc und Plan9port zu deinstallieren und neu zu installieren. Das Verfahren ist das gleiche, als würden Sie sie aktualisieren.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envDiese Prüfsummen werden auf dem Arbeitsbaum der neuesten Version berechnet.
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
Ab V2.0 ist das Projekt jetzt unter der ISC -Lizenz anstelle von Creative Commons Zero lizenziert. Die meisten Dinge ändern sich nicht, außer den Benutzern und Mitwirkenden mehr Rechte zu geben.