Fabric: configurar hosts en v2

Creado en 14 may. 2018  ·  4Comentarios  ·  Fuente: fabric/fabric

¡Hola! ¿Es posible especificar hosts en un archivo de configuración o en el propio archivo fab?

Sé que puedo proporcionarlos a través de CLI ( -H ), pero si el fabfile está diseñado para comunicarse con un servidor específico, solo obliga al usuario a hacer cosas adicionales sin una buena razón.

La "mejor" solución que pude encontrar fue crear la conexión a mano, por ejemplo

<strong i="10">@task</strong>
def my_ls(c):
    conn = Connection('myhost')
    conn.run('ls')

pero eso parece bastante sucio ya que necesito (1) duplicarlo en todas partes y (2) hace que el argumento del contexto no tenga sentido.

Comentario más útil

De acuerdo con todo lo anterior. Realmente echo de menos la antigua configuración de env.hosts. Fue hermosamente simple.

-1 al necesitar otro archivo de configuración como invocar.yaml o lo que sea. Preferiría mucho más un parche de mono o algún tipo de enlace de importación que me permita indicar los hosts.

También me tomó un tiempo darme cuenta de que ctx.local no está presente si no se especifica ningún host :(

Todos 4 comentarios

Tengo la misma pregunta. Se me ocurrió una solución de poner conn = Connection('myhost') al comienzo del archivo fab para que se vea así:

conn = Connection('myhost')

<strong i="7">@task</strong>
def my_ls(c):
    conn.run('ls')

<strong i="8">@task</strong>
def my_cd(c):
    conn.run('cd')

....

Pero no me gusta la solución y siento que debería haber una forma de inyectar una conexión predeterminada en el contexto.

Me gustaría saber también. Sería conveniente poder poner hosts en el archivo de configuración.

Además, al no proporcionar una lista de host (con -H), el valor predeterminado es localhost. Me gustaría ver una opción para evitar este error/elevar.

De acuerdo con todo lo anterior. Realmente echo de menos la antigua configuración de env.hosts. Fue hermosamente simple.

-1 al necesitar otro archivo de configuración como invocar.yaml o lo que sea. Preferiría mucho más un parche de mono o algún tipo de enlace de importación que me permita indicar los hosts.

También me tomó un tiempo darme cuenta de que ctx.local no está presente si no se especifica ningún host :(

¡Vea el #4!

¿Fue útil esta página
0 / 5 - 0 calificaciones