Ansible: Pelaksana tugas menggunakan .format () yang bermasalah dengan \ u2018 karakter

Dibuat pada 30 Des 2016  ·  2Komentar  ·  Sumber: ansible/ansible

JENIS MASALAH

  • Laporan Bug
NAMA KOMPONEN

ansible / plugins / action / __ init__.py

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

tidak ada

OS / LINGKUNGAN

x86_64 GNU / Linux

RINGKASAN

Kesalahan yang muncul kembali dari kotak linux berisi karakter \ u2018 yang tampaknya memiliki masalah implementasi di python 2.x.

lihat - '{0}'. format (u'Test it \ u2018s unicode Implementation ')
Traceback (panggilan terakhir terakhir):
File "", baris 1, masuk
UnicodeEncodeError: 'ascii' codec tidak dapat menyandikan karakter u '\ u2018' di posisi 7: ordinal tidak dalam jangkauan (128)

tetapi berjalan dengan baik di python 3.x

LANGKAH UNTUK REPRODUKSI

Pesan yang datang kembali dari kotak linux, \ u2018 digunakan beberapa kali:
fatal: [crlg.be-cloud.be]: GAGAL! => {
"gagal": benar,
"msg": "Gagal menyetel izin pada file sementara Ansible perlu dibuat saat menjadi pengguna yang tidak memiliki hak istimewa (rc: 1, err: chown: mengubah kepemilikan '/tmp/ansible-tmp-1483137683.83-3208985635661/': Operasi tidak diizinkan \ nchown: mengubah kepemilikan '/tmp/ansible-tmp-1483137683.83-3208985635661/git.py': Operasi tidak diizinkan \ n). Untuk informasi tentang cara mengatasinya, lihat https://docs.ansible.com/ansible /become.html#becoming -an-unprivileged-user "
}

HASIL YANG DIHARAPKAN

Pesan itu harus ditampilkan

HASIL NYATA
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": ""
}

Saya memperbaiki masalah menggunakan "xxxx% s xxxx"% (res ['rc'], res ['stderr']) sebagai gantinya.

affects_2.2 bug python3

Semua 2 komentar

Saya yakin ini telah diperbaiki dalam komit untuk pengembangan ini: bb5d8fb476c6e42f1e89b47c00e45f8b088ae40b dan dipilih secara ceri ke cabang stable-2.2 di sini: 27be8a10222fbf7a7a4b51c642170e11f2823d39

Ini harus membuatnya menjadi rilis 2.2 berikutnya. Jika Anda ingin mengujinya sekarang untuk memastikan Anda dapat keluar dari cabang stable-2.2 dan mencoba menjalankannya dari checkout atau Anda dapat mengunduh ansible-2.2.1.0-0.2.rc2.tar.gz dari sini: https: //releases.ansible.com/ansible/ untuk mencobanya.

Saya akan menutup ini dalam beberapa hari kecuali Anda melaporkan bahwa masih ada masalah dengan salah satunya. Terima kasih!

need_info

Saya menambal instalasi saya dan ini berfungsi untuk saya.

Terima kasih !!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat