Skip to content

Commit

Permalink
Ansible pg_upgrade.yml pre_check is failed when postgresql_version is…
Browse files Browse the repository at this point in the history
… int

  * regex_replace ansible filter expects a string or pattern
    otherwise it fails with the error.
    "first argument must be string or compiled pattern"
  • Loading branch information
ruslanloman committed Oct 2, 2024
1 parent 65939d6 commit 526b935
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
14 changes: 7 additions & 7 deletions automation/roles/upgrade/tasks/post_upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
# if pg_new_wal_dir is defined
- name: Delete the old PostgreSQL WAL directory
ansible.builtin.file:
path: "{{ postgresql_wal_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_old_version) }}"
path: "{{ postgresql_wal_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_old_version) }}"
state: absent
when:
- pg_current_datadir is success
Expand All @@ -48,7 +48,7 @@
ansible.builtin.package:
name: "{{ item }}"
state: absent
loop: "{{ postgresql_packages | regex_replace(postgresql_version, pg_old_version) }}"
loop: "{{ postgresql_packages | replace(postgresql_version, pg_old_version) }}"
register: package_remove
until: package_remove is success
delay: 5
Expand All @@ -67,7 +67,7 @@
name: "{{ item }}"
state: absent
purge: true
loop: "{{ postgresql_packages | regex_replace(postgresql_version, pg_old_version) }}"
loop: "{{ postgresql_packages | replace(postgresql_version, pg_old_version) }}"
register: apt_remove
until: apt_remove is success
delay: 5
Expand Down Expand Up @@ -159,14 +159,14 @@
- name: "WAL-G | Update PostgreSQL data directory path in .walg.json"
ansible.builtin.replace:
path: "{{ postgresql_home_dir }}/.walg.json"
regexp: "{{ postgresql_data_dir | regex_replace(postgresql_version, pg_old_version) }}"
replace: "{{ postgresql_data_dir | regex_replace(postgresql_version, pg_new_version) }}"
regexp: "{{ postgresql_data_dir | replace(postgresql_version, pg_old_version) }}"
replace: "{{ postgresql_data_dir | replace(postgresql_version, pg_new_version) }}"

- name: "WAL-G | Update PostgreSQL data directory path in cron jobs"
ansible.builtin.replace:
path: "{{ wal_g_cron_jobs[0].file | default('/etc/cron.d/walg') }}"
regexp: "{{ postgresql_data_dir | regex_replace(postgresql_version, pg_old_version) }}"
replace: "{{ postgresql_data_dir | regex_replace(postgresql_version, pg_new_version) }}"
regexp: "{{ postgresql_data_dir | replace(postgresql_version, pg_old_version) }}"
replace: "{{ postgresql_data_dir | replace(postgresql_version, pg_new_version) }}"
become: true
become_user: root
ignore_errors: true # show the error and continue the playbook execution
Expand Down
16 changes: 8 additions & 8 deletions automation/vars/upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,20 @@ pg_new_version: "" # specify the target version of PostgreSQL for the upgrade
# Adjust these variables if the paths are different from the default value.

# Directory containing binaries for the old PostgreSQL version.
pg_old_bindir: "{{ postgresql_bin_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_old_version) }}"
pg_old_bindir: "{{ postgresql_bin_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_old_version) }}"
# Data directory path for the old PostgreSQL version.
pg_old_datadir: "{{ postgresql_data_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_old_version) }}"
pg_old_datadir: "{{ postgresql_data_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_old_version) }}"
# Configuration directory path for the old PostgreSQL version.
pg_old_confdir: "{{ postgresql_conf_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_old_version) }}"
pg_old_confdir: "{{ postgresql_conf_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_old_version) }}"

# Directory containing binaries for the new PostgreSQL version.
pg_new_bindir: "{{ postgresql_bin_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_new_version) }}"
pg_new_bindir: "{{ postgresql_bin_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_new_version) }}"
# Data directory path for the new PostgreSQL version.
pg_new_datadir: "{{ postgresql_data_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_new_version) }}"
pg_new_datadir: "{{ postgresql_data_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_new_version) }}"
# Configuration directory path for the new PostgreSQL version.
pg_new_confdir: "{{ postgresql_conf_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_new_version) }}"
pg_new_confdir: "{{ postgresql_conf_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_new_version) }}"
# Custom WAL directory for the new PostgreSQL version (symlink will be created) [optional].
pg_new_wal_dir: "{{ postgresql_wal_dir | regex_replace('(/$)', '') | regex_replace(postgresql_version, pg_new_version) }}"
pg_new_wal_dir: "{{ postgresql_wal_dir | regex_replace('(/$)', '') | replace(postgresql_version, pg_new_version) }}"

# pg_upper_datadir: Specifies the top-level directory containing both old and new PostgreSQL data directories.
# The variable is derived from pg_new_datadir by removing any trailing slash and getting its grandparent directory.
Expand All @@ -38,7 +38,7 @@ pg_upper_datadir: "{{ pg_new_datadir | regex_replace('/$', '') | dirname | dirna

# List of package names for the new PostgreSQL version to be installed.
# automatically detects the list of packages based on the 'postgresql_packages' variable
pg_new_packages: "{{ postgresql_packages | regex_replace(postgresql_version, pg_new_version) }}"
pg_new_packages: "{{ postgresql_packages | replace(postgresql_version, pg_new_version) }}"

# Alternatively, you can explicitly specify the list of new packages to install.
# This gives you more control and should be used if the automatic update does not meet your needs.
Expand Down

0 comments on commit 526b935

Please sign in to comment.