From c83a143eef8952fba088300a5b8ce03352b6f518 Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Mon, 5 Aug 2024 15:13:07 -0400 Subject: [PATCH 1/4] apply holds to salt each state run --- salt/salt/map.jinja | 2 -- salt/salt/master.sls | 3 --- salt/salt/minion.sls | 19 ++++++------------- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/salt/salt/map.jinja b/salt/salt/map.jinja index 5f687ef3f..cc388edb4 100644 --- a/salt/salt/map.jinja +++ b/salt/salt/map.jinja @@ -3,12 +3,10 @@ {% if grains.os_family == 'Debian' %} {% set SPLITCHAR = '+' %} - {% set SALTNOTHELD = salt['cmd.run']('apt-mark showhold | grep -q salt ; echo $?', python_shell=True) %} {% set SALTPACKAGES = ['salt-common', 'salt-master', 'salt-minion'] %} {% set SYSTEMD_UNIT_FILE = '/lib/systemd/system/salt-minion.service' %} {% else %} {% set SPLITCHAR = '-' %} - {% set SALTNOTHELD = salt['cmd.run']('yum versionlock list | grep -q salt ; echo $?', python_shell=True) %} {% set SALTPACKAGES = ['salt', 'salt-master', 'salt-minion'] %} {% set SYSTEMD_UNIT_FILE = '/usr/lib/systemd/system/salt-minion.service' %} {% endif %} diff --git a/salt/salt/master.sls b/salt/salt/master.sls index 6e320e4a6..cf9f4718c 100644 --- a/salt/salt/master.sls +++ b/salt/salt/master.sls @@ -1,16 +1,13 @@ -{% from 'salt/map.jinja' import SALTNOTHELD %} {% from 'allowed_states.map.jinja' import allowed_states %} {% if sls in allowed_states %} include: - salt.minion -{% if SALTNOTHELD == 1 %} hold_salt_master_package: module.run: - pkg.hold: - name: salt-master -{% endif %} # prior to 2.4.30 this engine ran on the manager with salt-minion # this has changed to running with the salt-master in 2.4.30 diff --git a/salt/salt/minion.sls b/salt/salt/minion.sls index d26365485..807b04a4e 100644 --- a/salt/salt/minion.sls +++ b/salt/salt/minion.sls @@ -2,7 +2,6 @@ {% from 'salt/map.jinja' import UPGRADECOMMAND with context %} {% from 'salt/map.jinja' import SALTVERSION %} {% from 'salt/map.jinja' import INSTALLEDSALTVERSION %} -{% from 'salt/map.jinja' import SALTNOTHELD %} {% from 'salt/map.jinja' import SALTPACKAGES %} {% from 'salt/map.jinja' import SYSTEMD_UNIT_FILE %} {% import_yaml 'salt/minion.defaults.yaml' as SALTMINION %} @@ -20,15 +19,12 @@ include: {% if INSTALLEDSALTVERSION|string != SALTVERSION|string %} -{% if SALTNOTHELD | int == 0 %} unhold_salt_packages: - module.run: - - pkg.unhold: - - pkgs: + pkg.unheld: + - pkgs: {% for package in SALTPACKAGES %} - - {{ package }} + - {{ package }}-0:{{INSTALLEDSALTVERSION}}-0.* {% endfor %} -{% endif %} install_salt_minion: cmd.run: @@ -42,15 +38,12 @@ install_salt_minion: {% if INSTALLEDSALTVERSION|string == SALTVERSION|string %} -{% if SALTNOTHELD | int == 1 %} hold_salt_packages: - module.run: - - pkg.hold: - - pkgs: + pkg.held: + - pkgs: {% for package in SALTPACKAGES %} - - {{ package }} + - {{ package }}-0:{{SALTVERSION}}-0.* {% endfor %} -{% endif %} remove_error_log_level_logfile: file.line: From 2fe5dccbb4b93bfc7598fcba197554a507697267 Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Mon, 5 Aug 2024 15:25:28 -0400 Subject: [PATCH 2/4] fix hold/unhold --- salt/salt/minion.sls | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/salt/minion.sls b/salt/salt/minion.sls index 807b04a4e..1a14f7419 100644 --- a/salt/salt/minion.sls +++ b/salt/salt/minion.sls @@ -23,7 +23,7 @@ unhold_salt_packages: pkg.unheld: - pkgs: {% for package in SALTPACKAGES %} - - {{ package }}-0:{{INSTALLEDSALTVERSION}}-0.* + - {{ package }}: {{INSTALLEDSALTVERSION}}-0.* {% endfor %} install_salt_minion: @@ -42,7 +42,7 @@ hold_salt_packages: pkg.held: - pkgs: {% for package in SALTPACKAGES %} - - {{ package }}-0:{{SALTVERSION}}-0.* + - {{ package }}: {{SALTVERSION}}-0.* {% endfor %} remove_error_log_level_logfile: From c0c01f0d17fe6c9e3cf45b1fe9136d5c4ea1650f Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Mon, 5 Aug 2024 16:50:19 -0400 Subject: [PATCH 3/4] lock and unlock salt in soup --- salt/manager/tools/sbin/soup | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/salt/manager/tools/sbin/soup b/salt/manager/tools/sbin/soup index 221eb3799..d59cb8ccb 100755 --- a/salt/manager/tools/sbin/soup +++ b/salt/manager/tools/sbin/soup @@ -957,7 +957,9 @@ upgrade_salt() { if [[ $is_rpm ]]; then echo "Removing yum versionlock for Salt." echo "" - yum versionlock delete "salt-*" + yum versionlock delete "salt-0:$INSTALLEDSALTVERSION-0.*" + yum versionlock delete "salt-minion-0:$INSTALLEDSALTVERSION-0.*" + yum versionlock delete "salt-master-0:$INSTALLEDSALTVERSION-0.*" echo "Updating Salt packages." echo "" set +e @@ -975,7 +977,9 @@ upgrade_salt() { set -e echo "Applying yum versionlock for Salt." echo "" - yum versionlock add "salt-*" + yum versionlock add "salt-0:$NEWSALTVERSION-0.*" + yum versionlock add "salt-minion-0:$NEWSALTVERSION-0.*" + yum versionlock add "salt-master-0:$NEWSALTVERSION-0.*" # Else do Ubuntu things elif [[ $is_deb ]]; then echo "Removing apt hold for Salt." From 009c8d55c3c73acc0b65800136142454043fa9ba Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Tue, 6 Aug 2024 09:26:58 -0400 Subject: [PATCH 4/4] unhold all verions for upgrade --- salt/manager/tools/sbin/soup | 6 +++--- salt/salt/minion.sls | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/salt/manager/tools/sbin/soup b/salt/manager/tools/sbin/soup index d59cb8ccb..72fda32aa 100755 --- a/salt/manager/tools/sbin/soup +++ b/salt/manager/tools/sbin/soup @@ -957,9 +957,9 @@ upgrade_salt() { if [[ $is_rpm ]]; then echo "Removing yum versionlock for Salt." echo "" - yum versionlock delete "salt-0:$INSTALLEDSALTVERSION-0.*" - yum versionlock delete "salt-minion-0:$INSTALLEDSALTVERSION-0.*" - yum versionlock delete "salt-master-0:$INSTALLEDSALTVERSION-0.*" + yum versionlock delete "salt" + yum versionlock delete "salt-minion" + yum versionlock delete "salt-master" echo "Updating Salt packages." echo "" set +e diff --git a/salt/salt/minion.sls b/salt/salt/minion.sls index 1a14f7419..a5953e8e1 100644 --- a/salt/salt/minion.sls +++ b/salt/salt/minion.sls @@ -23,7 +23,7 @@ unhold_salt_packages: pkg.unheld: - pkgs: {% for package in SALTPACKAGES %} - - {{ package }}: {{INSTALLEDSALTVERSION}}-0.* + - {{ package }} {% endfor %} install_salt_minion: