gpt4 book ai didi

postgresql - 将 Ansible postgresql_user 与 VirtualEnv 中的 psycopg2 结合使用

转载 作者:行者123 更新时间:2023-11-29 11:14:15 34 4
gpt4 key购买 nike

Ansible postgresql_user 模块需要安装 psycopg2:

http://docs.ansible.com/postgresql_user_module.html

如果它安装在服务器上的 VirtualEnv 中,Ansible 模块如何找到它?

其他 Ansible 模块似乎有明确的 VirtualEnv 支持,所以这只是一个缺失的功能吗?

最佳答案

如果你想使用 virtualenv 中的 psycopg2 模块,一种可能的解决方案是

遵循的步骤:

1) 创建了一台 ubuntu 16.04 vagrant 机器并安装了 postgresql。

2) 使用 ansible postgresql_db 模块创建新数据库失败,错误为 FAILED! => {"changed": false, "failed": true, "msg": "python psycopg2 模块是必需的"

3) 创建一个virtualenv并在virtualenv中安装psycopg2

virtualenv venv -p /usr/bin/python (Note: python2.7)
source venv/bin/activate
pip install psycopg2

4) 使用 ansible_python_interpreter 运行 ansible-playbook 以从 virtualenv 指向 python 解释器,数据库创建任务成功。 ansible命令及内容如下,

---
- hosts: vagrant
sudo: true

pre_tasks:
- raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
- setup:

tasks:
- name: db create
postgresql_db:
name: acme
become_user: postgres

ansible-playbook 命令

ansible-playbook playbook.yml -e "ansible_python_interpreter=/home/ubuntu/venv/bin/python"

关于postgresql - 将 Ansible postgresql_user 与 VirtualEnv 中的 psycopg2 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29728530/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com