Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only remove only salt-client if this is a server #1331

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions salt/post_provisioning_cleanup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ fi

# Nothing to do in case "install_salt_bundle" grain is not true
INSTALL_SALT_BUNDLE=$(${SALT_CALL} --local --log-level=quiet --output=txt grains.get install_salt_bundle)
SERVER=false
ROLES=$(${SALT_CALL} --local --log-level=quiet --output=txt grains.get roles)
if [[ "${ROLES}" == "local: ['server']" ]];then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The roles variable is a actually a list, so in principle it could accept multiple values and therefore this comparision would fail.

Maybe something like:

Suggested change
if [[ "${ROLES}" == "local: ['server']" ]];then
if [[ "${ROLES}" == *"'server'"* ]];then

What do you think?

echo "This is a server"
SERVER=true
PKGS="Salt minion"
else
echo "This is not a server"
PKGS="Salt"
fi


if [[ "$INSTALL_SALT_BUNDLE" != "local: True" ]]; then
exit 0
Expand All @@ -31,13 +42,25 @@ elif [ -x /usr/bin/apt ]; then
INSTALLER=apt
fi

echo "Removing Salt packages, except Salt Bundle (venv-salt-minion) ..."
echo "Removing ${PKGS} packages, except Salt Bundle (venv-salt-minion) ..."
if [[ "$INSTALLER" == "zypper" ]]; then
zypper -q --non-interactive remove salt-minion > /dev/null 2>&1 ||:
if [[ "$SERVER" == "true" ]];then
zypper -q --non-interactive remove salt-minion > /dev/null 2>&1 ||:
else
zypper -q --non-interactive remove salt salt-minion python3-salt python2-salt > /dev/null 2>&1 ||:
fi
elif [[ "$INSTALLER" == "yum" ]]; then
yum -y remove salt salt-minion python3-salt python2-salt > /dev/null 2>&1 ||:
if [[ "$SERVER" == "true" ]];then
yum -y remove salt-minion > /dev/null 2>&1 ||:
else
yum -y remove salt salt-minion python3-salt python2-salt > /dev/null 2>&1 ||:
fi
elif [[ "$INSTALLER" == "apt" ]]; then
apt-get --yes purge salt-common > /dev/null 2>&1 ||:
if [[ "$SERVER" == "true" ]];then
apt-get --yes purge salt-client > /dev/null 2>&1 ||:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should be salt-minion here, right?

Suggested change
apt-get --yes purge salt-client > /dev/null 2>&1 ||:
apt-get --yes purge salt-minion > /dev/null 2>&1 ||:

else
apt-get --yes purge salt-common > /dev/null 2>&1 ||:
fi
fi

echo "Done!"