## # Example Ansible playbook that uses the PostgreSQL module. # # This installs PostgreSQL on an Ubuntu system, creates a database called # "myapp" and a user called "django" with password "mysupersecretpassword" # with access to the "myapp" database. # --- - hosts: webservers sudo: yes gather_facts: no tasks: - name: ensure apt cache is up to date action: apt update_cache=yes - name: ensure packages are installed action: apt name={{item}} with_items: - postgresql - libpq-dev - python-psycopg2 - hosts: webservers sudo: yes sudo_user: postgres gather_facts: no vars: dbname: myapp dbuser: django dbpassword: mysupersecretpassword tasks: - name: ensure database is created postgresql_db: name={{dbname}} - name: ensure user has access to database postgresql_user: db={{dbname}} name={{dbuser}} password={{dbpassword}} priv=ALL - name: ensure user does not have unnecessary privilege postgresql_user: name={{dbuser}} role_attr_flags=NOSUPERUSER,NOCREATEDB