目标服务器:
-bash-4.2$ python -V
Python 2.7.5
-bash-4.2$ pip list | grep psycopg2
psycopg2 (2.8.3)
但是,如果使用此任务运行 ansible playbook 将失败:
- name: Create repmgr database
postgresql_db:
name: repmgr
become: true
become_user: postgres
错误:
TASK [db : Create repmgr database] ***************************************************************************
fatal: [192.168.0.1]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (psycopg2) on db's Python /usr/bin/python. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}
为什么不能导入psycopg2
?
你应该确保你的特定主机的python 自动发现或修复
ansible_python_interpreter
没有指向其他版本的 python(而不是你用来安装 lib 的那个)。如果是这种情况,您可以:
ansible_python_interpreter
为您的主机设置)pip3 install psycopg2
)同时,确保始终满足要求的最佳解决方案(在正确的 python 版本中)是在您实际使用 postgres 模块之前将安装添加到您的剧本中: