Skip to content

Commit cbbfb88

Browse files
danoptwidhalmt
andauthored
Add support for EL8 (#4)
* Add support for EL8 * Update tasks/postgresql.yml Co-authored-by: Thomas Widhalm <widhalmt@widhalm.or.at> * Added option to disable repositories and to install latest version * Fixed trailing spaces * Fixed trailing spaces and spaces after colon * Fixed conditions * Optimized block in postgresql.yml * Added condition * Fixed lint failures * Fixed lint failures * Fixed condition * Fixed lint failures Co-authored-by: Thomas Widhalm <widhalmt@widhalm.or.at>
1 parent d5534a7 commit cbbfb88

File tree

6 files changed

+78
-5
lines changed

6 files changed

+78
-5
lines changed

defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
---
22

33
patroni_postgresql_version: 11
4+
patroni_postgresql_version_latest: false
45
patroni_postgresql_exists: false
56
patroni_install_from_pip: true
67
patroni_install_haproxy: false
8+
patroni_install_postgresql_repo: true
79

810
patroni_config_dir: /etc/patroni
911
patroni_config_file: "{{ inventory_hostname }}.yml"

tasks/postgresql.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,24 @@
2323
regexp: ^#?create_main_cluster.*$
2424
when: ansible_os_family == "Debian"
2525

26-
- name: Configure postgresql repository
27-
package:
28-
name: "{{ postgresql_yum_repo_url }}"
26+
- block:
27+
- name: "Configure postgresql repository key"
28+
rpm_key:
29+
state: present
30+
key: "{{ postgresql_yum_repo_gpg_key_url }}"
31+
when:
32+
- patroni_install_postgresql_repo | bool
33+
- ansible_distribution_major_version >= "8"
34+
35+
- name: Configure postgresql repository
36+
package:
37+
name: "{{ postgresql_yum_repo_url }}"
38+
when: patroni_install_postgresql_repo | bool
39+
40+
- name: Disable postgresql module
41+
command: "dnf -y module disable postgresql"
42+
changed_when: false
43+
when: ansible_distribution_major_version >= "8"
2944
when: ansible_os_family == "RedHat"
3045

3146
- name: Install postgresql packages

tasks/variables.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
- name: Include OS-specific variables
3-
include_vars: "{{ ansible_os_family }}.yml"
3+
include_vars: "{{ ansible_os_family }}-{{ ansible_distribution_major_version }}.yml"
44
tags: [patroni, patroni-install, patroni-configure]
55

66
- name: Define Debian specific facts
@@ -23,6 +23,12 @@
2323

2424
- name: Define RedHat specific facts
2525
block:
26+
- name: Define postgresql_yum_repo_gpg_key_url.
27+
set_fact:
28+
postgresql_yum_repo_gpg_key_url: "{{ __postgresql_yum_repo_gpg_key_url }}"
29+
when:
30+
- postgresql_yum_repo_gpg_key_url is not defined
31+
- ansible_distribution_major_version >= "8"
2632

2733
- name: Define postgresql_yum_repo_pkg_name.
2834
set_fact:
@@ -45,7 +51,18 @@
4551
- name: Define patroni_postgresql_packages.
4652
set_fact:
4753
patroni_postgresql_packages: "{{ __patroni_postgresql_packages | list }}"
48-
when: patroni_postgresql_packages is not defined
54+
when:
55+
patroni_postgresql_packages is not defined and
56+
not patroni_postgresql_version_latest | bool or
57+
ansible_os_family == 'Debian'
58+
59+
- name: Define patroni_postgresql_packages with latest major version.
60+
set_fact:
61+
patroni_postgresql_packages: "{{ __patroni_postgresql_packages_latest | list }}"
62+
when:
63+
- patroni_postgresql_packages is not defined
64+
- ansible_os_family != 'Debian'
65+
- patroni_postgresql_version_latest | bool
4966

5067
- name: Define patroni_system_packages.
5168
set_fact:
File renamed without changes.

vars/RedHat.yml renamed to vars/RedHat-7.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ __patroni_postgresql_packages:
1616
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-contrib-{{ postgresql_yum_repo_pkg_version }}", state: "present" }
1717
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-devel-{{ postgresql_yum_repo_pkg_version }}", state: "present" }
1818

19+
__patroni_postgresql_packages_latest:
20+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}", state: "present" }
21+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-server", state: "present" }
22+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-contrib", state: "present" }
23+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-devel", state: "present" }
24+
1925
__patroni_system_packages:
2026
- { name: "centos-release-scl-rh", state: "present" }
2127
- { name: "llvm-toolset-7-clang", state: "present" }

vars/RedHat-8.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
3+
__postgresql_yum_repo_url: "https://download.postgresql.org/pub/repos/yum/reporpms/{{ 'F' if ansible_distribution|lower == 'fedora' else 'EL' }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}/{{ postgresql_yum_repo_pkg_name }}"
4+
__postgresql_yum_repo_pkg_name: "pgdg-redhat-repo-latest.noarch.rpm"
5+
__postgresql_yum_repo_pkg_version: "13.8-1PGDG.rhel8"
6+
__postgresql_yum_repo_gpg_key_url: "https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG"
7+
8+
__patroni_postgresql_data_dir: "/var/lib/pgsql/{{ patroni_postgresql_version }}/data"
9+
__patroni_postgresql_config_dir: "/var/lib/pgsql/{{ patroni_postgresql_version }}/data"
10+
__patroni_postgresql_bin_dir: "/usr/pgsql-{{ patroni_postgresql_version }}/bin"
11+
__patroni_postgresql_pgpass: /var/lib/pgsql/.pgpass
12+
__patroni_bin_dir: /usr/local/bin
13+
14+
__patroni_postgresql_packages:
15+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-server-{{ postgresql_yum_repo_pkg_version }}", state: "present" }
16+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-contrib-{{ postgresql_yum_repo_pkg_version }}", state: "present" }
17+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-devel-{{ postgresql_yum_repo_pkg_version }}", state: "present" }
18+
19+
__patroni_postgresql_packages_latest:
20+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-server", state: "present" }
21+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-contrib", state: "present" }
22+
- { name: "postgresql{{ patroni_postgresql_version|replace('.','') }}-devel", state: "present" }
23+
24+
__patroni_system_packages:
25+
- { name: "epel-release", state: "present" }
26+
- { name: "gcc", state: "present" }
27+
- { name: "python3-devel", state: "present" }
28+
- { name: "python3-psycopg2", state: "present" }
29+
- { name: "python3-pip", state: "present" }
30+
- { name: "jq", state: "present" }
31+
32+
__patroni_haproxy_packages:
33+
- { name: "haproxy", state: "present" }

0 commit comments

Comments
 (0)