#!/bin/bash # ========================= # Colors # ========================= ORANGE='\033[0;33m' GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # ========================= # Clear Screen # ========================= clear # ========================= # Banner # ========================= echo -e "${ORANGE}" echo "=====================================================" echo " QEMU GUEST AGENT INSTALLATION SCRIPT" echo "=====================================================" echo -e "${NC}" # ========================= # Root Check # ========================= if [ "$EUID" -eq 0 ]; then CMD_PREFIX="" echo -e "${GREEN}[INFO] Running as root user${NC}" else CMD_PREFIX="sudo" echo -e "${ORANGE}[INFO] Not running as root, using sudo${NC}" fi echo "" # ========================= # Status Variables # ========================= PKG_STATUS="NOT INSTALLED" SERVICE_STATUS="STOPPED" ENABLE_STATUS="DISABLED" # ========================= # Function to Run Commands # ========================= run_step() { DESC=$1 CMD=$2 echo -e "${ORANGE}[PROCESSING] $DESC...${NC}" eval $CMD >/dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "${GREEN}[SUCCESS] $DESC completed successfully${NC}" else echo -e "${RED}[FAILED] $DESC failed${NC}" exit 1 fi echo "" } # ========================= # Update & Upgrade # ========================= run_step "Updating package list" "$CMD_PREFIX apt update" run_step "Upgrading packages" "$CMD_PREFIX apt upgrade -y" # ========================= # Check if Installed # ========================= echo -e "${ORANGE}[PROCESSING] Checking if qemu-guest-agent is installed...${NC}" dpkg -s qemu-guest-agent >/dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "${GREEN}[SUCCESS] qemu-guest-agent is already installed${NC}" PKG_STATUS="ALREADY INSTALLED" else echo -e "${ORANGE}[INFO] qemu-guest-agent not installed. Installing...${NC}" run_step "Installing qemu-guest-agent" "$CMD_PREFIX apt install -y qemu-guest-agent" PKG_STATUS="INSTALLED NOW" fi # ========================= # Check if Service Running # ========================= echo -e "${ORANGE}[PROCESSING] Checking if service is running...${NC}" $CMD_PREFIX systemctl is-active --quiet qemu-guest-agent if [ $? -eq 0 ]; then echo -e "${GREEN}[SUCCESS] Service already running${NC}" SERVICE_STATUS="ALREADY RUNNING" else echo -e "${ORANGE}[INFO] Service not running. Starting...${NC}" run_step "Starting qemu-guest-agent service" "$CMD_PREFIX systemctl start qemu-guest-agent" SERVICE_STATUS="STARTED NOW" fi # ========================= # Check if Service Enabled # ========================= echo -e "${ORANGE}[PROCESSING] Checking if service is enabled...${NC}" $CMD_PREFIX systemctl is-enabled --quiet qemu-guest-agent if [ $? -eq 0 ]; then echo -e "${GREEN}[SUCCESS] Service already enabled${NC}" ENABLE_STATUS="ALREADY ENABLED" else echo -e "${ORANGE}[INFO] Service not enabled. Enabling...${NC}" run_step "Enabling qemu-guest-agent service" "$CMD_PREFIX systemctl enable --now qemu-guest-agent" ENABLE_STATUS="ENABLED NOW" fi # ========================= # Final Status Check # ========================= echo -e "${ORANGE}[PROCESSING] Verifying final service status...${NC}" $CMD_PREFIX systemctl is-active --quiet qemu-guest-agent if [ $? -eq 0 ]; then FINAL_STATUS="${GREEN}RUNNING${NC}" else FINAL_STATUS="${RED}NOT RUNNING${NC}" fi echo "" # ========================= # Summary # ========================= echo -e "${GREEN}=====================================================${NC}" echo -e "${GREEN} SUMMARY ${NC}" echo -e "${GREEN}=====================================================${NC}" echo -e "Package Status : ${PKG_STATUS}" echo -e "Service Status : ${SERVICE_STATUS}" echo -e "Enable Status : ${ENABLE_STATUS}" echo -e "Final State : ${FINAL_STATUS}" echo -e "${GREEN}=====================================================${NC}" echo ""