在OpenBSD上自動化WERC設置。
在最新的可用版本(v2.1)中, setup.sh和unsetup.sh腳本都已在最新的可用OpenBSD穩定版本(7.6)中成功測試。 openBSD的先前或更高版本可能不起作用。
執行OpenBSD釋放升級(例如,使用Sysupgrade(8))可能會破壞當前的WERC安裝。建議在執行系統升級,WERC更新或Plan9Port更新後,始終測試WERC安裝。如果停止工作,請進行故障排除。
目前, setup.sh產生的安裝僅通過GET請求進行了測試,該請求肯定支持。其他類型的HTTP請求可能會或可能不起作用(例如“用戶登錄”功能)。 /etc/httpd.conf ( location ... )中的基於URL的規則可能需要其他GET來支持HTTP請求。
帶有標籤的vN.M ( N和M是整數)的標籤名稱,是一個提交,其工作樹具有以下特徵:
setup.sh和unsetup.sh ,對最新的OpenBSD穩定版本(當時可用)進行了測試,並具有積極的結果,並且對系統沒有已知的副作用。由於測試過程是手動的,因此我可能會忽略某些邊緣案例,有時是故意而不是。我關心軟件的質量,但是測試每一條線可能會對所有可能的邊緣案例進行測試確實很耗時且不可持續。
(移至Rat.Md。)
注意:要保留要修改的原始配置文件,設置腳本通過將.bk添加到其名稱的末尾來支持它們。例如, /etc/httpd.conf的原始內容被複製到/etc/httpd.conf.bk 。要恢復原始文件,Unsetup腳本用其原始名稱重命名了備份文件,以替換更改的版本。
在下面的列表中, $webdir和$p9pdir分別指httpd的Web內容目錄,默認情況下/var/www和Plan9port的安裝目錄,均以$webdir為root,默認情況下/plan9 。
/etc/httpd.conf.bk和/etc/fstab.bk是否已經存在於計算機的文件系統中?如果是這樣, setup.sh可能會覆蓋它們,請考慮重命名或刪除它們。$webdir中添加或更改文件?設置腳本在$webdir中創建新文件,該文件可能會覆蓋現有文件,而Unsotup腳本刪除了一些可能刪除這些文件的目錄。考慮將重要文件從$webdir移出。setup.sh ,也不會運行unsetup.sh 。 (如果確實如此,您就是幸運的。)根據哪種命令失敗和錯誤類型,您可以自己手動修復安裝。但是,情況並非總是如此,這是一個容易出錯的過程,因此根本不建議這樣做。以下過程使用最新版本標籤下載腳本。下面的URL中顯示的最新標籤是手動更新的,請檢查它是否匹配在繼續操作之前的最新版本。不建議(完全)從main分支運行腳本。
以下過程是指設置腳本( setup.sh )。對於UNSETUP腳本( unsetup.sh ),除腳本名稱外,該過程相同。
該過程如下所示,以人類可讀步驟和命令為書面:
domain變量(和webdir時)。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設置腳本不會自動啟動httpd和slowcgi 。它的行為是有兩個原因的:首先,您可能需要在公開展示之前對網站進行一些最終更改;其次,如果/etc/fstab已通過腳本更改,則需要在啟動Web服務器之前重新啟動系統。如果您需要重新啟動(和/或/etc/fstab已更改),則該腳本應顯示日誌消息。日誌中沒有此類消息意味著不需要重新啟動。所有這些都不適用於unsetup.sh 。
一個人可能只想運行整個腳本,而是只想運行一個或幾個部分,例如調試腳本或再次運行無法成功終止的部分。這樣做就像將零件名稱傳遞給腳本一樣簡單。一個示例如下所示。
./setup.sh preinst inst儘管上面的行使用setup.sh ,但是unsetup.sh也以這種方式行事。
最好保持軟件的最新狀態,既可以接收新功能又可以修補現有漏洞。
使用WERC時,需要保持4件軟件的最新信息:
httpd和slowcgi )除非您使用OpenBSD的-current分支,否則通常會在每個系統升級上更新httpd和slowcgi 。它們非常安全和極簡主義,因此將其保持最新不是必不可少的。這些程序是OpenBSD的源樹的一部分,該源樹包含整個操作系統,包括其內核,必需庫和所有預裝的實用程序。該源樹中的所有軟件均經過嚴重的安全審核,這就是為什麼它們如此安全的原因。
另一方面,保持WERC和PLAN9PORT的最新狀態很重要。為此,請在外殼中運行以下行。他們刪除了現有的WERC和PLAN9PORT安裝,下載其更新版本,然後再次安裝。
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9env除非您想為開發做出貢獻,否則請跳過本節。
一個測試腳本,即test.sh ,自動化設置和未設置腳本的測試。測試腳本包含三個主要功能:
init ,執行所有初步任務setup ,運行設置腳本並收集有關文件系統更改的信息unsetup ,與setup相同,但帶有Unsotup腳本測試腳本的行為類似於設置和Unsotup腳本的行為:函數可以通過將其指定為命令行參數來調用。但是,有一個很小的區別,那就是在沒有參數的情況下運行腳本與根本不運行腳本沒有什麼不同。從理論上講,這種行為是一種選擇,應減少粗心的測試。
升級OpenBSD後,您的網站停止工作,並且僅顯示“ 500內部服務器錯誤”。
儘管應仔細分析和理解這種行為背後的確切原因,但您可以嘗試卸載和重新安裝WERC和PLAN9PORT。該過程與您要更新它們一樣。
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9env這些校驗和在最新版本的工作樹上計算。
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
從v2.0開始,該項目現在是根據ISC許可證獲得許可的,而不是創意共享零。大多數事情不會改變,除了賦予用戶和貢獻者更多的權利。