Pregunta ¿Qué es exactamente un "papel" en Capistrano?


¿Cuál es el propósito y la función de los "roles" en una receta de Capistrano? Cuando miro las recetas de muestra, a menudo veo algo como esto:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true

Entonces parece una papel es básicamente un servidor donde Capistrano ejecuta comandos. Si ese es el caso, ¿por qué se llamaría un "rol" en lugar de un "host" o "servidor"?

En el ejemplo anterior, ¿cuál es la diferencia entre el :app y :web roles?

Lo que hace el :primary => true opción hacer?


76
2017-07-20 18:45


origen


Respuestas:


Las funciones le permiten escribir tareas de capistrano que solo se aplican a ciertos servidores. Esto realmente solo se aplica a implementaciones de servidores múltiples. Los roles predeterminados de "aplicación", "web" y "db" también se usan internamente, por lo que su presencia no es opcional (AFAIK)

En la muestra que proporcionó, no hay diferencia funcional.

El ": primary => true" es un atributo que permite mayor detalle en la especificación de servidores en tareas personalizadas.

Aquí hay un ejemplo de especificación de funciones en una definición de tarea:

task :migrate, :roles => :db, :only => { :primary => true } do
  # ...
end

Vea el sitio web de capistrano @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role para una explicación más extensa.


61
2017-07-20 19:28



La opción ": primary => true" indica que el servidor de la base de datos es el servidor primario. Esto es importante para cuando quiera usar replicación con MySQL, por ejemplo. Le permite crear otro servidor de base de datos reflejado que se puede usar para conmutación por error automática. También se usa para decidir en qué servidor de bases de datos se deben ejecutar las migraciones del modelo (ya que esos cambios se replicarán en los servidores de conmutación por error). Este enlace lo aclara un poco más: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration


3
2017-08-15 10:02