mirror of
https://gitea.0xace.cc/ansible-galaxy/patroni.git
synced 2025-06-29 02:53:07 +00:00
add Debian os family support
This commit is contained in:
@ -1,69 +1,3 @@
|
||||
- name: Add gpg package
|
||||
apt:
|
||||
name: gpg
|
||||
|
||||
- name: Add gpg keys for patroni
|
||||
ansible.builtin.apt_key:
|
||||
url: "{{ item.url }}"
|
||||
keyring: "{{ item.keyring }}"
|
||||
loop: "{{ patroni_apt_key }}"
|
||||
|
||||
- name: Add Patroni repository
|
||||
apt_repository:
|
||||
repo: "{{ item.repo }}"
|
||||
state: present
|
||||
filename: "{{ item.filename }}"
|
||||
update_cache: yes
|
||||
loop: "{{ patroni_apt_repository }}"
|
||||
|
||||
- name: Check if PostgreSQL is installed
|
||||
ansible.builtin.shell: dpkg-query -l {{ patroni_postgresql_package_name }} 2>&1 | grep {{ patroni_postgresql_version }}
|
||||
ignore_errors: True
|
||||
register: is_patroni_postgresql
|
||||
changed_when: is_patroni_postgresql.rc != 0
|
||||
failed_when: False
|
||||
|
||||
- name: Mask PostgreSQL before install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_postgresql_package_name }}"
|
||||
masked: yes
|
||||
when: is_patroni_postgresql.rc != 0
|
||||
|
||||
- name: "Install {{ patroni_postgresql_package_name }}-{{ patroni_postgresql_version }}"
|
||||
apt:
|
||||
name: "{{ patroni_postgresql_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_postgresql_setup
|
||||
when: is_patroni_postgresql.rc != 0
|
||||
|
||||
- name: Unmask PostgreSQL after install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_postgresql_package_name }}"
|
||||
masked: no
|
||||
when: is_patroni_postgresql.rc != 0
|
||||
|
||||
- name: Check if Patroni is installed
|
||||
ansible.builtin.shell: dpkg-query -l {{ patroni_package_name }} 2>&1 | grep {{ patroni_version }}
|
||||
ignore_errors: True
|
||||
register: is_patroni
|
||||
changed_when: is_patroni.rc != 0
|
||||
failed_when: False
|
||||
|
||||
- name: Mask Patroni before install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_package_name }}"
|
||||
masked: yes
|
||||
when: is_patroni.rc != 0
|
||||
|
||||
- name: "Install {{ patroni_package_name }}-{{ patroni_version }}"
|
||||
apt:
|
||||
name: "{{ patroni_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_setup
|
||||
when: is_patroni.rc != 0
|
||||
|
||||
- name: Unmask Patroni after install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_package_name }}"
|
||||
masked: no
|
||||
when: is_patroni.rc != 0
|
||||
- name: "Install Patroni {{ patroni_version }}"
|
||||
include_tasks: patroni_install.yaml
|
||||
tags: patroni_install
|
||||
|
37
tasks/Debian/patroni_install.yaml
Normal file
37
tasks/Debian/patroni_install.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
- name: Gather packages
|
||||
package_facts:
|
||||
manager: auto
|
||||
|
||||
- name: Set fact about Patroni package
|
||||
set_fact:
|
||||
patroni_installed_package: "{{ ansible_facts.packages[patroni_package_name][0]['name'] }}"
|
||||
when: patroni_package_name in ansible_facts.packages
|
||||
|
||||
- name: Print installed Patroni version
|
||||
debug:
|
||||
msg: "{{ ansible_facts.packages[patroni_package_name][0]['version'] }}"
|
||||
verbosity: 2
|
||||
when: patroni_installed_package is defined
|
||||
|
||||
- name: Mask Patroni before install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_unit_name }}"
|
||||
masked: yes
|
||||
when: patroni_package_name not in ansible_facts.packages or ansible_facts.packages[patroni_package_name][0]['version'] != (patroni_version|string + "-" + patroni_version_build|string)
|
||||
|
||||
- name: "Install {{ patroni_package_name }}-{{ patroni_version }}-{{ patroni_version_build }}"
|
||||
apt:
|
||||
name: "{{ patroni_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_setup
|
||||
when: patroni_package_name not in ansible_facts.packages
|
||||
|
||||
- name: "Update {{ patroni_package_name }}-{{ patroni_version }}-{{ patroni_version_build }}"
|
||||
apt:
|
||||
name: "{{ patroni_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_update
|
||||
notify: Restart Patroni
|
||||
when:
|
||||
- patroni_package_name in ansible_facts.packages
|
||||
- ansible_facts.packages[patroni_package_name][0]['version'] != (patroni_version|string + "-" + patroni_version_build|string)
|
20
tasks/Debian/patroni_repos_and_deps.yaml
Normal file
20
tasks/Debian/patroni_repos_and_deps.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
- name: Install deps packages
|
||||
apt:
|
||||
name: "{{ patroni_deps_packages }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Add gpg keys for patroni
|
||||
ansible.builtin.apt_key:
|
||||
url: "{{ item.url }}"
|
||||
keyring: "{{ item.keyring }}"
|
||||
loop: "{{ patroni_apt_key }}"
|
||||
|
||||
- name: Add Patroni repository
|
||||
apt_repository:
|
||||
repo: "{{ item.repo }}"
|
||||
state: present
|
||||
filename: "{{ item.filename }}"
|
||||
update_cache: yes
|
||||
loop: "{{ patroni_apt_repository }}"
|
||||
|
52
tasks/Debian/postgresql_install.yaml
Normal file
52
tasks/Debian/postgresql_install.yaml
Normal file
@ -0,0 +1,52 @@
|
||||
- name: Install postgresql-common
|
||||
apt:
|
||||
name: postgresql-common
|
||||
state: present
|
||||
|
||||
- name: Create dir createcluster.d
|
||||
file:
|
||||
path: /etc/postgresql-common/createcluster.d
|
||||
state: directory
|
||||
|
||||
- name: Disable main cluster creation by default
|
||||
copy:
|
||||
dest: /etc/postgresql-common/createcluster.d/create-main-cluster.conf
|
||||
content: |
|
||||
create_main_cluster = false
|
||||
|
||||
- name: Gather packages
|
||||
package_facts:
|
||||
manager: auto
|
||||
|
||||
- name: Set fact about PostgreSQL package
|
||||
set_fact:
|
||||
patroni_postgresql_installed_package: "{{ ansible_facts.packages[patroni_postgresql_package_name][0]['name'] }}"
|
||||
when: patroni_postgresql_package_name in ansible_facts.packages
|
||||
|
||||
- name: Print installed PostgreSQL version
|
||||
debug:
|
||||
msg: "{{ ansible_facts.packages[patroni_postgresql_package_name][0]['version'] }}"
|
||||
verbosity: 2
|
||||
when: patroni_postgresql_installed_package is defined
|
||||
|
||||
- name: Mask PostgreSQL before install
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ patroni_postgresql_unit_name }}"
|
||||
masked: yes
|
||||
when: patroni_postgresql_package_name not in ansible_facts.packages or ansible_facts.packages[patroni_postgresql_package_name][0]['version'] != (patroni_postgresql_version|string + "-" + patroni_postgresql_version_build|string)
|
||||
|
||||
- name: "Install {{ patroni_postgresql_package_name }}-{{ patroni_postgresql_version }}-{{ patroni_postgresql_version_build }}"
|
||||
apt:
|
||||
name: "{{ patroni_postgresql_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_postgresql_setup
|
||||
when: patroni_postgresql_package_name not in ansible_facts.packages
|
||||
|
||||
- name: "Update {{ patroni_postgresql_package_name }}-{{ patroni_postgresql_version }}-{{ patroni_postgresql_version_build }}"
|
||||
apt:
|
||||
name: "{{ patroni_postgresql_package }}"
|
||||
update_cache: yes
|
||||
register: patroni_postgresql_update
|
||||
when:
|
||||
- patroni_postgresql_package_name in ansible_facts.packages
|
||||
- ansible_facts.packages[patroni_postgresql_package_name][0]['version'] != (patroni_postgresql_version|string + "-" + patroni_postgresql_version_build|string)
|
Reference in New Issue
Block a user