Utilisation de Fabric sur un périphérique Cisco: «La ligne a une autocommande non valide»


8

Je ne savais pas trop où demander cela, mais il semble que ce soit quelque chose du côté des commutateurs, alors j'ai pensé commencer par ici.

Je travaille sur un petit projet pour automatiser les mises à jour des fichiers de configuration en masse à l'aide de Fabric . J'ai tout installé et fonctionne apparemment correctement en Python et suis arrivé au point où je suis prêt à commencer à construire des tests. Cependant, toutes les commandes que j'alimente via Fabric reviennent avec l'erreur suivante:

La ligne a une autocommande non valide "/ bin / bash -l -c" X ""

X est la commande que j'essaie d'exécuter sur le commutateur. J'ai du mal à comprendre pourquoi cela échoue, peut-être que quelqu'un peut offrir une explication? Est-ce quelque chose qui doit être configuré du côté Cisco? Je teste cela sur un commutateur 3750 exécutant 12.2, je ne sais pas quels autres détails fournir.

Réponses:



7

Il s'avère donc qu'il y a un argument qui est implicite lorsque vous appelez une commande de Fabric appelée shell = True. Pour que les choses fonctionnent correctement, j'ai dû spécifier un argument shell = False .

Ainsi, par exemple, voici une commande que j'exécutais qui échouait.

def config_t():
  run("config t")

Celui qui produisait la ligne a une erreur de commande automatique non valide "/ bin / bash -l -c" config t "" . Modifiez votre commande pour inclure le shell = False

def config_t():
    run("config t", shell=False)

Tout s'est bien passé pour moi après avoir effectué ce changement. Pour plus d'informations, une section de la documentation le décrit. Documents en tissu .


5

Je ne connais pas Fabric, mais d'après l'erreur, il est clair qu'il tente d'exécuter un shell (bash) pour exécuter la commande sélectionnée. Les appareils IOS n'ont pas de "shell"; donnez simplement à la CLI la commande à exécuter.

(En d'autres termes, Fabric ne semble pas être conçu pour parler à tout ce qui n'est pas un système UNIX (tm).)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.