簡體   English   中英

Ansible turn_user錯誤UnicodeEncodeError:“ ascii”編解碼器無法編碼字符

[英]Ansible become_user error UnicodeEncodeError: 'ascii' codec can't encode character

我有個煩惱。 我想從其他用戶配置sudo:

主機:testnode

成為:是的

成為用戶:nadya

成為方法:須藤

但是執行劇本時出現錯誤:

執行任務期間發生異常。 完整的追溯是:追溯(最近一次調用是最近的):文件“ /usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py”,行119,在運行res = self._execute()文件“ /usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py”,第490行,_execute結果= self._handler.run(task_vars = variables)文件“ /usr/lib/python2.7 /dist-packages/ansible/plugins/action/normal.py“,第33行,運行結果= merge_hash(results,self._execute_module(tmp = tmp,task_vars = task_vars))文件” /usr/lib/python2.7 / dist-packages / ansible / plugins / action / init .py“,第617行,位於_execute_module self._fixup_perms2(remote_files,remote_user)文件” /usr/lib/python2.7/dist-packages/ansible/plugins/action/ init .py“,第394行,在_fixup_perms2中,請參見https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user'.format(res ['rc'],res ['stderr ']))UnicodeEncodeError:'ascii'編解碼器無法在位置29編碼字符u'\\ u2018':序數不在范圍內(128)

致命的:[192.168.3.99]:失敗! => {“ failed”:true,“ msg”:“模塊執行期間發生意外故障。”,“ stdout”:“”}

ansible-版本ansible 2.2.0.0

如果我設置了become_user: root一切正常。

在遠程主機/ etc / sudo上:

ansible ALL=(nadya) NOPASSWD:ALL

有誰能夠幫助我? 謝謝。

線索在您的回溯輸出中:

File "/usr/lib/python2.7/dist-packages/ansible/plugins/action/init.py", line 394, 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)

基本上,這是因為Python無法解析res['rc']res['stderr']
這意味着遠程系統將一些非ascii內容打印到stderr中,作為錯誤消息。

正如您所說,您運行的是Ansible 2.2.0.0,因此您可以在這里檢查此錯誤的原因:

                raise AnsibleError('Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user'
                        ' (rc: {0}, err: {1}). For information on working around this,'
                        ' see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user'.format(res['rc'], res['stderr']))

為避免該錯誤,請修復權限或使用提供的鏈接中的變通辦法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM