andreychernih/railsbox

View on GitHub
templates/ansible/roles/postgresql/tasks/main.yml.erb

Summary

Maintainability
Test Coverage
---
- name: Install packages
  apt: name={{ item }}
  with_items:
    - libpq-dev
    - postgresql
    - postgresql-contrib
    - python-pip
    - python-dev

- name: Configure PostgreSQL - postgresql.conf
  template: src=postgresql.conf.j2 dest=/etc/postgresql/{{ postgresql_version }}/main/postgresql.conf
  notify: restart postgresql

- name: Configure PostgreSQL - pg_hba.conf
  template: src=pg_hba.conf.j2 dest=/etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf
  notify: restart postgresql

<% if params[:docker] -%>
- name: Create /etc/my_init.d/postgresql.sh
  template: src=my_init.sh.j2 dest=/etc/my_init.d/postgresql.sh mode=0755

- name: Start postgresql
  command: /etc/my_init.d/postgresql.sh
<% end %>

- name: Install required Python modules
  pip: name=psycopg2

- name: Create postgresql user
  postgresql_user: name={{ postgresql_db_user }} password={{ postgresql_db_password }} role_attr_flags=CREATEDB,SUPERUSER,CREATEROLE
  sudo_user: postgres

- name: Create postgresql database
  postgresql_db: name={{ postgresql_db_name }} owner={{ postgresql_db_user }}
  sudo_user: postgres

- name: Create postgresql test database
  postgresql_db: name={{ postgresql_db_name }}_test owner={{ postgresql_db_user }}
  sudo_user: postgres

- name: Assure that config dir exists
  file: path={{ shared_config_path }} state=directory

- name: Create config/database.yml
  template: src=database.yml.j2 dest={{ shared_config_path }}/database.yml owner={{ user_name }} mode=0600 backup=yes
  when: postgresql_orm in ['activerecord', 'sequel', 'datamapper']

- name: Make sure the postgis extensions are installed
  apt: name={{ item }}
  with_items:
    - libgeos-c1
    - 'postgresql-{{ postgresql_version }}-postgis-{{ postgresql_ext_postgis_version }}'
  notify: restart postgresql
  when: "postgresql_extensions and 'postgis' in postgresql_extensions"

- name: Create extensions
  sudo_user: '{{ postgresql_admin_user }}'
  shell: "psql {{ postgresql_db_name }} -c 'CREATE EXTENSION IF NOT EXISTS {{ item }};'"
  with_items: postgresql_extensions
  when: postgresql_extensions