繁体   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