web-dev-qa-db-fra.com

Exception inattendue: le nom 'basestring' n'est pas défini lors de l'appel de ansible2

J'essaie d'exécuter des commnads ansible2 ...

Quand je fais:

ansible-playbook -vvv -i my/inventory my/playbook.yml

Je reçois:

Exception inattendue: le nom 'basestring' n'est pas défini, la trace complète était:

Traceback (most recent call last):
  File "/usr/local/bin/ansible-playbook", line 85, in <module>
    sys.exit(cli.run())
  File "/usr/local/lib/python3.4/site-packages/ansible/cli/playbook.py", line 150, in run
    results = pbex.run()
  File "/usr/local/lib/python3.4/site-packages/ansible/executor/playbook_executor.py", line 87, in run
    self._tqm.load_callbacks()
  File "/usr/local/lib/python3.4/site-packages/ansible/executor/task_queue_manager.py", line 149, in load_callbacks
    Elif isinstance(self._stdout_callback, basestring):
NameError: name 'basestring' is not defined

Voici ansible --version:

ansible 2.0.0.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides

Et voici python --version

Python 3.4.3
46
code_monk

La version 2.5 ci-dessous nécessite la version Python 2.6 ou 2.7 sur l'hôte de contrôle: Control Node Configuration requise )

basestring n’est plus disponible dans Python 3. De Quoi de neuf dans Python 3. ) ==:

Le type abstrait basestring abstrait a été supprimé. Utilisez str à la place. Les types str et bytes n'ont pas assez de fonctionnalités en commun pour garantir une classe de base partagée. Le 2to3 tool (voir ci-dessous) remplace chaque occurrence de basestring par str.

74
udondan

basestring n'est pas disponible dans Python 3 .:

Cela peut être corrigé pour python 2.x et 3.x avec les éléments suivants:

try:
  basestring
except NameError:
  basestring = str
16
DickShinnery

J'ai rencontré ce problème en utilisant Python 3 avec Ansible et résolu en forçant le projet dopy et en installant dopy dans mon script ansible avec:

name: git+https://github.com/eodgooch/[email protected]#Egg=dopy.

Si vous continuez à avoir des erreurs, assurez-vous de changer le version en 0.4.0 et supprimez tous les paquets dopants en attente de votre répertoire Python site-packages.

Aussi, vous pourriez pip3 install git+https://github.com/eodgooch/[email protected]#Egg=dopy au lieu de dans votre tâche Ansible.

1
eodgooch

Remplacez basestring par str. Dans 2.x basestring est là. mais dans 3.x la chaîne de base a été remplacée par "str".

0
Dila Gurung

Le problème peut être dû à python version. Dans 2.x, basestring existe, mais dans 3.x, il a été remplacé par "str".

0
Dila Gurung