# 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