--- - name: RHEL based distros when: ansible_os_family == "RedHat" block: - name: Install WAL-G repository ansible.builtin.yum_repository: name: "{{ item.name }}" description: "{{ item.description }}" file: "{{ item.file }}" baseurl: "{{ item.baseurl }}" gpgcheck: "{{ item.gpgcheck | default('no') }}" enabled: "{{ item.enabled | default('yes') }}" repo_gpgcheck: "{{ item.repo_gpgcheck | default('no') }}" gpgkey: "{{ item.gpgkey | default(omit) }}" loop: "{{ wal_g_rpm_repository }}" when: wal_g_install_repo - name: "Install WAL-G {{ wal_g_version }}" dnf: name: "{{ wal_g_package }}" state: present update_cache: yes allow_downgrade: yes tags: wal-g, wal_g, wal_g_install - name: "Install curl and jq" dnf: name: - curl - jq state: present update_cache: yes - name: Debian based distros when: ansible_os_family == "Debian" block: - name: Install apt-transport-https apt: name: apt-transport-https state: present - name: Add WAL-G repository ansible.builtin.apt_repository: repo: "{{ item.repo }}" state: present filename: "{{ item.filename }}" update_cache: yes loop: "{{ wal_g_apt_repository }}" when: wal_g_install_repo - name: "Install WAL-G {{ wal_g_version }} and deps" apt: name: - "{{ wal_g_package }}" - libsodium23 - liblzo2-2 state: present update_cache: yes allow_downgrade: yes tags: wal-g, wal_g, wal_g_install - name: "Install curl and jq" apt: name: - curl - jq state: present update_cache: yes - name: "Gather packages" package_facts: manager: auto - name: "Set fact about PostgreSQL package" set_fact: wal_g_postgresql_package: "{{ ansible_facts.packages | list | select('match', wal_g_postgresql_package_name_regex) | first }}" - name: "Get PostgreSQL major version" set_fact: wal_g_pg_major_version: "{{ ansible_facts.packages[wal_g_postgresql_package][0]['version'] | split('.') | first }}" - name: Create wal-g config when: wal_g_config is defined block: - name: Merge user options for WAL-G part of config set_fact: wal_g_combined_config: "{{ wal_g_default_config | combine(wal_g_config|default({}), recursive=true) }}" - name: "Generate conf file walg.json" copy: content: "{{ wal_g_combined_config | to_nice_json }}" dest: "{{ wal_g_pg_home_dir }}/{{ wal_g_config_name }}" owner: "{{ wal_g_pg_config_owner }}" group: "{{ wal_g_pg_config_group }}" mode: 0644 tags: wal-g, wal_g, wal_g_conf - name: Create wal-g restore config when: wal_g_restore_config is defined block: - name: Merge user options for WAL-G part of restore config set_fact: wal_g_restore_combined_config: "{{ wal_g_default_restore_config | combine(wal_g_restore_config|default({}), recursive=true) }}" - name: "Generate conf file walg-restore.json" copy: content: "{{ wal_g_restore_combined_config | to_nice_json }}" dest: "{{ wal_g_pg_home_dir }}/{{ wal_g_restore_config_name }}" owner: "{{ wal_g_pg_config_owner }}" group: "{{ wal_g_pg_config_group }}" mode: 0644