Usei uma máquina Fedora 39 para gerenciar uma máquina Fedora 39, com um playbook Ansible. Isso funcionou bem.
Tentei usar o Ubuntu 22.04 para executar o mesmo manual, visando a mesma máquina Fedora 39. Falhou. Por que falhou?
TASK [Gathering Facts] ***************************************************************************************************************
fatal: [alan-laptop]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"failed": true, "module_stderr": "Shared connection to alan-laptop closed.
", "module_stdout": "
Traceback (most recent call last):
File \"/home/alan-sysop/.ansible/tmp/ansible-tmp-1716281784.2385828-132440-85599417152925/AnsiballZ_setup.py\", line 102, in <module>
_ansiballz_main()
File \"/home/alan-sysop/.ansible/tmp/ansible-tmp-1716281784.2385828-132440-85599417152925/AnsiballZ_setup.py\", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File \"/home/alan-sysop/.ansible/tmp/ansible-tmp-1716281784.2385828-132440-85599417152925/AnsiballZ_setup.py\", line 37, in invoke_module
from ansible.module_utils import basic
File \"/tmp/ansible_ansible.legacy.setup_payload_0vjz3har/ansible_ansible.legacy.setup_payload.zip/ansible/module_utils/basic.py\", line 176, in <module>
ModuleNotFoundError: No module named 'ansible.module_utils.six.moves'
", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "The following modules failed to execute: ansible.legacy.setup"}
Meu pacote Ansible é a versão 2.10.7+merged+base+2.10.8+dfsg-1ubuntu0.1~esm1.
O Fedora 39 usa Python 3.12. Diz-se que isso é muito novo (?) Para esta versão do Ansible.
De qualquer forma, não espero que a versão do Ansible incluída no Ubuntu 22.04 seja corrigida.
O erro pode ser evitado usando uma versão mais recente do Ansible, por exemplo
ansible-core
2.16.6-1ppa~jammy do Ansible PPA para Ubuntu. Veja também a NOTA abaixo.Crédito: tkn na comunidade Ubuntu MATE
ansible-core
2.16 oferece suporte às versões 3.6-3.12 do python no nó de destino, de acordo com a matriz de suporte do ansible-core .Ele também suporta python2 versão 2.7. Portanto, também pode ser possível usar python2. (Instale python2 e defina ansible_python_interpreter="/usr/bin/python2").
NOTA: Eu estava usando uma versão do Ansible dos repositórios Ubuntu ESM. Se você tiver os repositórios Ubuntu ESM habilitados, as instruções padrão para instalar o Ansible do Ansible PPA para Ubuntu não farão nada. Depois de habilitar o PPA, usei Pacote> "Forçar versão" no
synaptic
gerenciador gráfico de pacotes. Como alternativa, você pode encontrar o número da versão mais recente e instalá-lo especificamente, usandoapt-cache search ansible
eapt install ansible=$VERSION
. Não sei se isso permitirá que futuras atualizações do Ansible sejam instaladas automaticamente.