Skip to content

Commit 8494c00

Browse files
committed
[NEW] added Percona PostgreSQL
1 parent 53981a3 commit 8494c00

File tree

4 files changed

+92
-0
lines changed

4 files changed

+92
-0
lines changed

Ansible/percona/postgresql/ansible.cfg

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[all]
2+
debian ansible_host=142.93.193.106 ansible_user=root
3+
ubuntu ansible_host=143.198.115.57 ansible_user=root
4+
rockylinux ansible_host=178.128.150.243 ansible_user=root
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
- name: Install Percona Distribution for PostgreSQL
3+
hosts: all
4+
become: yes
5+
vars_files:
6+
- ../vars.yml
7+
tasks:
8+
- name: Detect Operating System
9+
ansible.builtin.set_fact:
10+
is_debian: "{{ ansible_os_family == 'Debian' }}"
11+
is_redhat: "{{ ansible_os_family == 'RedHat' }}"
12+
13+
- name: Install curl
14+
ansible.builtin.package:
15+
name: curl
16+
state: present
17+
18+
# Debian/Ubuntu: Install Percona release package
19+
- name: Download Percona release package (Debian/Ubuntu)
20+
ansible.builtin.get_url:
21+
url: "{{ percona_repo_url }}/apt/{{ percona_release_package }}.{{ ansible_lsb.codename }}_all.deb"
22+
dest: "/tmp/{{ percona_release_package }}.{{ ansible_lsb.codename }}_all.deb"
23+
when: is_debian
24+
25+
- name: Install Percona release package (Debian/Ubuntu)
26+
ansible.builtin.apt:
27+
deb: "/tmp/{{ percona_release_package }}.{{ ansible_lsb.codename }}_all.deb"
28+
state: present
29+
when: is_debian
30+
31+
# RedHat/CentOS: Install Percona release package
32+
- name: Download Percona release package (RedHat/CentOS)
33+
ansible.builtin.get_url:
34+
url: "{{ percona_repo_url }}/yum/{{ percona_release_package }}.noarch.rpm"
35+
dest: "/tmp/{{ percona_release_package }}.noarch.rpm"
36+
when: is_redhat
37+
38+
- name: Install Percona release package (RedHat/CentOS)
39+
ansible.builtin.yum:
40+
name: "/tmp/{{ percona_release_package }}.noarch.rpm"
41+
state: present
42+
when: is_redhat
43+
44+
# Configure Percona repository
45+
- name: Configure Percona repository (RedHat/CentOS)
46+
ansible.builtin.command:
47+
cmd: percona-release setup ppg-{{ percona_version }}
48+
creates: "/etc/yum.repos.d/percona-ppg-{{ percona_version }}.repo"
49+
when: is_redhat
50+
51+
# Update package cache
52+
- name: Update package cache (Debian/Ubuntu)
53+
ansible.builtin.apt:
54+
update_cache: yes
55+
when: is_debian
56+
57+
- name: Update package cache (RedHat/CentOS)
58+
ansible.builtin.yum:
59+
name: "*"
60+
state: latest
61+
when: is_redhat
62+
63+
# Install Percona PostgreSQL packages
64+
- name: Install Percona PostgreSQL packages (Debian/Ubuntu)
65+
ansible.builtin.apt:
66+
name: "{{ debian_packages }}"
67+
state: present
68+
when: is_debian
69+
70+
- name: Install Percona PostgreSQL packages (RedHat/CentOS)
71+
ansible.builtin.yum:
72+
name: "{{ redhat_packages }}"
73+
state: present
74+
when: is_redhat
75+
76+
# Start and enable PostgreSQL service
77+
- name: Start and enable PostgreSQL service
78+
ansible.builtin.service:
79+
name: "{{ 'postgresql' if is_debian else 'postgresql-{{ percona_version }}' }}"
80+
state: started
81+
enabled: yes
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
percona_repo_url: "https://repo.percona.com"
2+
percona_release_package: "percona-release_latest"
3+
percona_version: "17"
4+
debian_packages:
5+
- "percona-ppg-server-17"
6+
redhat_packages:
7+
- "percona-ppg-server17"

0 commit comments

Comments
 (0)