Al ejecutar ansible ping en un host remoto con Ubuntu 24.04 (Python 3.12), aparece el error:
ansible all -m ping -i inventory.ini
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ModuleNotFoundError: No module named 'ansible.module_utils.six.moves'
10.10.0.9 | FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 10.10.0.9 closed.\r\n",
"module_stdout": "Traceback (most recent call last):\r\n File \"/home/ansible/.ansible/tmp/ansible-tmp-1754867526.6967497-3028028-37007299920880/AnsiballZ_ping.py\", line 102, in <module>\r\n _ansiballz_main()\r\n File \"/home/ansible/.ansible/tmp/ansible-tmp-1754867526.6967497-3028028-37007299920880/AnsiballZ_ping.py\", line 94, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File \"/home/ansible/.ansible/tmp/ansible-tmp-1754867526.6967497-3028028-37007299920880/AnsiballZ_ping.py\", line 37, in invoke_module\r\n from ansible.module_utils import basic\r\n File \"/tmp/ansible_ping_payload_02mw2yq8/ansible_ping_payload.zip/ansible/module_utils/basic.py\", line 176, in <module>\r\nModuleNotFoundError: No module named 'ansible.module_utils.six.moves'\r\n",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
Esto ocurre porque:
-
Ansible 2.16.3 no es totalmente compatible con Python 3.12.
-
Ubuntu 24.04 bloquea la instalación global de paquetes Python (
externally-managed-environment).
🛠 Causas del Error
| Componente | Problema |
|---|---|
| Python 3.12 | Cambios internos en paquetes (como six) rompen compatibilidad con Ansible. |
| Ubuntu 24.04 | Implementa PEP 668, que impide instalar paquetes Python con pip global. |
| Ansible 2.16.3 | Diseñado para Python 3.9-3.11, no 3.12. |
✅ Soluciones Definitivas
Usar Python 3.11 (Recomendado), en el Host Remoto:
# Instalar Python 3.11 desde deadsnakes PPA sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update sudo apt install -y python3.11 python3.11-venv # Configurar como alternativa predeterminada sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 sudo update-alternatives --set python3 /usr/bin/python3.11 # Instalar dependencias python3 -m pip install ansible-core==2.16.3 six
Y acá la prueba de que funciona bien ahora.
ansible all -m ping -i inventory.ini
10.10.0.9 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
- Advertisement -





