¿Cómo disminuir el tiempo de configuración del proyecto env?
-
03-07-2019 - |
Pregunta
En nuestro proyecto, escribimos muchos registros de aplicaciones (a veces son muy útiles) en la carpeta tmp
.
En esta carpeta tenemos directorios de componentes, como:
- api
- email2sms
- envío_programado
- facturación
- etc. Menos de 10 carpetas, en resumen.
El problema: la carpeta del nuevo componente surge con el tiempo; cada una de estas carpetas debe poder escribirse.
Por lo tanto, lleva tiempo para que todos los desarrolladores cambien cada una de estas carpetas en sus entornos locales, se necesita tiempo para modificar esas carpetas en producción.
¿Cómo se puede resolver este problema? ¿Cómo se puede automatizar este proceso (tarea de Apache Ant, propiedades de SVN, secuencia de comandos de la aplicación, que tiene que ser responsable de la tarea)?
Medio ambiente: Entornos de desarrollo - Ubuntu, Windows; producción - FreeBSD
Solución
El método rápido y sucio que he usado en la mayoría de las empresas para las que trabajo fue algo como esto:
- Coloque todo el código en un sistema de versiones (como SVN o algo así) para que todos los desarrolladores tengan una única fuente de los archivos. Obviamente ya estás haciendo esto. Hurray!
- Coloque en la raíz de ese código, un archivo llamado
setup_permissions.sh
que actualiza todo el material del entorno local. Esto puede incluir permisos, o lo que sea que necesite ejecutar. - Cada mañana, todos los programadores hacen
svn update
, que actualiza los archivos, y tambiénsetup_permissions.sh
. - Intentan ejecutar su código. Ver un problema Ejecutan
setup_permissions.sh
. - ¡Todo está bien en el mundo!
En cuanto al contenido de setup_permissions.sh
, podría ser algo como:
#/bin/sh
TMP=/tmp
mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing
Y agregue más comandos que sienta que necesita.
(Ah, y no use chmod 777
... es una idea terrible. Solo vea esto como un ejemplo.)
La clave de este enfoque es disciplina . Debe confiar en que sus programadores tienen la disciplina para ejecutar setup_permissions.sh
cuando actualicen sus entornos locales. Lo mismo ocurre con quien actualiza el sistema de producción.
También debe tener la disciplina para actualizar setup_permissions
con cualquier cambio que realice en la estructura del directorio, y cualquier cambio de permiso que necesite, en lugar de simplemente hacer los cambios manualmente en su computadora y dejarlos a eso. (Y lo mismo ocurre con todos los demás desarrolladores que realizan cambios en la estructura del directorio).
Otros consejos
el que (el programa / componente) que crea el registro debe ser responsable de hacer que los archivos de registro puedan escribirse para todos, para usar mod = 777 (todos pueden escribirse) cuando se crean los registros.
Si implementa el proceso tiene un script de instalación, también hágalo en el script.
mkdir y chmod en un simple script de shell deberían ser suficientes.