add Debian os family support

This commit is contained in:
ace
2023-03-29 23:49:37 +03:00
parent 30ba577f3a
commit b443059313
24 changed files with 463 additions and 308 deletions

View File

@ -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

View 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)

View 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 }}"

View 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)