Automatice la configuración de WERC en OpenBSD.
Tanto los scripts setup.sh como unsetup.sh , en su última versión disponible (v2.1), se han probado con éxito en la última versión estable de OpenBSD disponible (7.6). Las versiones anteriores o posteriores de OpenBSD pueden no funcionar.
Realizar una actualización de lanzamiento de OpenBSD (por ejemplo, mediante el uso de Sysupgrade (8)) puede romper la instalación actual de WERC. Se recomienda probar siempre su instalación de WERC después de realizar una actualización del sistema, una actualización de WERC o una actualización de Plan9port. Si deja de funcionar, diríjase a la solución de problemas.
Por ahora, la instalación resultante de setup.sh solo se ha probado con solicitudes GET , que admite con seguridad. Otros tipos de solicitudes HTTP pueden o no funcionar (por ejemplo, la función de "inicio de sesión del usuario"). Las reglas basadas en URL en /etc/httpd.conf ( location ... ) pueden necesitar una configuración diferente para admitir solicitudes HTTP que no GET .
Una confirmación etiquetada con el nombre de la etiqueta del formulario vN.M (donde N y M son enteros), es un comité cuyo árbol de trabajo tiene las siguientes características:
setup.sh y unsetup.sh , probado contra la última versión estable de OpenBSD (disponible en ese momento) con un resultado positivo y sin efecto secundario conocido en el sistema.Dado que el proceso de prueba es manual, puedo pasar por alto algunos casos de borde, a veces a propósito y a veces no. Me importa la calidad de mi software, pero probar cada línea contra todos sus posibles casos de borde es realmente lento e insostenible.
(Se mudó a Rat.Md.)
Nota : Para preservar los archivos de configuración originales que se modificarán, el script de configuración los respalda agregando .bk al final de su nombre. Por ejemplo, el contenido original de /etc/httpd.conf se copia a /etc/httpd.conf.bk . Para restaurar los archivos originales, el script UnsetUp renombra los archivos de copia de seguridad con su nombre original, reemplazando la versión cambiada.
En la siguiente lista, $webdir y $p9pdir se refieren respectivamente al directorio de contenido web de httpd , por defecto /var/www , y el directorio de instalación de Plan9port con $webdir como root, por defecto /plan9 .
/etc/httpd.conf.bk y /etc/fstab.bk ya existen en el sistema de archivos de su máquina? Si es así, setup.sh probablemente los sobrescribirá, considere cambiar el nombre o eliminarlos.$webdir que no se pueden perder? El script de configuración crea nuevos archivos en $webdir que pueden sobrescribir los existentes, mientras que el script Unsetup elimina algunos directorios que pueden eliminar esos archivos. Considere mover archivos importantes de $webdir .setup.sh nuevamente, ni ejecutar unsetup.sh , la reparará. (Si lo hizo, tiene suerte). Dependiendo de qué comandos fallaran y el tipo de error, es posible que pueda reparar manualmente la instalación usted mismo. Sin embargo, este no es siempre el caso y es un procedimiento propenso a errores, por lo que no se recomienda en absoluto. El siguiente procedimiento descarga scripts utilizando la última etiqueta de lanzamiento. La última etiqueta que se muestra en la URL a continuación se actualiza manualmente, verifique que coincida con la última versión real antes de continuar. No se recomienda (en absoluto) ejecutar scripts desde la rama main .
El siguiente procedimiento se refiere al script de configuración ( setup.sh ). Para el script no-setup ( unsetup.sh ), el procedimiento es el mismo excepto el nombre del script.
El procedimiento es el siguiente, escrito tanto en pasos legibles por humanos como en los comandos:
domain (y webdir , si es necesario) a voluntad.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 El script de configuración no inicia automáticamente httpd y slowcgi . Se comporta así por dos razones: en primer lugar, es posible que desee hacer algunos cambios finales en su sitio web antes de mostrarlo públicamente; En segundo lugar, el script ha cambiado si /etc/fstab , debe reiniciar su sistema antes de comenzar el servidor web. El script debe mostrar un mensaje de registro si necesita reiniciar (y/o /etc/fstab ha cambiado). La ausencia de dicho mensaje en el registro significa que no es necesario reiniciar. Todo esto no se aplica a unsetup.sh .
En lugar de ejecutar todo el script, uno podría querer ejecutar solo una o algunas partes para, por ejemplo, depurar el script o volver a ejecutar una parte que no podría terminar con éxito. Hacerlo es tan simple como pasar los nombres de las piezas al guión como argumentos. Un ejemplo se muestra a continuación.
./setup.sh preinst inst Aunque la línea anterior usa setup.sh , unsetup.sh también se comporta de esta manera.
Es una buena práctica mantener el software actualizado, tanto para recibir nuevas funciones como para parchar las vulnerabilidades existentes.
Cuando se usa WERC, se deben mantener 4 piezas de software:
httpd y slowcgi ) A menos que esté utilizando la rama de -current , httpd y slowcgi generalmente se actualizan en cada actualización del sistema. Son bastante seguros y minimalistas, por lo que mantenerlos actualizados no es esencial. Estos programas forman parte del árbol fuente de OpenBSD que contiene todo el sistema operativo, incluida su núcleo, bibliotecas esenciales y todas las utilidades preinstaladas. Todo el software en ese árbol fuente sufre auditorías de seguridad severas, por eso son tan seguros.
Por otro lado, es importante mantener actualizados a WERC y Plan9Port. Para hacerlo, ejecute las siguientes líneas en la carcasa. Eliminan las instalaciones existentes de WERC y Plan9port, descargan su versión actualizada e instala nuevamente.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envA menos que desee contribuir al desarrollo, omita esta sección.
Un script de prueba, a saber, test.sh , automatiza la prueba de los scripts de configuración y unión. El script de prueba contiene tres funciones principales:
init , que realiza todas las tareas preliminaressetup , que ejecuta el script de configuración y recopila información sobre los cambios en el sistema de archivosunsetup , que es lo mismo que setup pero con el script de unsetupEl comportamiento del script de prueba es similar al de los scripts de configuración y unsetup: se pueden llamar a las funciones especificándolas como argumentos de línea de comandos. Sin embargo, hay una pequeña diferencia, que es que ejecutar el script sin argumentos no es diferente de no ejecutar el script en absoluto. Este comportamiento es una elección que, en teoría, debería reducir las pruebas descuidadas.
Puede suceder que, después de actualizar OpenBSD, su sitio web deje de funcionar y solo muestra "500 error de servidor interno".
Si bien la razón exacta detrás de este comportamiento debe analizarse y entenderse cuidadosamente, puede intentar desinstalar y reinstalar WERC y Plan9port. El procedimiento es el mismo que si tuviera que actualizarlos.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envEstas sumas de verificación se calculan en el árbol de trabajo de la última versión.
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
A partir de V2.0, el proyecto ahora tiene licencia bajo la licencia ISC, en lugar de Creative Commons Zero. La mayoría de las cosas no cambian, excepto para dar a los usuarios y contribuyentes más derechos.