Pas de hôtes trouvé: Tissu
lorsque j'exécute mon code python, il est demandé à l'hôte.
Pas de hôtes trouvé. Veuillez préciser (unique) de l'hôte de la chaîne de connexion:
J'ai le code suivant:
from fabric.api import *
from fabric.contrib.console import confirm
env.hosts = [ 'ipaddress' ]
def remoteRun():
print "ENV %s" %(env.hosts)
out = run('uname -r')
print "Output %s"%(out)
remoteRun();
J'ai même essayé de courir fab avec l'option-H et j'obtiens le même message. Je suis sous Ubuntu 10.10 toute aide est appréciée. Btw, je suis un débutant en Python.
ci-dessous a fourni une réponse correcte. Dernière remoteRun() dans le script doit être supprimé.
OriginalL'auteur bonzi | 2011-04-03
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas exactement sûr de ce que
remoteRun();
est censé faire dans votre exemple.Fait-il partie de votre fabfile ou est-ce votre terminal de commande pour appeler le script?
La façon correcte serait une commande de ce type dans votre shell:
fab remoteRun
Généralement, il est préférable de spécifier le béton héberge votre commande est censé fonctionner comme ça:
Vous pouvez l'exécuter comme ce à partir d'un terminal (en supposant que vous êtes dans le répertoire qui contient votre fabfile):
Comme alternative, vous pouvez spécifier l'hôte avec le paramètre-H:
Si vous avez une liste d'hôtes vous voulez invoquer la commande pour, faire comme ceci:
http://readthedocs.org/docs/fabric/latest/usage/execution.html
Ajusté à votre exemple:
Et appelé via:
fab remoteRun
De cette façon, le
remoteRun
est effectuée sur tous les hôtesenv.hosts
.OriginalL'auteur arie
Si c'est seulement un hôte, vous pouvez utiliser
env.host_string = 'somehost or ipaddress'
.Vous n'avez pas besoin de la
;
à la fin de votreremoteRun
.OriginalL'auteur Colin Wood
Afin d'obtenir hôtes à travailler dans un script à l'extérieur de la fab outil de ligne de commande et fabfile.py, vous aurez à utiliser execute():
M'a fallu un certain temps pour trouver ce que je suis surpris qu'il n'est pas plus upvoted, j'ai pensé que plus de gens seraient vouloir appeler un tissu de commande à partir d'un autre script python.
OriginalL'auteur Gringo Suave
@Nerdatastic est droit, pour la simple: ne pas utiliser env.des hôtes, l'utilisation env.host_string à la place. par exemple,
et en cours d'exécution
$ fab setup_db_server
va exécuter le script sur le serveur cible.host_string
travail, mais pashosts
?OriginalL'auteur Siwei Shen 申思维
Nerdatastic est droit, vous devez spécifier l'env.host_string fait de tissu de savoir ce que l'hôte de la chaîne à utiliser. Je suis tombé sur ce problème en essayant d'utiliser une sous-classe de la Tâche et d'appeler la méthode run (). Il semblait ignorer env.les hôtes sauf lors de l'utilisation de l'exécuter à partir du tissu.tâches dans la version 1.3.
OriginalL'auteur Edvinas
j'ai le même problème.
Je pense que c'est un bug. Parce que tout travail avant aujourd'hui.
- Je stocker mes env .fabricrc.
Maintenant j'ai le même message que le vôtre. Je ne sais pas pourquoi.
OriginalL'auteur Igor A. Melekhine