Skip to content
This repository was archived by the owner on Apr 2, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion inventory/host_vars/staging18.timeoverflow.org/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
database_name: timeoverflow_staging
rails_environment: staging
database_role_attributes: # Left empty
database_role_attributes: NOSUPERUSER

sys_admins:
- name: enrico
Expand Down
17 changes: 1 addition & 16 deletions playbooks/provision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,7 @@
rbenv_users:
- timeoverflow
default_gems_file: ../files/custom-gems
- role: vendor/geerlingguy.postgresql
vars:
postgresql_hba_entries:
- { type: local, database: all, user: postgres, auth_method: peer }
- { type: local, database: all, user: "{{ database_user }}", auth_method: peer }
postgresql_locales:
- 'es_ES.UTF-8'
postgresql_users:
- name: "{{ database_user }}"
role_attr_flags: "{{ database_role_attributes }}"
postgresql_databases:
- name: "{{ database_name }}"
owner: "{{ database_user }}"
lc_collate: 'es_ES.UTF-8'
lc_ctype: 'es_ES.UTF-8'
postgresql_python_library: python3-psycopg2 # related to ansible_python_interpreter
- role: database
- role: vendor/elastic.elasticsearch
es_instance_name: timeoverflow
es_heap_size: "512m"
Expand Down
2 changes: 0 additions & 2 deletions requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
version: 1.8.1
- src: zzet.rbenv
version: 3.4.3
- src: geerlingguy.postgresql
version: 2.0.0
- src: elastic.elasticsearch
version: 5.5.1
- src: jdauphant.nginx
Expand Down
54 changes: 54 additions & 0 deletions roles/database/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
- name: Install gnupg2
apt:
name: gnupg2

- name: Add apt key
apt_key:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc

- name: Add PostgreSQL 9.4 PPA repository
apt_repository:
repo: deb https://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
filename: pgdg

- name: APT upgrade
apt:
update_cache: true
upgrade: true

- name: Ensure all configured locales are present.
locale_gen: "name=es_ES.UTF-8 state=present"

- name: Install PostgreSQL 9.4 and dependencies
apt:
name:
- postgresql-9.4
- libpq-dev
- python3-psycopg2

- name: Add hba entry for user
postgresql_pg_hba:
dest: /etc/postgresql/9.4/main/pg_hba.conf
users: "{{ database_user }}"
contype: local
databases: all
method: peer

- name: Add user
become: yes
become_user: postgres
postgresql_user:
name: "{{ database_user }}"
role_attr_flags: "{{ database_role_attributes }}"

- name: Create db
become: yes
become_user: postgres
postgresql_db:
name: "{{ database_name }}"
owner: "{{ database_user }}"
lc_collate: 'es_ES.UTF-8'
lc_ctype: 'es_ES.UTF-8'
encoding: 'UTF-8'
template: 'template0'