由于在虚拟环境中安装 pip 模块是一个很好的做法,因此我有以下任务:
- name: Install python packages
ansible.builtin.pip:
name:
- pymongo
virtualenv: /home/user/.venv
但是,应该使用 pymongo 的任务返回错误:
ModuleNotFoundError: No module named 'pymongo'
这就是任务:
- name: Create database database user
community.mongodb.mongodb_user:
login_user: root
login_password: 12345
database: somedb
name: some_user
password: 12345
state: present
roles:
- { db: "xxx", role: "dbOwner" }
- { db: "yyy", role: "dbOwner" }
如何修复 Ansible playbook 以便找到安装在虚拟环境中的 pymongo? 另外,如果我运行
pip list
pymongo 未列出,这让我认为我错过了链中的一部分。
我可能找到了一个可行的解决方案,我只是不确定这是否是正确的方法。 我添加了一项任务,将 Python 解释器切换到在虚拟环境中创建的解释器:
- name: set new Python interpreter
ansible.builtin.set_fact:
ansible_python_interpreter: /home/user/.venv/bin/python
也许有人可以确认这是否是正确的方法。