Je souhaite utiliser Fabric pour déployer le code de mon application Web sur des serveurs de développement, de préparation et de production. Mon 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
Exemple de sortie:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Lorsque je crée une set_hosts()
tâche comme indiqué dans la documentation Fabric , env.hosts est correctement défini. Cependant, ce n'est pas une option viable, pas plus qu'un décorateur. Passer des hôtes sur la ligne de commande aboutirait finalement à une sorte de script shell qui appelle le fabfile, je préférerais qu'un seul outil fasse le travail correctement.
Il dit dans la documentation Fabric que «env.hosts est simplement un objet de liste Python». D'après mes observations, ce n'est tout simplement pas vrai.
Quelqu'un peut-il expliquer ce qui se passe ici? Comment puis-je configurer l'hôte sur lequel effectuer le déploiement?