|
|
|
# https://wiki.debian.org/PostgreSql
|
|
|
|
- name: Set up postgres
|
|
|
|
hosts: lotus-land-story
|
|
|
|
tasks:
|
|
|
|
|
|
|
|
- name: Install postgres
|
|
|
|
ansible.builtin.apt:
|
|
|
|
pkg:
|
|
|
|
- postgresql
|
|
|
|
- postgresql-client
|
|
|
|
state: present
|
|
|
|
|
|
|
|
- name: Make data directory
|
|
|
|
ansible.builtin.file:
|
|
|
|
path: /mnt/lotus-land-story/postgresql
|
|
|
|
state: directory
|
|
|
|
owner: postgres
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
- name: Set data directory
|
|
|
|
ansible.builtin.lineinfile:
|
|
|
|
dest: "/etc/postgresql/13/main/postgresql.conf"
|
|
|
|
regexp: '^#?data_directory ='
|
|
|
|
line: "data_directory = '/mnt/lotus-land-story/postgresql'"
|
|
|
|
state: present
|
|
|
|
notify: Restart postgres
|
|
|
|
|
|
|
|
- name: Allow access from localhost
|
|
|
|
community.general.ufw:
|
|
|
|
rule: allow
|
|
|
|
port: 5432
|
|
|
|
proto: tcp
|
|
|
|
from_ip: 127.0.0.1
|
|
|
|
notify: Reload ufw
|
|
|
|
|
|
|
|
# https://pgtune.leopard.in.ua/
|
|
|
|
# DB Version: 15
|
|
|
|
# OS Type: linux
|
|
|
|
# DB Type: web
|
|
|
|
# Total Memory (RAM): 4 GB
|
|
|
|
# CPUs num: 2
|
|
|
|
# Data Storage: ssd
|
|
|
|
- name: Tune postgres
|
|
|
|
ansible.builtin.lineinfile:
|
|
|
|
dest: "/etc/postgresql/13/main/postgresql.conf"
|
|
|
|
regexp: '^#?{{ item.key }} ='
|
|
|
|
line: "{{ item.key }} = {{ item.value }}"
|
|
|
|
state: present
|
|
|
|
loop: "{{ configs | dict2items }}"
|
|
|
|
vars:
|
|
|
|
configs:
|
|
|
|
max_connections: 200
|
|
|
|
shared_buffers: 1GB
|
|
|
|
effective_cache_size: 3GB
|
|
|
|
maintenance_work_mem: 256MB
|
|
|
|
checkpoint_completion_target: 0.9
|
|
|
|
wal_buffers: 16MB
|
|
|
|
default_statistics_target: 100
|
|
|
|
random_page_cost: 1.1
|
|
|
|
effective_io_concurrency: 200
|
|
|
|
work_mem: 2621kB
|
|
|
|
min_wal_size: 1GB
|
|
|
|
max_wal_size: 4GB
|
|
|
|
notify: Restart postgres
|
|
|
|
|
|
|
|
handlers:
|
|
|
|
- name: Import restarts
|
|
|
|
ansible.builtin.import_tasks: restarts.yml
|
|
|
|
|
|
|
|
# vim: ft=yaml.ansible
|