Skip to content

Instantly share code, notes, and snippets.

@kharandziuk
Created January 20, 2017 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kharandziuk/d11aab8b1560d408032911140a0b103a to your computer and use it in GitHub Desktop.
Save kharandziuk/d11aab8b1560d408032911140a0b103a to your computer and use it in GitHub Desktop.
ansible playbook for postgis
# -*- 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