postgresql_user module help

I am getting below error while trying to use module postgresql_user. I want to create a new user account in postgresql. but i am unable to create user account with become_user postgres or commenting that line is failing to get authenticate. i have seen a Bug report #4225 but trying to see workaround solution.

my playbook contains below code

  • name: Configure Database server ami instance
    hosts: database
    gather_facts: true
    become: true
    become_method: sudo
    vars:
    ansible_user: ubuntu
    vars_files:
  • [vars/local_vars.yml]
    roles:
  • postgres

postgres role main.yml

  • include: bootstrap.yml

  • include: users.yml

users.yml file task

  • name: Create new Administrator User
    postgresql_user:
    name: “adminuser”
    password: “adminpwd”
    encrypted: yes
    state: present
    role_attr_flags: SUPERUSER,CREATEROLE,CREATEUSER,CREATEDB,LOGIN,REPLICATION
    become_user: postgres

“module_stderr”: “Traceback (most recent call last):\n File "/tmp/ansible_PIv0G9/ansible_module_postgresql_user.py", line 666, in \n main()\n File "/tmp/ansible_PIv0G9/ansible_module_postgresql_user.py", line 627, in main\n changed = user_add(cursor, user, password, role_attr_flags, encrypted, expires)\n File "/tmp/ansible_PIv0G9/ansible_module_postgresql_user.py", line 220, in user_add\n cursor.execute(query, query_password_data)\n File "/usr/lib/python2.7/dist-packages/psycopg2/extras.py", line 123, in execute\n return _cursor.execute(self, query, vars)\npsycopg2.ProgrammingError: conflicting or redundant options\n\n”,
“module_stdout”: “”,
“msg”: “MODULE FAILURE”

Thanks
Shyam

What happens if you put the become_user statement into this block
instead of into the user.yml file?

What happens if you do not include the user.yml, but put its contents
directly into the playbook (just for debugging)?

Johannes

Addition to my first mail:

As ansible does not allow chaining sudo (become root and then become
postgres), does sudo allow your user to become postgres directly?
Although I think your error is due to the become_user statements
syntax or placement, not in the authentication logic. But once you get
the ansible play to work, you might run into authentication issues...

Johannes