报错内容
bash
ansible -i inventory/ct all -m ping
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'
kunlun01.ct | FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 10.61.6.1 closed.\r\n",
"module_stdout": "Traceback (most recent call last):\r\n File \"/home/rhlog/.ansible/tmp/ansible-tmp-1775817189.0660183-248546-200217143631416/AnsiballZ_ping.py\", line 102, in <module>\r\n _ansiballz_main()\r\n File \"/home/rhlog/.ansible/tmp/ansible-tmp-1775817189.0660183-248546-200217143631416/AnsiballZ_ping.py\", line 94, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File \"/home/rhlog/.ansible/tmp/ansible-tmp-1775817189.0660183-248546-200217143631416/AnsiballZ_ping.py\", line 37, in invoke_module\r\n from ansible.module_utils import basic\r\n File \"/tmp/ansible_ping_payload_vcew6owj/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
}
python 版本
控制端
bash
python --version
Python 3.10.12
被控制端
bash
python --version
Python 3.12.3
解决
在控制端(执行 ansible 代码的那一端)机器上执行。
1.安装 venv
bash
sudo apt update
sudo apt install -y python3-venv python3-full
2.创建虚拟环境
⚠️说明:用哪个用户执行 ansible 就用哪个用户创建虚拟环境。
bash
python3 -m venv ~/ansible-venv
source ~/ansible-venv/bin/activate
3.升级 pip
bash
(ansible-venv)~$ pip install -U pip setuptools wheel
4.安装稳定版 Ansible
⚠️说明:推荐用 core(不要用 full ansible bundle)。
bash
(ansible-venv)~$ pip install ansible-core==2.16.6
⚠️警告:不要安装 ansible。
验证
bash
(ansible-venv)~$ ansible --version
(ansible-venv)~$ python -c "from ansible.module_utils import basic"
bash
(ansible-venv)~$ which python
/home/rhlog/ansible-venv/bin/python
bash
(ansible-venv)~$ which ansible
/home/rhlog/ansible-venv/bin/ansible
bash
(ansible-venv)~$ python --version
Python 3.10.12
bash
(ansible-venv)~$ ansible --version
ansible [core 2.16.6]
config file = None
configured module search path = ['/home/rhlog/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/rhlog/ansible-venv/lib/python3.10/site-packages/ansible
ansible collection location = /home/rhlog/.ansible/collections:/usr/share/ansible/collections
executable location = /home/rhlog/ansible-venv/bin/ansible
python version = 3.10.12 (main, Mar 3 2026, 11:56:32) [GCC 11.4.0] (/home/rhlog/ansible-venv/bin/python3)
jinja version = 3.1.6
libyaml = True