Outils pour utilisateurs

Outils du site


tech:pb_encodage_fichier_ansible-lint_yamllint

Ceci est une ancienne révision du document !


Pb encodage fichier ansible-lint yamllint

Erreurs

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 824: invalid continuation byte
iconv: illegal input sequence at position 824

ansible-lint plante lors de l'analyse d'un fichier YAML

Aucune erreur avec yamllint (parce qu'il ne fait pas les includes)

ansible-lint --offline pcc/plop.yml

Analyse et solution

$ strace --trace=%file ansible-lint --offline pcc/plop.yml

stat("/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/inventory_plugins", 0x7ffc4f077930) = -1 ENOENT (No such file or directory)
stat("/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/httpapi_plugins", 0x7ffc4f077930) = -1 ENOENT (No such file or directory)
stat("/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/become_plugins", 0x7ffc4f077930) = -1 ENOENT (No such file or directory)
getcwd("/data/ansible/playbooks", 1024) = 24                                                                                                                                                                                                    getcwd("/data/ansible/playbooks", 1024) = 24
getcwd("/data/ansible/playbooks", 1024) = 24
stat("/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml", {st_mode=S_IFREG|0640, st_size=1002, ...}) = 0
openat(AT_FDCWD, "/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml", O_RDONLY|O_CLOEXEC) = 6
Traceback (most recent call last):
  File "/data/venv-ansible/lib64/python3.9/site-packages/ansible/parsing/utils/yaml.py", line 72, in from_yaml
openat(AT_FDCWD, "/data/venv-ansible/lib64/python3.9/site-packages/ansible/parsing/utils/yaml.py", O_RDONLY|O_CLOEXEC) = 6
    new_data = json.loads(data, cls=AnsibleJSONDecoder)
  File "/usr/lib64/python3.9/json/__init__.py", line 359, in loads
openat(AT_FDCWD, "/usr/lib64/python3.9/json/__init__.py", O_RDONLY|O_CLOEXEC) = 6                                                                                                                                                                   return cls(**kw).decode(s)                                                                                                                                                                                                                    File "/usr/lib64/python3.9/json/decoder.py", line 337, in decode                                                                                                                                                                              openat(AT_FDCWD, "/usr/lib64/python3.9/json/decoder.py", O_RDONLY|O_CLOEXEC) = 6
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.9/json/decoder.py", line 355, in raw_decode
openat(AT_FDCWD, "/usr/lib64/python3.9/json/decoder.py", O_RDONLY|O_CLOEXEC) = 6
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/data/venv-ansible/bin/ansible-lint", line 8, in <module>
openat(AT_FDCWD, "/data/venv-ansible/bin/ansible-lint", O_RDONLY|O_CLOEXEC) = 6
$ file /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml
/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml: ISO-8859 text
$ yamllint /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml
Traceback (most recent call last):
  File "/data/venv-ansible/bin/yamllint", line 8, in <module>
    sys.exit(run())
  File "/data/venv-ansible/lib64/python3.9/site-packages/yamllint/cli.py", line 227, in run
    prob_level = show_problems(problems, file, args_format=args.format,
  File "/data/venv-ansible/lib64/python3.9/site-packages/yamllint/cli.py", line 102, in show_problems
    for problem in problems:
  File "/data/venv-ansible/lib64/python3.9/site-packages/yamllint/linter.py", line 191, in _run
    buffer = decoder.auto_decode(buffer)
  File "/data/venv-ansible/lib64/python3.9/site-packages/yamllint/decoder.py", line 71, in auto_decode
    return stream_data.decode(encoding=detect_encoding(stream_data))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 824: invalid continuation byte

Diffing

(venv-ansible) [ansible@l12ans01 playbooks]$ diff <(cat -A /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml) <(cat /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml | sed -e 's/$/$/')
26c26
<     guest_source_file_path: 'C:\\Users\\{{ vm_pcc_user }}\\Desktop\\DM-imarrage CIE*'$
---
>     guest_source_file_path: 'C:\\Users\\{{ vm_pcc_user }}\\Desktop\\Dmarrage CIE*'$
29c29
<     vm_admin_password: "{{ vm_pcc_password }}"
\ No newline at end of file
---
>     vm_admin_password: "{{ vm_pcc_password }}"$
$ iconv -t utf-8 /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml > /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml.new                                                                                                         
iconv: illegal input sequence at position 824 

iconv -f iso-8859-15 -t utf-8 /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml > /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml.new
$ yamllint /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml.new
/data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml.new
  3:16      error    trailing spaces  (trailing-spaces)
  26:81     error    line too long (83 > 80 characters)  (line-length)
  29:47     error    no new line character at the end of file  (new-line-at-end-of-file)
ansible-lint --offline --fix all /data/ansible/roles/app1/vmrun/vm-po-configurator/create-desktop-shortcuts/tasks/main3.yml
tech/pb_encodage_fichier_ansible-lint_yamllint.1758211222.txt.gz · Dernière modification : de Jean-Baptiste

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki