it-swarm.com.de

Unerwartete Ausnahme: Beim Aufrufen von ansible2 ist der Name 'basestring' nicht definiert

Ich versuche ansible2 Commnads auszuführen ...

Wenn ich mache:

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

Ich bekomme:

Unerwartete Ausnahme: Name 'Basiszeichenfolge' ist nicht definiert. Der vollständige Traceback lautete:

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

Hier ist ansible --version:

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

Und hier ist python --version

Python 3.4.3
46
code_monk

Für Ansible unter Version 2.5 ist Python 2.6 oder 2.7 auf dem Steuerhost erforderlich: Control Node Requirements

basestring ist nicht mehr verfügbar in Python 3. Ab What's New In Python 3. :

Der eingebaute abstrakte Typ basestring wurde entfernt. Verwenden Sie stattdessen str. Die Typen str und bytes haben nicht genügend gemeinsame Funktionen, um eine gemeinsam genutzte Basisklasse zu rechtfertigen. Das 2to3 tool (siehe unten) ersetzt jedes Vorkommen von basestring durch str.

74
udondan

basestring ist nicht verfügbar in Python 3 .:

Dies kann für python 2.x und 3.x folgendermaßen behoben werden:

try:
  basestring
except NameError:
  basestring = str
16
DickShinnery

Ich bin auf dieses Problem mit Python 3 with Ansible gestoßen und habe es gelöst, indem ich das Dopy-Projekt gegabelt habe und Dopy in meinem Ansible-Skript installiert habe mit:

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

Wenn weiterhin Fehler auftreten, müssen Sie version in 0.4.0 Ändern und alle verbliebenen Dopy-Pakete aus Ihrem Verzeichnis Python site-packages) entfernen.

Sie können auch pip3 install git+https://github.com/eodgooch/[email protected]#Egg=dopy Anstelle Ihrer Ansible-Aufgabe verwenden.

1
eodgooch

Ersetzen Sie den Basisring durch str. In 2.x ist basestring dabei. aber in 3.x wurde der Basisstring durch "str" ​​ersetzt.

0
Dila Gurung

Das Problem könnte an der python version liegen. In 2.x ist basestring vorhanden, aber in 3.x wurde es durch "str" ​​ersetzt.

0
Dila Gurung