mirror of https://gitlab.com/tildes/tildes.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.7 KiB
85 lines
2.7 KiB
{% from 'common.jinja2' import app_dir, python_version, venv_dir %}
|
|
|
|
postgresql:
|
|
pkgrepo.managed:
|
|
- name: deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
|
|
- dist: xenial-pgdg
|
|
- file: /etc/apt/sources.list.d/psql.list
|
|
- key_url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
- require_in:
|
|
- pkg: postgresql
|
|
pkg.installed:
|
|
- name: postgresql-{{ pillar['postgresql_version'] }}
|
|
- refresh: True
|
|
service.running:
|
|
- require:
|
|
- pkg: postgresql
|
|
- reload: True
|
|
- watch:
|
|
- file: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/*.conf
|
|
|
|
install-plpython3:
|
|
pkg.installed:
|
|
- name: postgresql-plpython3-{{ pillar['postgresql_version'] }}
|
|
- refresh: True
|
|
- require:
|
|
- pkgrepo: postgresql
|
|
|
|
set-lock-timeout:
|
|
file.replace:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/postgresql.conf
|
|
- pattern: '^#?lock_timeout = (?!5000).*$'
|
|
- repl: 'lock_timeout = 5000'
|
|
|
|
set-statement-timeout:
|
|
file.replace:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/postgresql.conf
|
|
- pattern: '^#?statement_timeout = (?!5000).*$'
|
|
- repl: 'statement_timeout = 5000'
|
|
|
|
set-idle-in-transaction-timeout:
|
|
file.replace:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/postgresql.conf
|
|
- pattern: '^#?idle_in_transaction_session_timeout = (?!600000).*$'
|
|
- repl: 'idle_in_transaction_session_timeout = 600000'
|
|
|
|
set-timezone:
|
|
file.replace:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/postgresql.conf
|
|
- pattern: '^#?timezone = (?!''UTC'').*$'
|
|
- repl: 'timezone = ''UTC'''
|
|
|
|
enable-pg-stat-statements:
|
|
file.replace:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/postgresql.conf
|
|
- pattern: '^#?shared_preload_libraries = .*$'
|
|
- repl: "shared_preload_libraries = 'pg_stat_statements'"
|
|
- watch_in:
|
|
- module: enable-pg-stat-statements
|
|
module.wait:
|
|
- service.restart:
|
|
- name: postgresql.service
|
|
|
|
/etc/postgresql/{{ pillar['postgresql_version'] }}/main/pg_hba.conf:
|
|
file.managed:
|
|
- source: salt://postgresql/pg_hba.conf.jinja2
|
|
- template: jinja
|
|
- user: postgres
|
|
- group: postgres
|
|
- mode: 640
|
|
require:
|
|
- service: postgresql
|
|
|
|
# set PYTHONPATH env var in postgresql so PL/Python can access all the modules
|
|
set-postgresql-pythonpath:
|
|
file.managed:
|
|
- name: /etc/postgresql/{{ pillar['postgresql_version'] }}/main/environment
|
|
- contents: "PYTHONPATH='{{ venv_dir }}/lib/python{{ python_version }}/site-packages:{{ app_dir }}'"
|
|
- user: postgres
|
|
- group: postgres
|
|
- mode: 644
|
|
- watch_in:
|
|
- module: set-postgresql-pythonpath
|
|
module.wait:
|
|
- service.restart:
|
|
- name: postgresql.service
|