class Kitsune::Kit::Commands::SetupSwap
def perform_setup(ssh, filled_options)
def perform_setup(ssh, filled_options) size_gb = filled_options[:swap_size_gb].to_i swappiness = filled_options[:swap_swappiness].to_i abort "❌ Invalid swap size" if size_gb <= 0 script = <<~EOH set -e BACKUP_DIR="/usr/local/backups" MARKER_FILE="${BACKUP_DIR}/setup_swap.after" SWAPPINESS_BEFORE_FILE="${BACKUP_DIR}/setup_swap.swappiness.before" if [ -f "$MARKER_FILE" ]; then echo "🔁 Swap already set up, skipping." exit 0 fi SWAPFILE="/swapfile" SIZE_GB=#{size_gb} SIZE_BYTES=$((SIZE_GB * 1024 * 1024 * 1024)) echo "📝 Creating ${SIZE_GB}GB swap file..." sudo fallocate -l ${SIZE_BYTES} ${SWAPFILE} sudo chmod 600 ${SWAPFILE} sudo mkswap ${SWAPFILE} sudo swapon ${SWAPFILE} echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Backup swappiness if not already backed up if [ ! -f "$SWAPPINESS_BEFORE_FILE" ]; then CURRENT=$(cat /proc/sys/vm/swappiness) echo "$CURRENT" | sudo tee "$SWAPPINESS_BEFORE_FILE" echo "✍🏻 Backed up vm.swappiness: $CURRENT" fi echo "🛠️ Setting vm.swappiness=#{swappiness}" sudo sysctl vm.swappiness=#{swappiness} echo "vm.swappiness=#{swappiness}" | sudo tee -a /etc/sysctl.conf sudo mkdir -p "$BACKUP_DIR" sudo touch "$MARKER_FILE" echo "✅ Swap file created and swappiness set" free -h EOH say ssh.exec!(script) end