Ansible: L'exécuteur de tâches utilise .format () qui a des problèmes avec les caractères

Créé le 30 déc. 2016  ·  2Commentaires  ·  Source: ansible/ansible

TYPE DE PROBLEME

  • Rapport d'erreur
NOM DU COMPOSANT

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
CONFIGURATION

rien

OS / ENVIRONNEMENT

x86_64 GNU / Linux

RÉSUMÉ

Une erreur provenant d'une boîte Linux contient le caractère \ u2018 qui semble avoir un problème d'implémentation dans python 2.x.

voir - '{0}'. format (u'Test it \ u2018s unicode implementation ')
Traceback (dernier appel le plus récent):
Déposer "", ligne 1, dans
UnicodeEncodeError: le codec 'ascii' ne peut pas encoder le caractère u '\ u2018' en position 7: ordinal pas dans la plage (128)

mais fonctionne bien en python 3.x

ÉTAPES POUR REPRODUIRE

Message provenant de la boîte Linux, \ u2018 est utilisé plusieurs fois:
fatal: [crlg.be-cloud.be]: ECHEC! => {
"échoué": vrai,
"msg": "Impossible de définir les autorisations sur les fichiers temporaires qu'Ansible doit créer en devenant un utilisateur sans privilège (rc: 1, err: chown: changement de propriétaire de '/tmp/ansible-tmp-1483137683.83-3208985635661/': opération non autorisé \ nchown: changement de propriétaire de '/tmp/ansible-tmp-1483137683.83-3208985635661/git.py': opération non autorisée \ n). Pour plus d'informations sur la manière de contourner ce problème, voir https://docs.ansible.com/ansible /become.html#becoming -un-utilisateur-sans-privilège "
}

RÉSULTATS ATTENDUS

Le message doit être affiché

RÉSULTATS ACTUELS
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": ""
}

J'ai résolu le problème en utilisant le "xxxx% s xxxx"% (res ['rc'], res ['stderr']) à la place.

affects_2.2 bug python3

Tous les 2 commentaires

Je crois que cela a été corrigé dans ce commit pour devel: bb5d8fb476c6e42f1e89b47c00e45f8b088ae40b et choisi cerise sur la branche stable-2.2 ici: 27be8a10222fbf7a7a4b51c642170e11f2823d39

Il devrait en faire la prochaine version 2.2. Si vous souhaitez le tester maintenant pour vous assurer que vous pouvez vérifier la branche stable-2.2 et essayer de l'exécuter à partir d'une caisse ou vous pouvez télécharger le ansible-2.2.1.0-0.2.rc2.tar.gz à partir d'ici: https: //releases.ansible.com/ansible/ pour l'essayer.

Je clôturerai ceci dans quelques jours, à moins que vous ne signaliez que l'un de ces problèmes pose toujours problème. Merci!

besoins_info

J'ai patché mon installation et cela fonctionne pour moi.

Merci !!

Cette page vous a été utile?
0 / 5 - 0 notes