使用通过 virtualenv 安装的 pymongo 和 Ansible 返回错误

问题描述 投票:0回答:1

由于在虚拟环境中安装 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 python-3.x ansible virtualenv
1个回答
0
投票

我可能找到了一个可行的解决方案,我只是不确定这是否是正确的方法。 我添加了一项任务,将 Python 解释器切换到在虚拟环境中创建的解释器:

- name: set new Python interpreter
  ansible.builtin.set_fact:
    ansible_python_interpreter: /home/user/.venv/bin/python

也许有人可以确认这是否是正确的方法。

© www.soinside.com 2019 - 2024. All rights reserved.