mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-04-25 19:11:24 +08:00
I took the default postgresql.conf from postgresql 12 and then added in various changes we already manually made and variable substitions we already had setup back in the postgresq 9.2 days. This will apply to db-koji01, db-qa01, db-datanommer01 at least. Signed-off-by: Kevin Fenzi <kevin@scrye.com>
211 lines
5.5 KiB
YAML
211 lines
5.5 KiB
YAML
---
|
|
#
|
|
# Setup postgresql server.
|
|
#
|
|
- name: install postgresql server packages (yum)
|
|
package:
|
|
state: present
|
|
name:
|
|
- postgresql-server
|
|
- postgresql-contrib
|
|
- postgresql-plpython
|
|
- python-psycopg2
|
|
- pxz
|
|
when: ansible_distribution_major_version|int < 8 and ansible_distribution == 'RedHat'
|
|
tags:
|
|
- packages
|
|
- postgresql
|
|
|
|
- name: install postgresql server packages (dnf)
|
|
package:
|
|
state: present
|
|
name:
|
|
- postgresql-server
|
|
- postgresql-contrib
|
|
- postgresql-plpython
|
|
- python-psycopg2
|
|
- pxz
|
|
when: ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora' and ansible_cmdline.ostree is not defined
|
|
tags:
|
|
- packages
|
|
- postgresql
|
|
|
|
- name: on rhel8 hosts enable the postgresql 12 module.
|
|
copy:
|
|
dest: /etc/dnf/modules.d/postgresql.module
|
|
content: |
|
|
[postgresql]
|
|
name=postgresql
|
|
stream=12
|
|
profiles=
|
|
state=enabled
|
|
when: ansible_distribution_major_version|int >= 8 and ansible_distribution == 'RedHat'
|
|
|
|
- name: install postgresql server packages (dnf)
|
|
package:
|
|
state: present
|
|
name:
|
|
- postgresql-server
|
|
- postgresql-contrib
|
|
- postgresql-plpython3
|
|
- python3-psycopg2
|
|
- pxz
|
|
when: ansible_distribution_major_version|int >= 8 and ansible_distribution == 'RedHat' and ansible_cmdline.ostree is not defined
|
|
tags:
|
|
- packages
|
|
- postgresql
|
|
|
|
- name: Set kernel shared memory max to a larger value
|
|
sysctl: name=kernel.shmmax value={{ kernel_shmmax }}
|
|
when: kernel_shmmax is defined
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- postgresql
|
|
|
|
- name: Initialize postgres if necessary
|
|
command: /usr/bin/postgresql-setup initdb
|
|
creates=/var/lib/pgsql/data/postgresql.conf
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- postgresql
|
|
|
|
- name: Set postgresql-server to run on boot
|
|
service: name=postgresql enabled=yes
|
|
ignore_errors: true
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- service
|
|
- postgresql
|
|
|
|
- name: Add our postgres config file.
|
|
copy: >
|
|
src={{ item }}
|
|
dest=/var/lib/pgsql/data/{{ item }}
|
|
owner=postgres
|
|
with_items:
|
|
- pg_hba.conf
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- config
|
|
- postgresql
|
|
|
|
- name: postgresql config template (el7 / postgresql 9.2)
|
|
template: dest=/var/lib/pgsql/data/postgresql.conf src=postgresql.conf
|
|
when: (ansible_distribution_major_version|int < 8 and ansible_distribution == 'RedHat') or ansible_distribution != 'RedHat'
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- config
|
|
- postgresql
|
|
|
|
- name: postgresql config template (el8 / postgresql 12)
|
|
template: dest=/var/lib/pgsql/data/postgresql.conf src=postgresql.conf-12
|
|
when: ansible_distribution_major_version|int > 7 and ansible_distribution == 'RedHat'
|
|
notify:
|
|
- restart postgresql
|
|
tags:
|
|
- config
|
|
- postgresql
|
|
|
|
- name: Ensure postgres has a place to backup to
|
|
file: dest=/backups state=directory owner=postgres
|
|
tags:
|
|
- postgresql
|
|
|
|
- name: Copy over backup scriplet
|
|
copy: src=backup-database dest=/usr/local/bin/backup-database mode=0755
|
|
when: not inventory_hostname.startswith('db-koji01.iad2')
|
|
tags:
|
|
- postgresql
|
|
|
|
- name: Copy over backup scriplet
|
|
copy: src=backup-database.db-koji01 dest=/usr/local/bin/backup-database mode=0755
|
|
when: inventory_hostname.startswith('db-koji01.iad2')
|
|
tags:
|
|
- postgresql
|
|
|
|
- name: Copy over anitya public backup scriplet
|
|
copy: src=backup-database.anitya dest=/usr/local/bin/backup-database.anitya mode=0755
|
|
tags:
|
|
- postgresql
|
|
when: inventory_hostname.startswith('db01.phx2') or inventory_hostname.startswith('db01.iad2')
|
|
|
|
- name: Copy over anitya publib backup cron
|
|
copy: src=cron-backup-anitya-public dest=/etc/cron.d/cron-backup-anitya-public mode=0644
|
|
tags:
|
|
- postgresql
|
|
when: inventory_hostname.startswith('db01.phx2') or inventory_hostname.startswith('db01.iad2')
|
|
|
|
- name: Set up some cronjobs to backup databases as configured
|
|
template: >
|
|
src=cron-backup-database
|
|
dest=/etc/cron.d/cron-backup-database-{{ item }}
|
|
with_items:
|
|
- "{{ dbs_to_backup }}"
|
|
when: dbs_to_backup != []
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: Set up a cron job to clean long koji sessions on koji database server only
|
|
copy: >
|
|
src=koji-cleanup-sessions.cron
|
|
dest=/etc/cron.d/koji-cleanup-sessions.cron
|
|
state=absent
|
|
when: inventory_hostname.startswith('db-koji01')
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: install script to kill long running pgsql jobs
|
|
copy: >
|
|
src=kill_idle_xact_92.sh
|
|
dest=/usr/local/bin/kill_idle_xact_92.sh
|
|
mode=0755
|
|
when: inventory_hostname.startswith('db-koji01')
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: Set up a cron job to kill long postresql queries
|
|
copy: >
|
|
src=koji-cleanup-locks.cron
|
|
dest=/etc/cron.d/koji-cleanup-locks.cron
|
|
when: inventory_hostname.startswith('db-koji01')
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: Set up a script for cron job to clean long fas sessions on fas database server only
|
|
copy: >
|
|
src=fasdb-cleanup-sessions
|
|
dest=/usr/local/bin/fasdb-cleanup-sessions
|
|
mode=755
|
|
when: inventory_hostname.startswith('db-fas01')
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: Set up a cron job to clean long fas sessions on fas database server only
|
|
copy: >
|
|
src=fasdb-cleanup-sessions.cron
|
|
dest=/etc/cron.d/fasdb-cleanup-sessions.cron
|
|
when: inventory_hostname.startswith('db-fas01')
|
|
tags:
|
|
- cron
|
|
- postgresql
|
|
|
|
- name: Set up datanommer/datagrepper SAR script
|
|
copy: >
|
|
src=datagrepper_sar.py
|
|
dest=/usr/local/bin/datagrepper_sar.py mode=0700
|
|
when: inventory_hostname.startswith('db-datanommer01')
|
|
tags:
|
|
- postgresql
|
|
- SAR
|
|
- GBDR
|