2010-12-05 22 views
5

Soy nuevo en Capistrano y me pregunto cuál es la mejor manera de administrar la configuración de Capistrano para mi proyecto.¿Buenas prácticas para la gestión de configuración de Capistrano?

Específicamente, ¿dónde debería vivir config/deploy.rb en relación con el control de origen de mi proyecto? ¿Debo almacenar una plantilla del archivo sin información de configuración específica? ¿O debería esta configuración sentarse en su propio repositorio compartido entre el equipo?

Respuesta

2

Me pregunté sobre esto también cuando comencé a utilizar Capistrano más y más. Creo que la mayoría de nosotros estamos de acuerdo en que tiene sentido rastrear información de configuración de tiempo de ejecución información por separado desde código de función ¿verdad? Entonces, ¿no debería suceder lo mismo con la configuración de implementación ?

Supongo que puede hacer que su carpeta ./deploy/ sea un submódulo SCM. Puede hacer una tarea de rake que genere el archivo Cap en su copia de trabajo para poder guardar contraseñas eventuales y cosas fuera de la aplicación ... Incluso puede haber una gema disponible para esto.

Sin embargo he optado por un enfoque alternativo:

tengo unos diez aplicaciones diferentes, a través de los cuales la mayoría de las variables Capistrano podría seguir un patrón como set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}, y del mismo modo para el código fuente de las rutas de repositorios.

Saqué todos todos los conocimientos sobre la implementación de las aplicaciones individuales y, en su lugar, lo puse en un proyecto separado y común de "implementación". Ahora puedo comprobar que el proyecto e ir:

cap [some application] [environment] [deploy task] 

prefiero este patrón/separación de intereses mucho más que la difusión en torno Capfiles todas partes.

1

Esa es una muy buena pregunta.

Finalmente coloqué todo el material relacionado con deploy.rb en un proyecto de implementación y se vinculó allí desde los proyectos de la aplicación. En ese momento, uno estaba buscando en Webistrano porque parecía ser capaz de mantener un grupo propio de recetas. Como el proyecto no parece mantenerse, seguí el enfoque anterior.

Cuestiones relacionadas