Fabric: configurando hosts na v2

Criado em 14 mai. 2018  ·  4Comentários  ·  Fonte: fabric/fabric

Oi! É possível especificar hosts em um arquivo de configuração ou no próprio arquivo fab?

Eu sei que posso fornecê-los via CLI ( -H ), mas se o fabfile for projetado para se comunicar com um servidor específico, ele apenas forçará o usuário a fazer coisas extras sem um bom motivo.

A "melhor" solução que consegui descobrir foi criar a conexão manualmente, por exemplo

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

mas isso parece bastante sujo, pois preciso (1) duplicá-lo em todos os lugares e (2) torna o argumento de contexto inútil.

Comentários muito úteis

Concordo com todos acima. Eu realmente sinto falta da configuração antiga do env.hosts. Era lindamente simples.

-1 na necessidade de outro arquivo de configuração como invoke.yaml ou outros enfeites. Eu preferiria um patch de macaco ou algum tipo de gancho de importação que me permitisse indicar os hosts.

Também demorei um pouco para descobrir que ctx.local não está presente se nenhum host for especificado :(

Todos 4 comentários

Eu tenho a mesma pergunta. Eu criei uma solução de colocar conn = Connection('myhost') no início do fabfile para que fique assim:

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')

....

Mas não gosto da solução e sinto que deveria haver uma maneira de injetar uma conexão padrão no contexto.

Eu gostaria de saber também. Seria conveniente poder colocar hosts no arquivo de configuração.

Também não fornecer uma lista de hosts (com -H) padroniza para localhost. Eu gostaria de ver uma opção para evitar este erro/aumentar.

Concordo com todos acima. Eu realmente sinto falta da configuração antiga do env.hosts. Era lindamente simples.

-1 na necessidade de outro arquivo de configuração como invoke.yaml ou outros enfeites. Eu preferiria um patch de macaco ou algum tipo de gancho de importação que me permitisse indicar os hosts.

Também demorei um pouco para descobrir que ctx.local não está presente se nenhum host for especificado :(

Veja o nº 4!

Esta página foi útil?
0 / 5 - 0 avaliações