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 
*********
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> 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
<localhost> PUT /root/.ansible/tmp/ansible-local-48574fgls2za0/tmp8hw5m95b 
TO 
/var/tmp/ansible-tmp-1681202969.7012537-234639475555220/postgresql_user.py
<localhost> 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'
<localhost> 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'
<localhost> 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'
<localhost> 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'
<localhost> 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 <module>
    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"
}

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/b3d0ff14-5c2c-43a7-b7f6-221b1aba7ea0n%40googlegroups.com.

Reply via email to