¿La gente comete su capistrano deploy.rb y recetas a su scm privado?

Perdón por la pregunta más bien tonta, pero ¿las personas envían sus files de Capistrano (Capfile, deploy.rb, multisite> config / deploy / *) a sus repositorys de scm privados?

¿Hay alguna mejor práctica o estándar que las personas sigan? ¿Qué sigues?

Gracias.

La mejor práctica es "sí", comprometer su deploy.rb, pero no comprometer ningún file que contenga passwords, api_keys u otros datos privados, sino crear esas templates de files, por ejemplo, en database.yml confirmar el file con el nombre de la database. puerto, nombre de usuario, pero algo así como

 password: <db_password> 

para crear un file de plantilla

Obviamente, si su proyecto está en un repository público como GitHub, entonces tiene razón. Pero si su SCM es privado, como usted dice, debe tratarlo como cualquier otro recurso seguro. Las passwords y las keys son más que "cualquier otro recurso seguro"; deben ser altamente seguras.

Para un sistema totalmente autoconfigurable, cree tareas capistrano (o tal vez rake) que lean un file local cuidadosamente controlado (tal vez YAML) que tenga varias passwords o keys, y una vez implementados los files comprometidos, escriba las passwords en las templates.

Si las passwords o los formattings de los files de configuration no cambian mucho, puede usar la tarea cap: setup, luego agregar manualmente las passwords, dejarlas en el directory app / shanetworking / config y hacer que capistrano cree un enlace simbólico en el tree fuente en deployment.

En lo que respecta a la implementación, esto es algo que solo debería realizar un usuario con gran privilegio (especialmente a la producción). Esta práctica le permite hacer que las passwords y otros datos confidenciales solo sean visibles para los usuarios a quienes se les haya otorgado acceso a un server determinado.

Ryan Bates hizo algunos buenos RailsCasts en estrategias como esta, echa un vistazo a algunos de estos episodios . Tenga en count que muchos RailsCasts ya no son gratuitos, pero por $ 9 / mes, ¡esto bien lo vale!