Created
February 7, 2016 16:58
-
-
Save greenhat/11785194cbdc90624b67 to your computer and use it in GitHub Desktop.
Ansible playbook for PostgreSQL setup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: install PostgreSQL | |
apt: pkg={{ item }} update_cache=yes state=present | |
sudo: yes | |
tags: postgres | |
with_items: | |
- postgresql-{{ postgresql_version }} | |
- postgresql-client-{{ postgresql_version }} | |
- postgresql-contrib-{{ postgresql_version }} | |
- libpq-dev | |
- name: pin PostgreSQL dependencies (libpq-dev) version to prevent unintended upgrades | |
shell: echo "libpq-dev hold" | dpkg --set-selections | |
sudo: yes | |
tags: postgres | |
- name: Configure PostgreSQL. Set listen_addresses. | |
lineinfile: dest=/etc/postgresql/{{ postgresql_version }}/main/postgresql.conf | |
regexp="listen_addresses =" line="listen_addresses = '*'" state=present | |
notify: restart postgresql | |
sudo: yes | |
tags: postgres | |
- name: Configure PostgreSQL. Set max_connection. | |
lineinfile: dest=/etc/postgresql/{{ postgresql_version }}/main/postgresql.conf | |
regexp="max_connections =" line="max_connections = 1000" state=present | |
notify: restart postgresql | |
sudo: yes | |
tags: postgres | |
- name: Configure PostgreSQL. Set max_connection. | |
lineinfile: dest=/etc/postgresql/{{ postgresql_version }}/main/postgresql.conf | |
regexp="ssl =" line="ssl = false" state=present | |
notify: restart postgresql | |
sudo: yes | |
tags: postgres | |
- name: Configure PostgreSQL. Set autovacuum. | |
lineinfile: dest=/etc/postgresql/{{ postgresql_version }}/main/postgresql.conf | |
regexp="autovacuum =" line="autovacuum = on" state=present | |
notify: restart postgresql | |
sudo: yes | |
tags: postgres | |
- name: Configure PostgreSQL. Set hosts in pg_hba.conf | |
template: src=pg_hba.conf.j2 dest=/etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf | |
backup=yes | |
sudo: yes | |
tags: postgres | |
notify: restart postgresql | |
- name: Install psycopg2 | |
pip: name=psycopg2 | |
sudo: yes | |
tags: postgres | |
- name: Create PostgreSQL DB | |
postgresql_db: name={{ postgresql_db_name }} | |
sudo: yes | |
sudo_user: postgres | |
tags: postgres | |
- name: Create PostgreSQL user and grant access | |
postgresql_user: db={{ postgresql_db_name }} user={{ postgresql_db_user }} password={{ postgresql_db_user_password }} | |
sudo: yes | |
sudo_user: postgres | |
tags: postgres | |
- name: forward mail to root | |
lineinfile: 'dest=/etc/aliases regexp="^postgres: root" line="postgres: root"' | |
when: no_email is not defined | |
sudo: yes | |
tags: postgres | |
notify: | |
- restart postfix | |
- reload mail aliases | |
- name: Put DB restore script into home | |
template: src=pg_restore_last_backup.sh dest=~/pg_restore_last_backup.sh mode=0755 | |
tags: postgres |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thank you for sharing this.