Ansible: Der Task-Executor verwendet .format (), bei dem Probleme mit \ u2018-Zeichen auftreten

Erstellt am 30. Dez. 2016  ·  2Kommentare  ·  Quelle: ansible/ansible

AUSGABETYP

  • Fehlerbericht
KOMPONENTENNAME

ansible / plugins / action / __ init__.py

ANSIBLE VERSION
ansible 2.2.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
AUFBAU

keiner

OS / UMWELT

x86_64 GNU / Linux

ZUSAMMENFASSUNG

Ein Fehler, der von einer Linux-Box zurückkommt, enthält das Zeichen \ u2018, das anscheinend ein Implementierungsproblem in Python 2.x aufweist.

siehe - '{0}'. Format (u'Test it \ u2018s Unicode-Implementierung ')
Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
UnicodeEncodeError: Der Codec 'ascii' kann das Zeichen u '\ u2018' in Position 7 nicht codieren: Ordnungszahl nicht im Bereich (128)

aber laufen Sie gut in Python 3.x.

SCHRITTE ZUM REPRODUZIEREN

Die von der Linux-Box zurückkommende Nachricht \ u2018 wird mehrmals verwendet:
tödlich: [crlg.be-cloud.be]: FEHLGESCHLAGEN! => {
"fehlgeschlagen": wahr,
"msg": "Fehler beim Festlegen der Berechtigungen für die temporären Dateien, die Ansible erstellen muss, wenn er ein nicht privilegierter Benutzer wird (rc: 1, err: chown: Eigentümerwechsel von '/tmp/ansible-tmp-1483137683.83-3208985635661/': Vorgang nicht erlaubt \ nchown: Eigentümerwechsel von '/tmp/ansible-tmp-1483137683.83-3208985635661/git.py': Vorgang nicht erlaubt \ n) Informationen zur Umgehung dieses Problems finden Sie unter https://docs.ansible.com/ansible /become.html#becoming -an-unprivileged-user "
}}

ERWARTETE ERGEBNISSE

Die Nachricht sollte angezeigt werden

TATSÄCHLICHE ERGEBNISSE
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 119, in run
    res = self._execute()
  File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 490, in _execute
    result = self._handler.run(task_vars=variables)
  File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/normal.py", line 33, in run
    results = merge_hash(results, self._execute_module(tmp=tmp, task_vars=task_vars))
  File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/__init__.py", line 618, in _execute_module
    self._fixup_perms2(remote_files, remote_user)
  File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/__init__.py", line 395, in _fixup_perms2
    ' see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user'.format(res['rc'], res['stderr']))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 29: ordinal not in range(128)

fatal: [crlg.be-cloud.be]: FAILED! => {
    "failed": true, 
    "msg": "Unexpected failure during module execution.", 
    "stdout": ""
}

Ich habe das Problem behoben, indem ich stattdessen "xxxx% s xxxx"% (res ['rc'], res ['stderr']) verwendet habe.

affects_2.2 bug python3

Alle 2 Kommentare

Ich glaube, dies wurde in diesem Commit behoben, um Folgendes zu entwickeln: bb5d8fb476c6e42f1e89b47c00e45f8b088ae40b und hier in den Stable-2.2-Zweig gepflückt: 27be8a10222fbf7a7a4b51c642170e11f2823d39

Es sollte es in die nächste Version 2.2 schaffen. Wenn Sie es jetzt testen möchten, um sicherzustellen, dass Sie den Stable-2.2-Zweig auschecken und versuchen können, an einer Kasse zu arbeiten, oder wenn Sie ansible-2.2.1.0-0.2.rc2.tar.gz von hier herunterladen können: https: //releases.ansible.com/ansible/ , um es auszuprobieren.

Ich werde dies in ein paar Tagen schließen, es sei denn, Sie berichten, dass es bei einem dieser Probleme immer noch ein Problem gibt. Vielen Dank!

braucht_info

Ich habe meine Installation gepatcht und das funktioniert bei mir.

Vielen Dank !!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen