Desidero utilizzare Fabric per distribuire il codice della mia app Web a server di sviluppo, gestione temporanea e produzione. Il mio 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
Output di esempio:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Quando creo set_hosts()
un'attività come mostrato nella documentazione di Fabric , env.hosts è impostato correttamente. Tuttavia, questa non è un'opzione praticabile, né è un decoratore. Il passaggio di host sulla riga di comando risulterebbe infine in una sorta di script di shell che chiama il fabfile, preferirei che un unico strumento eseguisse correttamente il lavoro.
Nei documenti di Fabric si dice che "env.hosts è semplicemente un oggetto elenco Python". Dalle mie osservazioni, questo semplicemente non è vero.
Qualcuno può spiegare cosa sta succedendo qui? Come posso impostare l'host su cui eseguire la distribuzione?