License: MIT

Language: Shell

ANXS - PostgreSQL Build Status

Help Wanted! If you are able and willing to help maintain this Ansible role then please open a GitHub issue. A lot of people seem to use this role and we (quite obviously) need assistance! ūüíĖ

Ansible role which installs and configures PostgreSQL, extensions, databases and users.


This has been tested on Ansible 1.9.4 and higher.

To install:

ansible-galaxy install ANXS.postgresql


  • 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_ctype: 'en_US.UTF-8'

postgresql_admin_user: "postgres"
postgresql_default_auth_method: "trust"

postgresql_service_enabled: false # should the service be enabled, default is true

postgresql_cluster_name: "main"
postgresql_cluster_reset: false

# List of databases to be created (optional)
# Note: for more flexibility with extensions use the postgresql_database_extensions setting.
  - name: foobar
    owner: baz          # optional; specify the owner of the database
    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)
    citext: yes         # flag to install the citext extension on this database (yes/no)
    encoding: 'UTF-8'   # override global {{ postgresql_encoding }} variable per database
    lc_collate: 'en_GB.UTF-8'   # override global {{ postgresql_locale }} variable per database
    lc_ctype: 'en_GB.UTF-8'     # override global {{ postgresql_ctype }} variable per database

# List of database extensions to be created (optional)
  - db: foobar
      - hstore
      - citext

# List of users to be created (optional)
  - name: baz
    pass: pass
    encrypted: no       # denotes if the password is already encrypted.

# List of user privileges to be applied (optional)
  - 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

Once your VM is up, you can reprovision it using either vagrant provision, or ansible-playbook tests/playbook.yml -i vagrant-inventory

If you want to toy with the test play, see tests/playbook.yml, and change the variables in tests/vars.yml

If you are contributing, please first test your changes within the vagrant environment, (using the targeted distribution), and if possible, ensure your change is covered in the tests found in .travis.yml


Licensed under the MIT License. See the LICENSE file for details.


To the contributors:

Feedback, bug-reports, requests, ...

Are welcome!

Project Statistics

Sourcerank 3
Repository Size 0 Bytes
Stars 0
Forks 0
Watchers 1
Open issues 0
Dependencies 0
Contributors 46
Tags 0
Last updated
Last pushed

Top Contributors See all

pjan vandaele David Farrington Jonathan Freedman Jesse Lang Michael Conrad S√©bastien Alix Sergei Antipov Felix Gl√§ske Wolfgang Pecho Copperfield Leonel Gal√°n Tadej JaneŇĺ Matt DuVall Jerker Montelius Carsten Block Oleg Tsarev Ryan Pineo Tymon Tobolski Ben Passmore ŇĀukasz CioŇāecki

Something wrong with this page? Make a suggestion

Last synced: 2018-02-07 12:39:43 UTC

Login to resync this repository