Quero usar o Fabric para implantar meu código de aplicativo da web em servidores de desenvolvimento, teste e produção. Meu fabfile:
def deploy_2_dev():
deploy('dev')
def deploy_2_staging():
deploy('staging')
def deploy_2_prod():
deploy('prod')
def deploy(server):
print 'env.hosts:', env.hosts
env.hosts = [server]
print 'env.hosts:', env.hosts
Saída de amostra:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Quando eu crio uma set_hosts()
tarefa conforme mostrado nos documentos do Fabric , env.hosts é definido corretamente. No entanto, essa não é uma opção viável, nem um decorador. Passar hosts na linha de comando acabaria resultando em algum tipo de script de shell que chama o fabfile. Eu preferiria que uma única ferramenta fizesse o trabalho corretamente.
Ele diz na documentação do Fabric que 'env.hosts é simplesmente um objeto de lista Python'. Pelas minhas observações, isso simplesmente não é verdade.
Alguém pode explicar o que está acontecendo aqui? Como posso definir o host para implantar?