Go ahead and open an issue on github for this, and we'll dig into it deeper. If setting the module_lang doesn't fix things, then the issue may not be on the client side.
On Tue, May 13, 2014 at 6:41 AM, Joel Sdc <[email protected]> wrote: > Hi James, > > I have tried: > > a) setting "module_lang = en_US.UTF-8" in ansible.cfg > b) editing /usr/share/pyshared/ansible/constants.py and changing: > > DEFAULT_MODULE_LANG = get_config(p, DEFAULTS, 'module_lang', > 'ANSIBLE_MODULE_LANG', 'C') > > to > > DEFAULT_MODULE_LANG = get_config(p, DEFAULTS, 'module_lang', > 'ANSIBLE_MODULE_LANG', 'en_US.UTF-8') > > > In both cases the problem persists. > > Any other ideas? > > > thanks!! > > > > On Monday, May 12, 2014 11:16:12 PM UTC+2, James Cammarata wrote: > >> Can you try setting "module_lang = en_US.UTF-8" in your ansible.cfg to >> see if that corrects the issue? >> >> >> On Mon, May 12, 2014 at 2:30 PM, Joel Sdc <[email protected]> wrote: >> >>> Hi, >>> >>> I'm having a little problem. When I run a simple playbook, on some >>> servers I get a UnicodeEncodeError and the playbook is not executed. >>> >>> I have the role "users_admin", it creates 3 groups, makes sure that 4 >>> users exist and have a specific password and set a root password if it has >>> changed. >>> >>> root@cm:/etc/ansible/roles/users_admin# tree >>> . >>> └── tasks >>> └── main.yml >>> >>> 1 directory, 1 file >>> root@cm:/etc/ansible/roles/users_admin# cat tasks/main.yml >>> --- >>> - name: Global group 'admins' >>> group: name=admins state=present gid=2000 >>> >>> - name: Global group 'support' >>> group: name=support state=present gid=2001 >>> >>> - name: Global group 'developers' >>> group: name=developers state=present gid=2002 >>> >>> - name: Common 'admin' users >>> user: name={{ item.name }} comment={{ item.gecos }} group=admins >>> state=present uid={{ item.uid }} update_password=always password={{ >>> item.passwd }} shell=/bin/bash >>> with_items: >>> - name: test1 >>> gecos: "test1" >>> uid: 2050 >>> passwd: $6$2trU.wqo$c.QAHAngzhx.i6VwGM9zGoh8KdX3e. >>> 2EAnzYf3SDdIBWZFVo4OdHQjPxVl/8wmmD6hWYnxeyMF9rLAfNMk3oa0 >>> >>> - name: test2 >>> gecos: "test2" >>> uid: 2051 >>> passwd: $6$xIKLieVe$oFdw1N/FjdPQzdMGkViaG8UMTMwGhNBKvtVxM >>> IbcDFTu3udXYtrH5un0Obmr6d9gDC66DK/dNfpP6jlESRtan/ >>> >>> - name: test3 >>> gecos: "test3" >>> uid: 2052 >>> passwd: $6$9bJs8kiu$lS.Jz.cGdx5J3s.Mw5V80GzO. >>> U6tLLMwztuDZJsAe2JjpYLCedR96fAHbHVaozv0zRUrtexErdgTYQU0o0tCh0 >>> >>> - name: test4 >>> gecos: "test4" >>> uid: 2053 >>> passwd: $6$tmUQlubJ$0HI532QrAnlTGHwJlLEuGU2/ >>> uSAr42I2Y6aEFBbPlmXborYOlmVeCl5vI.YBLo3HDTFt/mx98HXv7yMqqgifa/ >>> >>> - name: Set root password >>> user: name=root update_password=always password=$6$HqRU2uvR$ >>> 6GV6CYTbtkxpbX7POk9FGglzK3M4G8icIuEWlxnllDe4FswqsQQbIaEsbT/ >>> JhaQe9ot4pAS8A/1RDurOb1e/p. >>> >>> root@cm:/etc/ansible/roles/users_admin# >>> >>> And this is the playbook: >>> >>> root@cm:/etc/ansible/playbooks# cat test.yml >>> --- >>> - name: Common settings >>> hosts: all >>> roles: >>> - users_admin >>> root@cm:/etc/ansible/playbooks# >>> >>> When I run the playbook, It fails in a newly installed Debian 7.5: >>> >>> root@cm:/etc/ansible/playbooks# ansible-playbook test.yml >>> >>> PLAY [Common settings] ****************************** >>> ************************** >>> >>> GATHERING FACTS ****************************** >>> ********************************* >>> ok: [test] >>> >>> TASK: [users_admin | Global group 'admins'] *************** >>> ok: [test] >>> >>> TASK: [users_admin | Global group 'support'] ************** >>> ok: [test] >>> >>> TASK: [users_admin | Global group 'developers'] *********** >>> ok: [test] >>> >>> TASK: [users_admin | Common 'admin' users] **************** >>> fatal: [test] => Traceback (most recent call last): >>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line >>> 532, in _executor >>> exec_rc = self._executor_internal(host, new_stdin) >>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line >>> 660, in _executor_internal >>> complex_args=complex_args >>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line >>> 809, in _executor_internal_inner >>> module_args = template.template(self.basedir, module_args, inject, >>> fail_on_undefined=self.error_on_undefined_vars) >>> File "/usr/lib/pymodules/python2.7/ansible/utils/template.py", line >>> 321, in template >>> varname = template_from_string(basedir, varname, vars, >>> fail_on_undefined) >>> File "/usr/lib/pymodules/python2.7/ansible/utils/template.py", line >>> 543, in template_from_string >>> data = data.decode('utf-8') >>> File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode >>> return codecs.utf_8_decode(input, errors, True) >>> UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in >>> position 83: ordinal not in range(128) >>> >>> >>> FATAL: all hosts have already failed -- aborting >>> >>> PLAY RECAP ************************************************************ >>> ******** >>> to retry, use: --limit @/root/test.retry >>> >>> test : ok=4 changed=0 unreachable=1 >>> failed=0 >>> >>> root@cm:/etc/ansible/playbooks# >>> >>> Googling I found: http://mypy.pythonblogs.com/12_mypy/ >>> archive/1253_workaround_for_python_bug_ascii_codec_cant_ >>> encode_character_uxa0_in_position_111_ordinal_not_in_range128.html >>> >>> Output: >>> >>> root@test:~# python >>> Python 2.7.3 (default, Mar 13 2014, 11:03:55) >>> [GCC 4.7.2] on linux2 >>> Type "help", "copyright", "credits" or "license" for more information. >>> >>> import sys >>> >>> sys.getdefaultencoding() >>> 'ascii' >>> >>> >>> root@test:~# >>> >>> root@test:~# echo $LANG >>> en_US.UTF-8 >>> root@test:~# >>> >>> My Ansible version: >>> >>> root@cm:/etc/ansible# ansible-playbook --version >>> ansible-playbook 1.5.5 >>> root@cm:/etc/ansible# >>> >>> >>> >>> Any idea what I'm doing wrong? >>> >>> If it helps, this problem does NOT occur on every server, It could be >>> something misconfigured on the client side as the same playbook works >>> perfectly on other servers. >>> >>> Thanks in advanced. >>> >>> Best regards, >>> Joel. >>> >>> >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ansible Project" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> >>> To view this discussion on the web visit https://groups.google.com/d/ >>> msgid/ansible-project/f7e9ae39-f234-4f09-a414- >>> 2cbaba9dc8a4%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/f7e9ae39-f234-4f09-a414-2cbaba9dc8a4%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/b7edc00f-8850-4701-8ef7-a0b8bed1adb4%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/b7edc00f-8850-4701-8ef7-a0b8bed1adb4%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAMFyvFhTJXV2j2k4z8Lb7wGwOTTVMGGY2r4rQEmPtNWMhSNyNg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
