tpotce/uninstall.sh

105 lines
3.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
myUNINSTALL_NOTIFICATION="### Now installing required packages ..."
myUSER=$(whoami)
myTPOT_CONF_FILE="/home/${myUSER}/tpotce/.env"
myANSIBLE_TPOT_PLAYBOOK="installer/remove/tpot.yml"
myUNINSTALLER=$(cat << "EOF"
2024-06-04 13:37:42 +00:00
_____ ________ __ _____ _____ _____ ____ ____ _______ _____ _ _ ______ _ _ _____ __
|_ _||___ /\ \ / //\ | __ \|_ _| / ____| / __ \ / __ \|__ __| / ____|| | | ||___ /| | | | / ____|/_ |
| | / / \ \ / // \ | | | | | | | | __ | | | | | | | | | | | | __ | | | | / / | | | | | (___ | |
| | / / \ \/ // /\ \ | | | | | | | | |_ || | | | | | | | | | | | |_ || | | | / / | | | | \___ \ | |
_| |_ / /__ \ // ____ \ | |__| |_| |_ | |__| || |__| | | |__| | | | | |__| || |__| | / /__ | |__| | ____) | | |
|_____|/_____| \//_/ \_\|_____/|_____| \_____| \____/ \____/ |_| \_____| \____/ /_____| \____/ |_____/ |_|
EOF
)
# Check if running with root privileges
if [ ${EUID} -eq 0 ];
then
echo "This script should not be run as root. Please run it as a regular user."
echo
exit 1
fi
# Check if running on a supported distribution
mySUPPORTED_DISTRIBUTIONS=("AlmaLinux" "Debian GNU/Linux" "Fedora Linux" "openSUSE Tumbleweed" "Raspbian GNU/Linux" "Rocky Linux" "Ubuntu")
myCURRENT_DISTRIBUTION=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"')
if [[ ! " ${mySUPPORTED_DISTRIBUTIONS[@]} " =~ " ${myCURRENT_DISTRIBUTION} " ]];
then
echo "### Only the following distributions are supported: AlmaLinux, Fedora, Debian, openSUSE Tumbleweed, Rocky Linux and Ubuntu."
echo "### Please follow the T-Pot documentation on how to run T-Pot on macOS, Windows and other currently unsupported platforms."
echo
exit 1
fi
# Begin of Uninstaller
echo "$myUNINSTALLER"
echo
echo
echo "### This script will now uninstall T-Pot."
while [ "${myQST}" != "y" ] && [ "${myQST}" != "n" ];
do
echo
read -p "### Uninstall? (y/n) " myQST
echo
done
if [ "${myQST}" = "n" ];
then
echo
echo "### Aborting!"
echo
exit 0
fi
# Define tag for Ansible
myANSIBLE_DISTRIBUTIONS=("Fedora Linux" "Debian GNU/Linux" "Raspbian GNU/Linux" "Rocky Linux")
if [[ "${myANSIBLE_DISTRIBUTIONS[@]}" =~ "${myCURRENT_DISTRIBUTION}" ]];
then
myANSIBLE_TAG=$(echo ${myCURRENT_DISTRIBUTION} | cut -d " " -f 1)
else
myANSIBLE_TAG=${myCURRENT_DISTRIBUTION}
fi
# Check type of sudo access
sudo -n true > /dev/null 2>&1
if [ $? -eq 1 ];
then
myANSIBLE_BECOME_OPTION="--ask-become-pass"
echo "### sudo not acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
echo "### Ansible will ask for the BECOME password which is typically the password you sudo with."
echo
else
myANSIBLE_BECOME_OPTION="--become"
echo "### sudo acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
echo
fi
# Run Ansible Playbook
echo "### Now running T-Pot Ansible Uninstallation Playbook ..."
echo
2024-03-24 16:28:26 +00:00
rm ${HOME}/uninstall_tpot.log > /dev/null 2>&1
2024-03-24 15:59:02 +00:00
ANSIBLE_LOG_PATH=${HOME}/uninstall_tpot.log ansible-playbook ${myANSIBLE_TPOT_PLAYBOOK} -i 127.0.0.1, -c local --tags "${myANSIBLE_TAG}" ${myANSIBLE_BECOME_OPTION}
# Something went wrong
if [ ! $? -eq 0 ];
then
echo "### Something went wrong with the Playbook, please review the output and / or uninstall_tpot.log for clues."
echo "### Aborting."
echo
exit 1
else
echo "### Playbook was successful."
2024-03-24 15:59:02 +00:00
echo "### Now removing ${HOME}/tpotce."
2024-03-24 16:22:43 +00:00
sudo rm -rf ${HOME}/tpotce
2024-03-24 16:01:29 +00:00
rm -rf ${HOME}/tpot.yml
echo
fi
# Done
echo "### Done. Please reboot and re-connect via SSH on tcp/22."
echo