Ansible: Исполнитель задачи использует .format (), у которого есть проблема с символами \ u2018.

Созданный на 30 дек. 2016  ·  2Комментарии  ·  Источник: ansible/ansible

ТИП ПРОБЛЕМЫ

  • Отчет об ошибке
КОМПОНЕНТ НАЗВАНИЕ

ansible / плагины / действие / __ init__.py

ДОСТУПНАЯ ВЕРСИЯ
ansible 2.2.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
КОНФИГУРАЦИЯ

никто

ОС / СРЕДА

x86_64 GNU / Linux

РЕЗЮМЕ

Ошибка, возвращаемая из окна linux, содержит символ \ u2018, который, похоже, имеет проблему с реализацией в python 2.x.

см. - '{0}'. формат (u'Test it \ u2018s unicode implementation ')
Отслеживание (последний вызов последний):
Файл "", строка 1, в
UnicodeEncodeError: кодек ascii не может кодировать символ u '\ u2018' в позиции 7: порядковый номер не в диапазоне (128)

но отлично работает в python 3.x

ДЕЙСТВИЯ ПО ВОСПРОИЗВЕДЕНИЮ

Сообщение, возвращаемое из окна Linux \ u2018, используется несколько раз:
фатальный: [crlg.be-cloud.be]: НЕ ВЫПОЛНЕНО! => {
"не удалось": правда,
"msg": "Не удалось установить разрешения для временных файлов, которые Ansible должен создать, когда становится непривилегированным пользователем (rc: 1, err: chown: изменение владельца '/tmp/ansible-tmp-1483137683.83-3208985635661/': операция не выполняется разрешено \ nchown: смена владельца '/tmp/ansible-tmp-1483137683.83-3208985635661/git.py': операция запрещена \ n). Для получения информации о том, как обойти это, см. https://docs.ansible.com/ansible /become.html#becoming -an-
}

ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ

Сообщение должно отображаться

ФАКТИЧЕСКИЕ РЕЗУЛЬТАТЫ
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": ""
}

Я исправил проблему, используя вместо этого "xxxx% s xxxx"% (res ['rc'], res ['stderr']).

affects_2.2 bug python3

Все 2 Комментарий

Я считаю, что это было исправлено в этой фиксации для разработки: bb5d8fb476c6e42f1e89b47c00e45f8b088ae40b и выбрано в ветку стабильного 2.2 здесь: 27be8a10222fbf7a7a4b51c642170e11f2823d39

Он должен войти в следующий выпуск 2.2. Если вы хотите протестировать его сейчас, чтобы убедиться, что можете проверить ветку stable-2.2 и попробовать запустить ее, либо вы можете загрузить ansible-2.2.1.0-0.2.rc2.tar.gz отсюда: https: //releases.ansible.com/ansible/, чтобы попробовать.

Я закрою это через несколько дней, если вы не сообщите, что проблема с одним из них все еще существует. Спасибо!

need_info

Я пропатчил свою установку, и у меня это работает.

Спасибо !!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги