ansible/roles/postgresql_server/tasks/main.yml
Ryan Lerch 462176464b ansiblelint fixes-- fqcn[action-core] - command to ansible.builtin.command
Replaces many references to  command: with ansible.builtin.command

Signed-off-by: Ryan Lerch <rlerch@redhat.com>
2025-01-15 11:26:47 +10:00

191 lines
5.4 KiB
YAML

---
#
# Setup postgresql server.
#
- name: On rhel8 hosts enable the postgresql 12 module.
ansible.builtin.copy:
dest: /etc/dnf/modules.d/postgresql.module
content: |
[postgresql]
name=postgresql
stream=12
profiles=
state=enabled
when: ansible_distribution_major_version|int == 8
- name: On db-koji01 and db-riscv-koji01 and db01.stg and db-fas01 and db01 and db-openqa01 enable the postgresql 15 module.
ansible.builtin.copy:
dest: /etc/dnf/modules.d/postgresql.module
content: |
[postgresql]
name=postgresql
stream=15
profiles=
state=enabled
when: inventory_hostname.startswith(('db-koji01','db-riscv-koji01','db01.stg','db-fas01','db01','db-openqa01'))
- name: Install postgresql server packages (EL < 8)
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 (Fedora)
package:
state: present
name:
- postgresql-server
- postgresql-contrib
- postgresql-plpython3
- python3-psycopg2
- pxz
when: ansible_distribution_major_version|int >= 29 and ansible_distribution == 'Fedora' and ansible_cmdline.ostree is not defined
tags:
- packages
- postgresql
- name: Install postgresql server packages (EL >= 8)
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
ansible.builtin.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.
ansible.builtin.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'
notify:
- restart postgresql
tags:
- config
- postgresql
- name: Postgresql config template (Fedora / el8 / postgresql 12)
template: dest=/var/lib/pgsql/data/postgresql.conf src=postgresql.conf-12
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 (el9 / postgresql 15)
template: dest=/var/lib/pgsql/data/postgresql.conf src=postgresql.conf-15
when: (ansible_distribution_major_version|int == 9 and ansible_distribution == 'RedHat')
notify:
- restart postgresql
tags:
- config
- postgresql
- name: Ensure postgres has a place to backup to
ansible.builtin.file: dest=/backups state=directory owner=postgres
tags:
- postgresql
- name: Copy over backup scriplet
ansible.builtin.copy: src=backup-database dest=/usr/local/bin/backup-database mode=0755
when: not inventory_hostname.startswith(('db-koji01.iad2','db-datanommer'))
tags:
- postgresql
- name: Copy over backup scriplet
ansible.builtin.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 backup scriplet
ansible.builtin.copy: src=backup-database.db-datanommer02 dest=/usr/local/bin/backup-database mode=0755
when: inventory_hostname.startswith('db-datanommer02.iad2')
tags:
- postgresql
- name: Copy over anitya public backup scriplet
ansible.builtin.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 public backup cron
ansible.builtin.copy: src=cron-backup-anitya-public dest=/etc/cron.d/cron-backup-anitya-public mode=0644
tags:
- postgresql
when: 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 datanommer/datagrepper SAR script
ansible.builtin.copy: >
src=datagrepper_sar.py
dest=/usr/local/bin/datagrepper_sar.py mode=0700
when: inventory_hostname.startswith('db-datanommer01')
tags:
- postgresql
- SAR
- GBDR
- import_tasks: datanommer.yml
when: inventory_hostname.startswith('db-datanommer02.iad2') or (env == "staging" and inventory_hostname.startswith('db-datanommer01.stg'))