
Soy relativamente nuevo en los temas de CD y DevOps y estoy intentando configurar implementaciones automáticas con capistrano, que funciona bien en mi entorno de prueba local adicional. Sin embargo, me pregunto cómo sería ideal configurar a los usuarios en el futuro entorno de destino.
Por ejemplo, el procedimiento de instalación de Ubuntu Tomcat configura un usuario de Tomcat(6|7) propietario del proceso de Tomcat. Sin embargo, no es posible ingresar al cuadro mediante ssh usando este usuario, y para capistrano necesita un usuario con acceso ssh para ejecutar todos los comandos. ¿Cómo resuelve la gente normalmente este problema? Por supuesto, pensé en mi propia solución, pero me interesa saber si existe una mejor práctica para esto.
Al final habrá otra parte que configurará mi entorno objetivo, pero puedo opinar al respecto, así que me gustaría saber qué quiero idealmente aquí.
Respuesta1
Hay una variedad de métodos para hacerlo, pero el mejor es configurar elsudosistema para que el usuario de implementación habilitado para SSH (que deberá configurar) pueda hacerse pasar por Tomcat o root según sea necesario para realizar implementaciones. Los directorios de código reales pueden ser propiedad de Tomcat o pueden ser propiedad del usuario de implementación con derechos establecidos para que Tomcat pueda usar los archivos.
desc "Restarts the tomcast service"
task restart_tomcat do
set :user, "deployuser"
run "sudo service tomcat restart", :roles => :tomcat_servers
end
O algo así. Si sudo requiere una contraseña, capistrano es lo suficientemente inteligente como para solicitarla.
Respuesta2
Consulte la recomendación oficial del paquete sobre cómo configurarlo. Mire cómo la distribución elegida gestiona el problema en su paquete. Puede haber algún CÓMO para la distribución o el paquete, búsquelos. Pero tenga cuidado al leer cómo se resolvió esto en alguna otra versión, a menudo sucede que la configuración y las capacidades cambian radicalmente de una versión a la siguiente (y es posible que otros paquetes de soporte también hayan cambiado).