Hi
ansible version: 2.6.7
python version: 3.8.10
OS: Ubuntu 20
I want to add postgres user with ansible.
So I installed required package, psycopg2(python3-psycopg2)
- name: Add role of postgres
become_user: postgres
postgresql_user:
name: postgres
role_attr_flags: NOREPLICATION
but Ansible said “the python psycopg2 module is required”
python-psycopg2 package does not exist in focal repository.
How can I make ansible use python3-psycopg2?
TASK [postgresql-server : Add role of postgres]*********************************************************
task path: /root/setup/ansible-gerrit/roles/postgresql-server/tasks/db.yml:2
Tuesday 11 April 2023 17:49:29 +0900 (0:00:02.337) 0:00:23.739 *********
ESTABLISH LOCAL CONNECTION FOR USER: root
EXEC /bin/sh -c ‘echo ~root && sleep 0’
EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /var/tmp/ansible-tmp-1681202969.7012537-234639475555220
” && echo ansible-tmp-1681202969.7012537-234639475555220=“echo /var/tmp/ansible-tmp-1681202969.7012537-234639475555220
” ) && sleep 0’
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/database/postgresql/postgresql_user.py
PUT /root/.ansible/tmp/ansible-local-48574fgls2za0/tmp8hw5m95b TO /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py
EXEC /bin/sh -c ‘setfacl -m u:postgres:r-x /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/ /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py && sleep 0’
EXEC /bin/sh -c ‘chmod u+x /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/ /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py && sleep 0’
EXEC /bin/sh -c ‘chown postgres /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/ /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py && sleep 0’
EXEC /bin/sh -c ‘sudo -H -S -n -u postgres /bin/sh -c ‘"’“‘echo BECOME-SUCCESS-egfgzvnxohnublyrrsosdxbthsgsxbqb; /usr/bin/python /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py’”’"’ && sleep 0’
EXEC /bin/sh -c ‘rm -f -r /var/tmp/ansible-tmp-1681202969.7012537-234639475555220/ > /dev/null 2>&1 && sleep 0’
The full traceback is:
File “/tmp/ansible_TYsT7h/ansible_module_postgresql_user.py”, line 210, in
import psycopg2
fatal: [localhost]: FAILED! => {
“changed”: false,
“invocation”: {
“module_args”: {
“conn_limit”: null,
“db”: “”,
“encrypted”: true,
“expires”: null,
“fail_on_user”: true,
“login_host”: “”,
“login_password”: “”,
“login_unix_socket”: “”,
“login_user”: “postgres”,
“name”: “postgres”,
“no_password_changes”: false,
“password”: null,
“port”: “5432”,
“priv”: null,
“role_attr_flags”: “NOREPLICATION”,
“ssl_mode”: “prefer”,
“ssl_rootcert”: null,
“state”: “present”,
“user”: “postgres”
}
},
“msg”: “the python psycopg2 module is required”
}