diff --git a/grafana-stack/install.sh b/grafana-stack/install.sh new file mode 100644 index 0000000..ccd1a60 --- /dev/null +++ b/grafana-stack/install.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +# Function to install Loki and Promtail +install_loki_promtail() { + echo "Installing Loki and Promtail..." + + # Install Loki + echo "Installing Loki..." + wget -q -O - https://repo.thanos.io/thanos.key | apt-key add - + echo "deb [arch=amd64] https://repo.thanos.io/deb all main" | tee /etc/apt/sources.list.d/thanos.list + apt-get update -y + apt-get install -y loki + + # Install Promtail + echo "Installing Promtail..." + wget -q -O - https://repo.thanos.io/thanos.key | apt-key add - + echo "deb [arch=amd64] https://repo.thanos.io/deb all main" | tee /etc/apt/sources.list.d/thanos.list + apt-get update -y + apt-get install -y promtail + + # Enable and start Loki and Promtail services + echo "Enabling and starting Loki and Promtail services..." + systemctl enable loki + systemctl start loki + systemctl enable promtail + systemctl start promtail + + echo "Loki and Promtail installed and services started." +} + +# Check for sudo/root privileges +if [ "$(id -u)" != "0" ]; then + echo "Script must be run as root. Please enter your sudo password." + exec sudo bash "$0" "$@" +fi + +echo "Starting script as root." + +# Step 2: Install software-properties-common, apt-transport-https, wget +echo "Step 2: Installing software-properties-common, apt-transport-https, wget..." +apt-get update -y +apt-get install -y software-properties-common apt-transport-https wget + +# Step 3: Add the official Grafana GPG key +echo "Step 3: Adding the official Grafana GPG key..." +wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - + +# Step 4: Add the official Grafana repository for Debian +echo "Step 4: Adding the official Grafana repository..." +add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" + +# Step 5: Run apt update +echo "Step 5: Updating package list..." +apt-get update -y + +# Step 6: Install both Grafana & Prometheus +echo "Step 6: Installing Grafana and Prometheus..." +apt-get install -y grafana prometheus + +# Step 7: Edit the Grafana config file to change the default port +echo "Step 7: Changing Grafana port from 3000 to 3100..." +sed -i 's/;http_port = 3000/http_port = 3100/' /etc/grafana/grafana.ini + +# Step 8: Install and enable both Grafana and Prometheus as systemctl services +echo "Step 8: Enabling and starting Grafana and Prometheus services..." +systemctl daemon-reload +systemctl enable grafana-server +systemctl start grafana-server +systemctl enable prometheus +systemctl start prometheus + +# Step 9: Wait 2 minutes, then check both services are running successfully +echo "Step 9: Waiting 2 minutes to check service statuses..." +sleep 120 + +GRAFANA_STATUS=$(systemctl is-active grafana-server) +PROMETHEUS_STATUS=$(systemctl is-active prometheus) + +if [ "$GRAFANA_STATUS" != "active" ] || [ "$PROMETHEUS_STATUS" != "active" ]; then + echo "One or both services failed to start. Retrying in 2 minutes..." + sleep 120 + systemctl restart grafana-server + systemctl restart prometheus +fi + +GRAFANA_STATUS=$(systemctl is-active grafana-server) +PROMETHEUS_STATUS=$(systemctl is-active prometheus) + +if [ "$GRAFANA_STATUS" == "active" ] && [ "$PROMETHEUS_STATUS" == "active" ]; then + echo "Both Grafana and Prometheus are running successfully." + echo "Grafana can be accessed on port 3100." + + # Prompt to install Loki and Promtail + read -p "Would you like to install Loki and Promtail as well? (yes/no): " INSTALL_LOKI_PROMTAIL + if [ "$INSTALL_LOKI_PROMTAIL" == "yes" ] || [ "$INSTALL_LOKI_PROMTAIL" == "y" ]; then + install_loki_promtail + else + echo "Skipping installation of Loki and Promtail." + fi +else + echo "Failed to start one or both services. Please check the logs for more information." +fi diff --git a/proxmox-scripts/install.sh b/proxmox-scripts/install.sh new file mode 100644 index 0000000..daa973d --- /dev/null +++ b/proxmox-scripts/install.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Function to display the main menu +function show_menu() { + clear + echo "======================================" + echo " Proxmox Helper Script Installer" + echo "======================================" + echo "1. Install PVE-No-Subscription-Warning" + echo "2. Install PVE Kernel Module Patcher" + echo "3. Install PVE VM Backup Script" + echo "4. Exit" + echo "======================================" +} + +# Function to install the PVE No Subscription Warning script +function install_pve_no_subscription_warning() { + clear + echo "Installing PVE-No-Subscription-Warning..." + # Add your installation command here, for example: + wget https://raw.githubusercontent.com/proxmox/pve-no-subscription-warning/master/pve-no-subscription-warning -O /usr/local/bin/pve-no-subscription-warning + chmod +x /usr/local/bin/pve-no-subscription-warning + echo "PVE-No-Subscription-Warning installed successfully!" + read -n 1 -s -r -p "Press any key to continue..." +} + +# Function to install the PVE Kernel Module Patcher script +function install_pve_kernel_module_patcher() { + clear + echo "Installing PVE Kernel Module Patcher..." + # Add your installation command here, for example: + wget https://raw.githubusercontent.com/olafm/proxmox-no-subscription-patch/master/pve-no-subscription-patch -O /usr/local/bin/pve-kernel-module-patcher + chmod +x /usr/local/bin/pve-kernel-module-patcher + echo "PVE Kernel Module Patcher installed successfully!" + read -n 1 -s -r -p "Press any key to continue..." +} + +# Function to install the PVE VM Backup Script +function install_pve_vm_backup_script() { + clear + echo "Installing PVE VM Backup Script..." + # Add your installation command here, for example: + wget https://raw.githubusercontent.com/erikng/proxmox-scripts/master/backup-vm.sh -O /usr/local/bin/pve-vm-backup + chmod +x /usr/local/bin/pve-vm-backup + echo "PVE VM Backup Script installed successfully!" + read -n 1 -s -r -p "Press any key to continue..." +} + +# Main loop +while true; do + show_menu + read -p "Please enter your choice: " choice + case $choice in + 1) install_pve_no_subscription_warning ;; + 2) install_pve_kernel_module_patcher ;; + 3) install_pve_vm_backup_script ;; + 4) exit 0 ;; + *) echo "Invalid option. Please enter a number between 1 and 4." ;; + esac +done \ No newline at end of file