Created
January 20, 2017 15:43
-
-
Save kharandziuk/d11aab8b1560d408032911140a0b103a to your computer and use it in GitHub Desktop.
ansible playbook for postgis
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
# -*- mode: yaml-*- | |
# vi: set ft=yaml sw=2 ts=2 : | |
- name: Configure scala study machine | |
hosts: all | |
sudo: True | |
vars: | |
pg_version: 9.4 | |
pg_conf: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf" | |
pg_hba: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf" | |
pg_dir: "/var/lib/postgresql/{{ pg_version }}/main" | |
db_user: "test" | |
db_pass: "test" | |
db_name: "test" | |
tasks: | |
- name: set locale | |
lineinfile: dest=/etc/default/locale line="LC_ALL=C" | |
- name: Update all packages to the latest version | |
apt: | |
upgrade: dist | |
- name: add postgres repository | |
apt_repository: | |
repo: "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | |
state: present | |
- name: add postgres repository key | |
apt_key: | |
url: "https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc" | |
state: present | |
- name: install pg | |
apt: | |
name: "{{ item }}" | |
state: installed | |
update_cache: yes | |
with_items: | |
- "python-psycopg2" | |
- "postgresql-{{ pg_version }}" | |
- "postgresql-contrib-{{ pg_version }}" | |
- "postgresql-{{ pg_version }}-postgis-2.2" | |
- name: ensure the PostgreSQL service is running | |
service: | |
name: postgresql | |
state: started | |
enabled: yes | |
- name: edit postgresql.conf to change listen address to * | |
replace: | |
dest: "{{ pg_conf }}" | |
regexp: "#listen_addresses = 'localhost'" | |
replace: "listen_addresses = '*'" | |
backup: yes | |
notify: restart pg | |
- name: append to pg_hba.conf to add password auth | |
lineinfile: | |
dest: "{{ pg_hba }}" | |
line: "host all all all md5" | |
notify: restart pg | |
- name: explicitly set default client_encoding | |
lineinfile: | |
dest: "{{ pg_conf }}" | |
line: "client_encoding = utf8" | |
notify: restart pg | |
- name: create the database user | |
postgresql_user: | |
name: "{{ db_user }}" | |
password: "{{ db_pass }}" | |
become: true | |
become_user: postgres | |
- name: create the database | |
postgresql_db: | |
owner: "{{ db_user }}" | |
name: "{{ db_name }}" | |
encoding: UTF-8 | |
lc_collate: en_US.utf8 | |
lc_ctype: en_US.utf8 | |
template: template0 | |
become: true | |
become_user: postgres | |
- name: install postgis extension | |
postgresql_ext: | |
name: postgis | |
db: "{{ db_name }}" | |
become: true | |
become_user: postgres | |
handlers: | |
- name: restart pg | |
service: | |
name: postgresql | |
state: restarted | |
enabled: yes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment