Почему Ansible падает на ошибку UnicodeDecodeError из за русской переменой
Имеем Ubuntu Server 18.04 и Ansible 2.9.
Подскажите пожалуйста, отчего Ansible При выполнении playbook падает на ошибку:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 14: ordinal not in range(128)
fatal: [12.1.8.1]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 12.1.8.1 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n File \"/home/akov/.ansible/tmp/ansible-tmp-1596205388.14-29379-160714516173027/AnsiballZ_docker_container.py\", line 102, in <module>\r\n _ansiballz_main()\r\n File \"/home/akov/.ansible/tmp/ansible-tmp-1596205388.14-29379-160714516173027/AnsiballZ_docker_container.py\", line 94, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File \"/home/akov/.ansible/tmp/ansible-tmp-1596205388.14-29379-160714516173027/AnsiballZ_docker_container.py\", line 40, in invoke_module\r\n runpy.run_module(mod_name='ansible.modules.cloud.docker.docker_container', init_globals=None, run_name='__main__', alter_sys=True)\r\n File \"/usr/lib/python2.7/runpy.py\", line 188, in run_module\r\n fname, loader, pkg_name)\r\n File \"/usr/lib/python2.7/runpy.py\", line 82, in _run_module_code\r\n mod_name, mod_fname, mod_loader, pkg_name)\r\n File \"/usr/lib/python2.7/runpy.py\", line 72, in _run_code\r\n exec code in run_globals\r\n File \"/tmp/ansible_docker_container_payload_DLTPWQ/ansible_docker_container_payload.zip/ansible/modules/cloud/docker/docker_container.py\", line 3369, in <module>\r\n File \"/tmp/ansible_docker_container_payload_DLTPWQ/ansible_docker_container_payload.zip/ansible/modules/cloud/docker/docker_container.py\", line 3360, in main\r\n File \"/tmp/ansible_docker_container_payload_DLTPWQ/ansible_docker_container_payload.zip/ansible/modules/cloud/docker/docker_container.py\", line 2568, in __init__\r\n File \"/tmp/ansible_docker_container_payload_DLTPWQ/ansible_docker_container_payload.zip/ansible/modules/cloud/docker/docker_container.py\", line 2639, in present\r\n File \"/tmp/ansible_docker_container_payload_DLTPWQ/ansible_docker_container_payload.zip/ansible/modules/cloud/docker/docker_container.py\", line 2174, in has_different_configuration\r\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 14: ordinal not in range(128)\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
Сам плэйбук:
- name: Container present
docker_container:
name: ubuntu-server
state: started
image: "{{ DOCKER_REGISTRY }}/ubuntu:{{ IMAGE_VERSION }}"
restart_policy: always
ports:
- "7017:7017"
command: "{{ command }}"
env:
Some_var: "русcкий текст убийца"
volumes:
- "/opt/:/opt/"
networks:
- name: "{{ DOCKER_NET }}"
become: yes
Методом научного тыка выяснил что проблема в наличии переменной содержащей русский текст. Но неужели нельзя использовать переменные содержащие русский текст? В документации ничего такого найти не удалось.
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Очень похоже на вот этот баг. Говорят, починили 19 дней назад, и фикс выехал в 2.9.11. Попробуйте обновиться. Если не поможет, есть смысл отписаться в тикете.