ทำการตั้งค่า WERC โดยอัตโนมัติบน OpenBSD
ทั้งสคริปต์ setup.sh และ unsetup.sh ในเวอร์ชันล่าสุดที่มีอยู่ (v2.1) ได้รับการทดสอบสำเร็จในการเปิดตัว OpenBSD Stable Release ล่าสุด (7.6) OpenBSD เวอร์ชันก่อนหรือใหม่กว่าอาจใช้งานไม่ได้
การอัพเกรด OpenBSD Release (เช่นโดยใช้ SysUpgrade (8)) อาจทำลายการติดตั้ง WERC ปัจจุบัน ขอแนะนำให้ทดสอบการติดตั้ง WERC ของคุณเสมอหลังจากทำการอัพเกรดระบบการอัปเดต WERC หรือการอัปเดต plan9port หากหยุดทำงานให้มุ่งหน้าไปแก้ไขปัญหา
สำหรับตอนนี้การติดตั้งที่เป็นผลมาจาก setup.sh ได้รับการทดสอบด้วยการร้องขอ GET เท่านั้นซึ่งรองรับได้อย่างแน่นอน คำขอ HTTP ประเภทอื่นอาจใช้งานได้หรือไม่อาจใช้งานได้ (เช่นคุณลักษณะ "ผู้ใช้เข้าสู่ระบบ") กฎ URL-based ใน /etc/httpd.conf ( location ... ) อาจต้องมีการกำหนดค่าที่แตกต่างกันเพื่อรองรับคำขอ HTTP นอกเหนือจาก GET
การติดแท็กที่มีชื่อแท็กของแบบฟอร์ม vN.M (โดยที่ N และ M เป็นจำนวนเต็ม) คือการกระทำที่ต้นไม้ทำงานมีลักษณะดังต่อไปนี้:
setup.sh และ unsetup.sh ทดสอบกับเวอร์ชันที่เสถียรล่าสุดของ OpenBSD (มีอยู่ในเวลานั้น) ด้วยผลลัพธ์ที่เป็นบวกและไม่มีผลข้างเคียงที่ทราบกันดีในระบบเนื่องจากกระบวนการทดสอบเป็นแบบแมนนวลฉันอาจมองข้ามกรณีขอบบางครั้งโดยมีวัตถุประสงค์และบางครั้งก็ไม่ได้ ฉันใส่ใจเกี่ยวกับคุณภาพของซอฟต์แวร์ของฉัน แต่การทดสอบทุกบรรทัดกับกรณีขอบที่เป็นไปได้ทั้งหมดนั้นใช้เวลานานและไม่ยั่งยืน
(ย้ายไปที่ Rat.md. )
หมายเหตุ : เพื่อรักษาไฟล์กำหนดค่าดั้งเดิมที่จะแก้ไขสคริปต์การตั้งค่าสำรองไว้โดยการเพิ่ม .bk ไปยังจุดสิ้นสุดของชื่อ ตัวอย่างเช่นเนื้อหาต้นฉบับของ /etc/httpd.conf ถูกคัดลอกไปยัง /etc/httpd.conf.bk ในการกู้คืนไฟล์ต้นฉบับสคริปต์ UNSETUP จะเปลี่ยนชื่อไฟล์สำรองด้วยชื่อเดิมแทนที่เวอร์ชันที่เปลี่ยนแปลง
ในรายการต่อไปนี้ $webdir และ $p9pdir ตามลำดับอ้างอิงถึงไดเรกทอรีเนื้อหาเว็บของ httpd ตามค่าเริ่มต้น /var/www และไดเรกทอรีการติดตั้งของ Plan9Port ด้วย $webdir เป็นรูทโดยค่าเริ่มต้น /plan9
/etc/httpd.conf.bk และ /etc/fstab.bk มีอยู่ในระบบไฟล์ของเครื่องของคุณหรือไม่? ถ้าเป็นเช่นนั้น setup.sh อาจเขียนทับพวกเขาพิจารณาการเปลี่ยนชื่อหรือลบออก$webdir ซึ่งไม่สามารถสูญหายได้หรือไม่? สคริปต์การตั้งค่าสร้างไฟล์ใหม่ใน $webdir ซึ่งอาจเขียนทับไฟล์ที่มีอยู่ในขณะที่สคริปต์ UNSETUP จะลบไดเรกทอรีบางอย่างซึ่งอาจลบไฟล์เหล่านั้น พิจารณาย้ายไฟล์สำคัญออกจาก $webdirsetup.sh อีกครั้งหรือเรียกใช้ unsetup.sh กำลังจะซ่อมแซม (ถ้าเป็นเช่นนั้นคุณก็โชคดี) ขึ้นอยู่กับคำสั่งใดที่ล้มเหลวและประเภทของข้อผิดพลาดคุณอาจสามารถซ่อมแซมการติดตั้งด้วยตนเองได้ด้วยตนเอง อย่างไรก็ตามนี่ไม่ใช่กรณีเสมอไปและเป็นขั้นตอนข้อผิดพลาดที่เกิดขึ้นได้ง่ายดังนั้นจึงไม่ได้รับคำแนะนำเลย ขั้นตอนต่อไปนี้ดาวน์โหลดสคริปต์โดยใช้แท็กรุ่นล่าสุด แท็กล่าสุดที่แสดงใน URL ด้านล่างได้รับการอัปเดตด้วยตนเองโปรดตรวจสอบว่ามันตรงกับรุ่นล่าสุดที่แท้จริงก่อนดำเนินการต่อ ไม่แนะนำ (เลย) ให้เรียกใช้สคริปต์จากสาขา main
ขั้นตอนต่อไปนี้หมายถึงสคริปต์การตั้งค่า ( setup.sh ) สำหรับสคริปต์ที่ไม่ได้ตั้งค่า ( 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 มีการเปลี่ยนแปลงโดยสคริปต์คุณต้องรีบูตระบบของคุณก่อนที่จะเริ่มต้นเว็บเซิร์ฟเวอร์ สคริปต์ควรแสดงข้อความบันทึกหากคุณต้องการรีบูต (และ/หรือ /etc/fstab มีการเปลี่ยนแปลง) การขาดข้อความดังกล่าวในบันทึกหมายความว่าไม่จำเป็นต้องรีบูตเครื่อง ทั้งหมดนี้ใช้ไม่ได้กับ unsetup.sh
แทนที่จะเรียกใช้สคริปต์ทั้งหมดเราอาจต้องการเรียกใช้เพียงหนึ่งส่วนหรือบางส่วนเช่นดีบั๊กสคริปต์หรือเรียกใช้อีกครั้งส่วนที่ไม่สามารถยุติได้สำเร็จ การทำเช่นนั้นนั้นง่ายพอ ๆ กับการส่งชื่อชิ้นส่วนไปยังสคริปต์เป็นอาร์กิวเมนต์ ตัวอย่างแสดงด้านล่าง
./setup.sh preinst inst แม้ว่าบรรทัดด้านบนจะใช้ setup.sh แต่ unsetup.sh ก็มีพฤติกรรมด้วยวิธีนี้
มันเป็นวิธีปฏิบัติที่ดีที่จะทำให้ซอฟต์แวร์ทันสมัยทั้งสองเพื่อรับคุณสมบัติใหม่และเพื่อแก้ไขช่องโหว่ที่มีอยู่
เมื่อใช้ WERC ต้องมีซอฟต์แวร์ 4 ชิ้นได้รับการปรับปรุงให้ทันสมัย:
httpd และ slowcgi ) หากคุณไม่ได้ใช้สาขา -current ของ OpenBSD httpd และ slowcgi มักจะได้รับการปรับปรุงในการอัพเกรดทุกระบบ พวกเขาค่อนข้างปลอดภัยและเรียบง่ายดังนั้นการทำให้พวกเขาทันสมัยไม่จำเป็น โปรแกรมเหล่านี้เป็นส่วนหนึ่งของแผนผังต้นทางของ OpenBSD ซึ่งมีระบบปฏิบัติการทั้งหมดรวมถึงเคอร์เนลห้องสมุดที่จำเป็นและสาธารณูปโภคที่ติดตั้งไว้ล่วงหน้าทั้งหมด ซอฟต์แวร์ทั้งหมดในแผนผังต้นทางนั้นผ่านการตรวจสอบความปลอดภัยอย่างรุนแรงนั่นคือสาเหตุที่พวกเขามีความปลอดภัย
ในทางกลับกันสิ่งสำคัญคือการรักษา WERC และ Plan9port ให้ทันสมัย หากต้องการทำเช่นนั้นให้เรียกใช้บรรทัดต่อไปนี้ในเปลือก พวกเขาลบการติดตั้ง WERC และ plan9port ที่มีอยู่ดาวน์โหลดเวอร์ชันที่อัปเดตแล้วและติดตั้งอีกครั้ง
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envหากคุณไม่ต้องการมีส่วนร่วมในการพัฒนาให้ข้ามส่วนนี้
สคริปต์ทดสอบคือ test.sh , ทำการทดสอบสคริปต์การตั้งค่าและ unsetup โดยอัตโนมัติ สคริปต์ทดสอบมีสามฟังก์ชั่นหลัก:
init ซึ่งดำเนินงานเบื้องต้นทั้งหมดsetup ซึ่งเรียกใช้สคริปต์การตั้งค่าและรวบรวมข้อมูลเกี่ยวกับการเปลี่ยนแปลงในระบบไฟล์unsetup ซึ่งเหมือนกับ setup แต่ด้วยสคริปต์ Unsetupพฤติกรรมของสคริปต์ทดสอบนั้นคล้ายคลึงกับสคริปต์การตั้งค่าและการไม่เปิดเผย: ฟังก์ชั่นสามารถเรียกได้โดยระบุว่าเป็นอาร์กิวเมนต์บรรทัดคำสั่ง อย่างไรก็ตามมีความแตกต่างเพียงเล็กน้อยซึ่งก็คือการเรียกใช้สคริปต์โดยไม่มีข้อโต้แย้งไม่แตกต่างจากการไม่เรียกใช้สคริปต์เลย พฤติกรรมนี้เป็นตัวเลือกที่ในทางทฤษฎีควรลดการทดสอบที่ประมาท
อาจเกิดขึ้นได้หลังจากอัพเกรด OpenBSD เว็บไซต์ของคุณหยุดทำงานและแสดงเฉพาะ "ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500"
ในขณะที่เหตุผลที่แน่นอนที่อยู่เบื้องหลังพฤติกรรมนี้ควรได้รับการวิเคราะห์และเข้าใจอย่างรอบคอบคุณอาจลองถอนการติดตั้งและติดตั้ง WERC และ Plan9Port อีกครั้ง ขั้นตอนนั้นเหมือนกับว่าคุณจะอัปเดต
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envการตรวจสอบเหล่านี้คำนวณจากต้นไม้ทำงานของรุ่นล่าสุด
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
เริ่มต้นจาก v2.0 โครงการได้รับใบอนุญาตภายใต้ใบอนุญาต ISC แทนที่จะเป็น Creative Commons Zero สิ่งส่วนใหญ่ไม่เปลี่ยนแปลงยกเว้นการให้สิทธิ์แก่ผู้ใช้และผู้มีส่วนร่วมมากขึ้น