Ansible: El ejecutor de tareas usa .format () que tiene problemas con \ u2018 caracteres

Creado en 30 dic. 2016  ·  2Comentarios  ·  Fuente: ansible/ansible

TIPO DE PROBLEMA

  • Informe de error
NOMBRE DEL COMPONENTE

ansible / plugins / action / __ init__.py

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

ninguno

SO / MEDIO AMBIENTE

x86_64 GNU / Linux

RESUMEN

Un error proveniente de una caja de Linux contiene el carácter \ u2018 que parece tener un problema de implementación en Python 2.x.

ver - '{0}'. formato (u'Test it \ u2018s Unicode deployment ')
Rastreo (llamadas recientes más última):
Expediente "", línea 1, en
UnicodeEncodeError: el códec 'ascii' no puede codificar el carácter u '\ u2018' en la posición 7: el ordinal no está en el rango (128)

pero funciona bien en Python 3.x

PASOS PARA REPRODUCIR

Mensaje procedente del cuadro de Linux \ u2018 se utiliza varias veces:
fatal: [crlg.be-cloud.be]: ¡FALLADO! => {
"fallido": cierto,
"msg": "No se pudieron establecer permisos en los archivos temporales que Ansible necesita crear al convertirse en un usuario sin privilegios (rc: 1, err: chown: cambiando la propiedad de '/tmp/ansible-tmp-1483137683.83-3208985635661/': Operación no permitido \ nchown: cambio de propiedad de '/tmp/ansible-tmp-1483137683.83-3208985635661/git.py': operación no permitida \ n). Para obtener información sobre cómo solucionar este problema, consulte https://docs.ansible.com/ansible /become.html#becoming -an-un-privilegiado-usuario "
}

RESULTADOS PREVISTOS

El mensaje debe mostrarse

RESULTADOS ACTUALES
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": ""
}

Solucioné el problema usando "xxxx% s xxxx"% (res ['rc'], res ['stderr']) en su lugar.

affects_2.2 bug python3

Todos 2 comentarios

Creo que esto se solucionó en este compromiso de desarrollo: bb5d8fb476c6e42f1e89b47c00e45f8b088ae40b y se seleccionó con precisión a la rama estable-2.2 aquí: 27be8a10222fbf7a7a4b51c642170e11f2823d39

Debería llegar a la próxima versión 2.2. Si desea probarlo ahora para asegurarse de que puede verificar la rama estable-2.2 e intentar ejecutar desde una caja o puede descargar el ansible-2.2.1.0-0.2.rc2.tar.gz desde aquí: https: //releases.ansible.com/ansible/ para probarlo.

Cerraré esto en unos días a menos que informe que todavía hay un problema con uno de esos. ¡Gracias!

need_info

Parche mi instalación y esto funciona para mí.

Gracias !!

¿Fue útil esta página
0 / 5 - 0 calificaciones