Ansible role which installs and configures PostgreSQL, extensions, databases and users.
- Tested on Ansible 1.6 or higher.
- ANXS.monit (Galaxy/GH) if you want monit protection (in that case, you should set
monit_protection: true
)
# Basic settings
postgresql_version: 9.3
postgresql_encoding: 'UTF-8'
postgresql_locale: 'en_US.UTF-8'
postgresql_admin_user: "postgres"
postgresql_default_auth_method: "trust"
postgresql_cluster_name: "main"
postgresql_cluster_reset: false
# List of databases to be created (optional)
postgresql_databases:
- name: foobar
hstore: yes # flag to install the hstore extension on this database (yes/no)
uuid_ossp: yes # flag to install the uuid-ossp extension on this database (yes/no)
# List of users to be created (optional)
postgresql_users:
- name: baz
pass: pass
encrypted: no # denotes if the password is already encrypted.
# List of user privileges to be applied (optional)
postgresql_user_privileges:
- name: baz # user name
db: foobar # database
priv: "ALL" # privilege string format: example: INSERT,UPDATE/table:SELECT/anothertable:ALL
role_attr_flags: "CREATEDB" # role attribute flags
There's a lot more knobs and bolts to set, which you can find in the defaults/main.yml
This project comes with a VagrantFile, this is a fast and easy way to test changes to the role, fire it up with vagrant up
See vagrant docs for getting setup with vagrant
Licensed under the MIT License. See the LICENSE file for details.
To the contributors:
Are welcome!