diff --git a/misc/netdata.sh b/misc/netdata.sh index 67c6646e..2e02d515 100644 --- a/misc/netdata.sh +++ b/misc/netdata.sh @@ -5,8 +5,9 @@ # License: MIT # https://github.com/tteck/Proxmox/raw/main/LICENSE -clear -cat <<"EOF" +function header_info { + clear + cat <<"EOF" _ __ __ ____ __ / | / /__ / /_/ __ \____ _/ /_____ _ / |/ / _ \/ __/ / / / __ `/ __/ __ `/ @@ -14,35 +15,81 @@ cat <<"EOF" /_/ |_/\___/\__/_____/\__,_/\__/\__,_/ EOF +} + +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +GN=$(echo "\033[1;92m") +CL=$(echo "\033[m") +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}✓${CL}" +silent() { "$@" >/dev/null 2>&1; } +set -e +header_info + +function msg_info() { + local msg="$1" + echo -ne " ${HOLD} ${YW}${msg}..." +} + +function msg_ok() { + local msg="$1" + echo -e "${BFR} ${CM} ${GN}${msg}${CL}" +} install() { -while true; do - read -p "This script will install NetData on Proxmox VE 8+. Proceed(y/n)?" yn - case $yn in - [Yy]*) break ;; - [Nn]*) exit ;; - *) echo "Please answer yes or no." ;; - esac -done + while true; do + read -p "Are you sure you want to install NetData on Proxmox VE host. Proceed(y/n)?" yn + case $yn in + [Yy]*) break ;; + [Nn]*) exit ;; + *) echo "Please answer yes or no." ;; + esac + done -wget -q https://repo.netdata.cloud/repos/repoconfig/debian/bookworm/netdata-repo_2-2+debian12_all.deb -dpkg -i netdata-repo_2-2+debian12_all.deb -rm -rf netdata-repo_2-2+debian12_all.deb -apt-get update &>/dev/null -apt-get -y upgrade -apt-get install -y netdata -echo -e "\nInstalled NetData (http://$(hostname -I | awk '{print $1}'):19999)\n" + read -r -p "Verbose mode? " prompt + if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then + STD="" + else + STD="silent" + fi + header_info + + msg_info "Setting up repository" + wget -q https://repo.netdata.cloud/repos/repoconfig/debian/bookworm/netdata-repo_2-2+debian12_all.deb + $STD dpkg -i netdata-repo_2-2+debian12_all.deb + rm -rf netdata-repo_2-2+debian12_all.deb + msg_ok "Set up repository" + + msg_info "Installing Netdata" + $STD apt-get update + $STD apt-get install -y netdata + msg_ok "Installed Netdata\n" + msg_ok "Completed Successfully!\n" + echo -e "\n Netdata should be reachable at${BL} http://$(hostname -I | awk '{print $1}'):19999 ${CL}\n" } uninstall() { -systemctl stop netdata -apt-get remove --purge -y netdata netdata-repo -rm -rf /var/log/netdata /var/lib/netdata /var/cache/netdata /etc/apt/sources.list.d/netdata.list -rm -rf /etc/apt/trusted.gpg.d/netdata-archive-keyring.gpg -systemctl daemon-reload -apt autoremove -y -userdel netdata - echo -e "\nRemoved NetData from Proxmox VE\n" + read -r -p "Verbose mode? " prompt + if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then + STD="" + else + STD="silent" + fi + header_info + + msg_info "Uninstalling Netdata" + systemctl stop netdata + rm -rf /var/log/netdata /var/lib/netdata /var/cache/netdata /etc/netdata/go.d + rm -rf /etc/apt/trusted.gpg.d/netdata-archive-keyring.gpg /etc/apt/sources.list.d/netdata.list + $STD apt-get remove --purge -y netdata netdata-repo + systemctl daemon-reload + $STD apt autoremove -y + $STD userdel netdata + msg_ok "Uninstalled Netdata\n" + msg_ok "Completed Successfully!\n" } if ! pveversion | grep -Eq "pve-manager/(8\.[0-9])"; then