Ansible become_user error UnicodeEncodeError:'ascii'编解码器无法编码字符
我有问题与ansible。我想从另一个用户配置须藤:Ansible become_user error UnicodeEncodeError:'ascii'编解码器无法编码字符
hosts: testnodes
become: yes
become_user: nadya
become_method: sudo
但是,当我执行的剧本,我有一个错误:
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 617, in _execute_module self._fixup_perms2(remote_files, remote_user) 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)
fatal: [192.168.3.99]: FAILED! => { "failed": true, "msg": "Unexpected failure during module execution.", "stdout": "" }
ansible --version ansible 2.2.0.0
如果我设置become_user: root
一切都很好。
远程主机上的/ etc /须藤:
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']
。
这意味着远程系统将错误信息打印到stderr中。
就像你说的,你运行Ansible 2.2.0.0,所以你可以检查这个错误有关here是什么:
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']))
要避免错误,修正权限或使用替代方法从provided链接。
谢谢!之后,我安装了acl,一切正常。 – user265247
我敢肯定,我用英文键盘写词。我不复制这个字符串:“become_user:nadya” – user265247