🚀 Prima migrazione su VM Master - NetGescon completo
- Setup VM con Nginx + PHP 8.3 + MySQL
- Gitea configurato su porta 3000
- NetGescon Laravel funzionante
- Scripts di automazione e documentazione
- Struttura pronta per sviluppo Git nativo
Addio rsync, benvenuto Git workflow! 🎉
This commit is contained in:
parent
500712a945
commit
235687cd28
257
docs/03-scripts-automazione/migrate-to-vm-master.sh
Executable file
257
docs/03-scripts-automazione/migrate-to-vm-master.sh
Executable file
|
|
@ -0,0 +1,257 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 🚀 NETGESCON - MIGRAZIONE COMPLETA A VM MASTER
|
||||||
|
# Creato: 19/07/2025 - Migrazione da Windows WSL a VM Linux
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "🚀 === NETGESCON - MIGRAZIONE COMPLETA A VM MASTER ==="
|
||||||
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# === CONFIGURAZIONI ===
|
||||||
|
SOURCE_PATH="/home/michele/netgescon"
|
||||||
|
TARGET_SERVER="192.168.0.200"
|
||||||
|
TARGET_USER="michele"
|
||||||
|
TARGET_PATH="/home/michele/netgescon"
|
||||||
|
SSH_TARGET="$TARGET_USER@$TARGET_SERVER"
|
||||||
|
|
||||||
|
echo "📋 Configurazione migrazione:"
|
||||||
|
echo " Origine: $SOURCE_PATH (Windows WSL)"
|
||||||
|
echo " Destinazione: $SSH_TARGET:$TARGET_PATH"
|
||||||
|
echo " Server Master: $TARGET_SERVER"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# === STEP 1: VERIFICA CONNESSIONE ===
|
||||||
|
echo "🔍 STEP 1: Verifica connessione e sistema target..."
|
||||||
|
|
||||||
|
if ! ssh -o ConnectTimeout=10 "$SSH_TARGET" "echo 'Connessione OK'" >/dev/null 2>&1; then
|
||||||
|
echo "❌ Impossibile connettersi a $SSH_TARGET"
|
||||||
|
echo " Verifica: rete, SSH, credenziali"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " ✅ Connessione SSH OK"
|
||||||
|
|
||||||
|
# Verifica sistema target
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
echo "📋 Informazioni sistema target:"
|
||||||
|
echo " OS: $(lsb_release -d 2>/dev/null | cut -f2 || echo 'Linux')"
|
||||||
|
echo " Kernel: $(uname -r)"
|
||||||
|
echo " Spazio: $(df -h / | tail -1 | awk '{print $4}') disponibili"
|
||||||
|
echo " RAM: $(free -h | grep Mem | awk '{print $7}') libera"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === STEP 2: PREPARAZIONE AMBIENTE TARGET ===
|
||||||
|
echo ""
|
||||||
|
echo "🔧 STEP 2: Preparazione ambiente su VM target..."
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
# Aggiorna sistema
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
# Installa strumenti essenziali
|
||||||
|
sudo apt install -y git curl wget rsync build-essential
|
||||||
|
|
||||||
|
# Installa stack LAMP base
|
||||||
|
sudo apt install -y apache2 mysql-server php8.1 php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip php8.1-gd php8.1-curl php8.1-cli
|
||||||
|
|
||||||
|
# Installa Composer
|
||||||
|
if ! command -v composer &> /dev/null; then
|
||||||
|
curl -sS https://getcomposer.org/installer | php
|
||||||
|
sudo mv composer.phar /usr/local/bin/composer
|
||||||
|
sudo chmod +x /usr/local/bin/composer
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Installa Node.js e npm
|
||||||
|
if ! command -v node &> /dev/null; then
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||||||
|
sudo apt install -y nodejs
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Crea directory di lavoro
|
||||||
|
mkdir -p /home/michele/netgescon
|
||||||
|
mkdir -p /var/www/netgescon
|
||||||
|
mkdir -p /var/git
|
||||||
|
|
||||||
|
echo "✅ Ambiente target preparato"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo " ✅ Ambiente VM preparato"
|
||||||
|
|
||||||
|
# === STEP 3: TRASFERIMENTO COMPLETO ===
|
||||||
|
echo ""
|
||||||
|
echo "📦 STEP 3: Trasferimento completo progetto..."
|
||||||
|
|
||||||
|
# Prima sincronizzazione completa
|
||||||
|
echo " 🔄 Sincronizzazione rsync completa..."
|
||||||
|
rsync -avz --progress \
|
||||||
|
--exclude='.git/objects' \
|
||||||
|
--exclude='*.tmp' \
|
||||||
|
--exclude='__pycache__' \
|
||||||
|
--exclude='venv' \
|
||||||
|
--exclude='node_modules' \
|
||||||
|
--exclude='.env' \
|
||||||
|
--exclude='storage/logs/*.log' \
|
||||||
|
"$SOURCE_PATH/" \
|
||||||
|
"$SSH_TARGET:$TARGET_PATH/"
|
||||||
|
|
||||||
|
echo " ✅ Trasferimento file completato"
|
||||||
|
|
||||||
|
# === STEP 4: SETUP GIT SU TARGET ===
|
||||||
|
echo ""
|
||||||
|
echo "🔧 STEP 4: Setup Git su VM target..."
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
cd /home/michele/netgescon
|
||||||
|
|
||||||
|
# Configura Git
|
||||||
|
git config --global user.name "NetGescon Master VM"
|
||||||
|
git config --global user.email "master@netgescon.local"
|
||||||
|
git config --global init.defaultBranch master
|
||||||
|
|
||||||
|
# Re-inizializza repository se necessario
|
||||||
|
if [ ! -d ".git" ]; then
|
||||||
|
git init
|
||||||
|
git add .
|
||||||
|
git commit -m "🚀 NETGESCON - Migrazione completa su VM Master
|
||||||
|
|
||||||
|
📋 Migrazione da Windows WSL a VM Linux
|
||||||
|
🔄 Repository ricreato su server master
|
||||||
|
📅 $(date '+%Y-%m-%d %H:%M:%S')
|
||||||
|
🎯 Sistema pronto per sviluppo Linux nativo"
|
||||||
|
else
|
||||||
|
# Se esiste già, aggiungi eventuali nuovi file
|
||||||
|
git add .
|
||||||
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
|
git commit -m "🔄 Sync da Windows WSL $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Git configurato su VM target"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === STEP 5: SETUP SERVER GIT GITEA ===
|
||||||
|
echo ""
|
||||||
|
echo "🏢 STEP 5: Setup server Git (Gitea) su VM..."
|
||||||
|
|
||||||
|
# Trasferisce e esegue script setup Gitea
|
||||||
|
scp "$SOURCE_PATH/docs/03-scripts-automazione/setup-git-server-master.sh" "$SSH_TARGET:/tmp/"
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
chmod +x /tmp/setup-git-server-master.sh
|
||||||
|
|
||||||
|
# Esegue setup Gitea (richiede sudo)
|
||||||
|
echo "🔧 Installazione Gitea server..."
|
||||||
|
sudo /tmp/setup-git-server-master.sh
|
||||||
|
|
||||||
|
echo "✅ Server Git configurato"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === STEP 6: CONFIGURAZIONE LARAVEL ===
|
||||||
|
echo ""
|
||||||
|
echo "🔧 STEP 6: Configurazione Laravel su VM..."
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
cd /home/michele/netgescon/netgescon-laravel
|
||||||
|
|
||||||
|
# Installa dipendenze Composer
|
||||||
|
if [ -f "composer.json" ]; then
|
||||||
|
composer install --no-dev --optimize-autoloader
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copia e configura .env
|
||||||
|
if [ ! -f ".env" ] && [ -f ".env.example" ]; then
|
||||||
|
cp .env.example .env
|
||||||
|
php artisan key:generate
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configura permessi
|
||||||
|
sudo chown -R www-data:www-data storage bootstrap/cache
|
||||||
|
sudo chmod -R 775 storage bootstrap/cache
|
||||||
|
|
||||||
|
echo "✅ Laravel configurato"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === STEP 7: CONFIGURAZIONE APACHE ===
|
||||||
|
echo ""
|
||||||
|
echo "🌐 STEP 7: Configurazione Apache per NetGescon..."
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
# Configurazione VirtualHost Apache
|
||||||
|
sudo tee /etc/apache2/sites-available/netgescon.conf > /dev/null << 'APACHE_CONF'
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName netgescon.local
|
||||||
|
DocumentRoot /home/michele/netgescon/netgescon-laravel/public
|
||||||
|
|
||||||
|
<Directory /home/michele/netgescon/netgescon-laravel/public>
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/netgescon_error.log
|
||||||
|
CustomLog ${APACHE_LOG_DIR}/netgescon_access.log combined
|
||||||
|
</VirtualHost>
|
||||||
|
APACHE_CONF
|
||||||
|
|
||||||
|
# Abilita sito e moduli
|
||||||
|
sudo a2enmod rewrite
|
||||||
|
sudo a2ensite netgescon
|
||||||
|
sudo systemctl reload apache2
|
||||||
|
|
||||||
|
echo "✅ Apache configurato"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === STEP 8: TEST FINALE ===
|
||||||
|
echo ""
|
||||||
|
echo "🧪 STEP 8: Test configurazione finale..."
|
||||||
|
|
||||||
|
ssh "$SSH_TARGET" << 'EOF'
|
||||||
|
cd /home/michele/netgescon
|
||||||
|
|
||||||
|
echo "📊 === RIEPILOGO CONFIGURAZIONE VM ==="
|
||||||
|
echo "✅ Sistema: $(lsb_release -d 2>/dev/null | cut -f2 || echo 'Linux')"
|
||||||
|
echo "✅ Git: $(git --version)"
|
||||||
|
echo "✅ PHP: $(php --version | head -1)"
|
||||||
|
echo "✅ Composer: $(composer --version | head -1)"
|
||||||
|
echo "✅ Node.js: $(node --version)"
|
||||||
|
echo "✅ Apache: $(apache2 -v | head -1)"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "📁 Struttura progetto:"
|
||||||
|
ls -la /home/michele/netgescon/
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🔄 Status Git:"
|
||||||
|
git status --short
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🌐 Servizi attivi:"
|
||||||
|
sudo systemctl is-active apache2 mysql gitea-docker-compose --no-pager
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# === RIEPILOGO FINALE ===
|
||||||
|
echo ""
|
||||||
|
echo "📊 === RIEPILOGO MIGRAZIONE COMPLETA ==="
|
||||||
|
echo "✅ VM target preparata e configurata"
|
||||||
|
echo "✅ Progetto NetGescon trasferito completamente"
|
||||||
|
echo "✅ Git repository configurato su VM"
|
||||||
|
echo "✅ Server Git (Gitea) installato"
|
||||||
|
echo "✅ Stack LAMP configurato"
|
||||||
|
echo "✅ Laravel pronto per sviluppo"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🌐 Accesso VM:"
|
||||||
|
echo " SSH: ssh $SSH_TARGET"
|
||||||
|
echo " Web: http://$TARGET_SERVER (NetGescon)"
|
||||||
|
echo " Git: http://$TARGET_SERVER:3000 (Gitea)"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "📋 Prossimi passi:"
|
||||||
|
echo "1. 🌐 Configurare DNS/hosts per netgescon.local"
|
||||||
|
echo "2. 🔧 Completare setup Gitea via web"
|
||||||
|
echo "3. 🚀 Creare primo repository in Gitea"
|
||||||
|
echo "4. 🔄 Push del codice dal VM al Gitea locale"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🎯 Migrazione completata con successo!"
|
||||||
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
129
docs/03-scripts-automazione/migrate-vm-manual.sh
Executable file
129
docs/03-scripts-automazione/migrate-vm-manual.sh
Executable file
|
|
@ -0,0 +1,129 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 🚀 NETGESCON - MIGRAZIONE SEMPLIFICATA A VM
|
||||||
|
# Creato: 19/07/2025 - Versione step-by-step manuale
|
||||||
|
|
||||||
|
echo "🚀 === NETGESCON - MIGRAZIONE A VM MASTER ==="
|
||||||
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
TARGET_VM="192.168.0.200"
|
||||||
|
TARGET_USER="michele"
|
||||||
|
|
||||||
|
echo "📋 Piano migrazione a $TARGET_USER@$TARGET_VM:"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🔧 STEP 1: Preparazione ambiente VM"
|
||||||
|
echo " Comandi da eseguire sulla VM (SSH):"
|
||||||
|
echo ""
|
||||||
|
echo " # Aggiorna sistema"
|
||||||
|
echo " sudo apt update && sudo apt upgrade -y"
|
||||||
|
echo ""
|
||||||
|
echo " # Installa stack base"
|
||||||
|
echo " sudo apt install -y git curl wget rsync build-essential"
|
||||||
|
echo " sudo apt install -y apache2 mysql-server"
|
||||||
|
echo " sudo apt install -y php8.1 php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip php8.1-gd php8.1-curl"
|
||||||
|
echo ""
|
||||||
|
echo " # Installa Composer"
|
||||||
|
echo " curl -sS https://getcomposer.org/installer | php"
|
||||||
|
echo " sudo mv composer.phar /usr/local/bin/composer"
|
||||||
|
echo ""
|
||||||
|
echo " # Crea directory"
|
||||||
|
echo " mkdir -p /home/michele/netgescon"
|
||||||
|
echo " sudo mkdir -p /var/www/netgescon"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "📦 STEP 2: Trasferimento file"
|
||||||
|
echo " Da eseguire da questa macchina Windows:"
|
||||||
|
echo ""
|
||||||
|
echo " rsync -avz --progress \\"
|
||||||
|
echo " --exclude='__pycache__' \\"
|
||||||
|
echo " --exclude='venv' \\"
|
||||||
|
echo " --exclude='node_modules' \\"
|
||||||
|
echo " --exclude='.env' \\"
|
||||||
|
echo " /home/michele/netgescon/ \\"
|
||||||
|
echo " $TARGET_USER@$TARGET_VM:/home/michele/netgescon/"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🔧 STEP 3: Setup Git su VM"
|
||||||
|
echo " Sulla VM dopo il trasferimento:"
|
||||||
|
echo ""
|
||||||
|
echo " cd /home/michele/netgescon"
|
||||||
|
echo " git config --global user.name 'NetGescon Master VM'"
|
||||||
|
echo " git config --global user.email 'master@netgescon.local'"
|
||||||
|
echo " git add ."
|
||||||
|
echo " git commit -m 'Migrazione completa su VM Master'"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🏢 STEP 4: Setup Gitea (server Git)"
|
||||||
|
echo " Sulla VM:"
|
||||||
|
echo ""
|
||||||
|
echo " # Setup Gitea con Docker"
|
||||||
|
echo " sudo docker run -d \\"
|
||||||
|
echo " --name=gitea \\"
|
||||||
|
echo " --restart=unless-stopped \\"
|
||||||
|
echo " -p 3000:3000 \\"
|
||||||
|
echo " -p 2222:22 \\"
|
||||||
|
echo " -v /var/lib/gitea:/data \\"
|
||||||
|
echo " gitea/gitea:latest"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🌐 STEP 5: Configurazione Apache"
|
||||||
|
echo " Sulla VM:"
|
||||||
|
echo ""
|
||||||
|
echo " # VirtualHost NetGescon"
|
||||||
|
echo " sudo tee /etc/apache2/sites-available/netgescon.conf << 'EOF'"
|
||||||
|
echo " <VirtualHost *:80>"
|
||||||
|
echo " ServerName netgescon.local"
|
||||||
|
echo " DocumentRoot /home/michele/netgescon/netgescon-laravel/public"
|
||||||
|
echo " <Directory /home/michele/netgescon/netgescon-laravel/public>"
|
||||||
|
echo " AllowOverride All"
|
||||||
|
echo " Require all granted"
|
||||||
|
echo " </Directory>"
|
||||||
|
echo " </VirtualHost>"
|
||||||
|
echo " EOF"
|
||||||
|
echo ""
|
||||||
|
echo " sudo a2enmod rewrite"
|
||||||
|
echo " sudo a2ensite netgescon"
|
||||||
|
echo " sudo systemctl reload apache2"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🧪 STEP 6: Test finale"
|
||||||
|
echo " http://$TARGET_VM → NetGescon"
|
||||||
|
echo " http://$TARGET_VM:3000 → Gitea"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🎯 Vuoi procedere con il trasferimento automatico? (y/N)"
|
||||||
|
read -r response
|
||||||
|
|
||||||
|
if [[ "$response" =~ ^[Yy]$ ]]; then
|
||||||
|
echo ""
|
||||||
|
echo "🚀 Avvio trasferimento..."
|
||||||
|
|
||||||
|
echo "📦 Trasferimento file con rsync..."
|
||||||
|
rsync -avz --progress \
|
||||||
|
--exclude='__pycache__' \
|
||||||
|
--exclude='venv' \
|
||||||
|
--exclude='node_modules' \
|
||||||
|
--exclude='.env' \
|
||||||
|
--exclude='*.log' \
|
||||||
|
/home/michele/netgescon/ \
|
||||||
|
"$TARGET_USER@$TARGET_VM:/home/michele/netgescon/"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ Trasferimento completato!"
|
||||||
|
echo ""
|
||||||
|
echo "📋 Prossimi passi manuali sulla VM:"
|
||||||
|
echo "1. SSH alla VM: ssh $TARGET_USER@$TARGET_VM"
|
||||||
|
echo "2. Setup ambiente: sudo apt install -y git apache2 mysql-server php8.1..."
|
||||||
|
echo "3. Configurazione Git nel progetto"
|
||||||
|
echo "4. Setup Gitea"
|
||||||
|
echo "5. Configurazione Apache"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "📋 Migrazione posticipata."
|
||||||
|
echo " Usa questo script come guida per i passi manuali."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
119
docs/03-scripts-automazione/verify-vm-target.sh
Executable file
119
docs/03-scripts-automazione/verify-vm-target.sh
Executable file
|
|
@ -0,0 +1,119 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 🔍 NETGESCON - VERIFICA PRE-MIGRAZIONE
|
||||||
|
# Creato: 19/07/2025 - Test connessione e preparazione
|
||||||
|
|
||||||
|
echo "🔍 === NETGESCON - VERIFICA PRE-MIGRAZIONE ==="
|
||||||
|
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
TARGET_SERVER="192.168.0.200"
|
||||||
|
TARGET_USER="michele"
|
||||||
|
|
||||||
|
echo "📋 Test connessione a VM target: $TARGET_USER@$TARGET_SERVER"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Test connessione base
|
||||||
|
echo "🌐 Test 1: Connessione SSH..."
|
||||||
|
if ssh -o ConnectTimeout=10 -o BatchMode=yes "$TARGET_USER@$TARGET_SERVER" "echo 'SSH OK'" 2>/dev/null; then
|
||||||
|
echo " ✅ SSH con chiavi funziona"
|
||||||
|
else
|
||||||
|
echo " ⚠️ SSH richiede password (normale)"
|
||||||
|
if ssh -o ConnectTimeout=10 "$TARGET_USER@$TARGET_SERVER" "echo 'SSH con password OK'"; then
|
||||||
|
echo " ✅ SSH con password funziona"
|
||||||
|
else
|
||||||
|
echo " ❌ SSH non funziona - verificare rete/credenziali"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test sistema target
|
||||||
|
echo ""
|
||||||
|
echo "📊 Test 2: Informazioni sistema target..."
|
||||||
|
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
|
||||||
|
echo " Sistema: $(lsb_release -d 2>/dev/null | cut -f2 || uname -s)"
|
||||||
|
echo " Kernel: $(uname -r)"
|
||||||
|
echo " Architettura: $(uname -m)"
|
||||||
|
echo " Uptime: $(uptime | cut -d',' -f1)"
|
||||||
|
echo " Spazio root: $(df -h / | tail -1 | awk '{print $4}') liberi"
|
||||||
|
echo " RAM libera: $(free -h | grep Mem | awk '{print $7}')"
|
||||||
|
echo " Utente: $(whoami)"
|
||||||
|
echo " Home: $HOME"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Test permessi sudo
|
||||||
|
echo ""
|
||||||
|
echo "🔐 Test 3: Permessi sudo..."
|
||||||
|
if ssh "$TARGET_USER@$TARGET_SERVER" "sudo -n true" 2>/dev/null; then
|
||||||
|
echo " ✅ Sudo senza password configurato"
|
||||||
|
else
|
||||||
|
echo " ⚠️ Sudo richiede password (normale per sicurezza)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test dipendenze base
|
||||||
|
echo ""
|
||||||
|
echo "📦 Test 4: Dipendenze presenti..."
|
||||||
|
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
|
||||||
|
echo -n " Git: "
|
||||||
|
if command -v git &> /dev/null; then
|
||||||
|
echo "✅ $(git --version | cut -d' ' -f3)"
|
||||||
|
else
|
||||||
|
echo "❌ Non installato"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n " Curl: "
|
||||||
|
if command -v curl &> /dev/null; then
|
||||||
|
echo "✅ Presente"
|
||||||
|
else
|
||||||
|
echo "❌ Non installato"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n " Docker: "
|
||||||
|
if command -v docker &> /dev/null; then
|
||||||
|
echo "✅ $(docker --version | cut -d' ' -f3 | tr -d ',')"
|
||||||
|
else
|
||||||
|
echo "❌ Non installato"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n " Apache: "
|
||||||
|
if command -v apache2 &> /dev/null; then
|
||||||
|
echo "✅ $(apache2 -v | head -1 | cut -d' ' -f3)"
|
||||||
|
else
|
||||||
|
echo "❌ Non installato"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n " PHP: "
|
||||||
|
if command -v php &> /dev/null; then
|
||||||
|
echo "✅ $(php --version | head -1 | cut -d' ' -f2)"
|
||||||
|
else
|
||||||
|
echo "❌ Non installato"
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Test porte disponibili
|
||||||
|
echo ""
|
||||||
|
echo "🌐 Test 5: Porte disponibili..."
|
||||||
|
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
|
||||||
|
echo " Porte in ascolto:"
|
||||||
|
ss -tlnp | grep -E ":(80|3000|3306|22)" | while read line; do
|
||||||
|
port=$(echo $line | awk '{print $4}' | cut -d':' -f2)
|
||||||
|
echo " - Porta $port: occupata"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Test porte libere importanti
|
||||||
|
for port in 80 3000 3306; do
|
||||||
|
if ! ss -tln | grep -q ":$port "; then
|
||||||
|
echo " - Porta $port: ✅ libera"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📊 === RIEPILOGO VERIFICA ==="
|
||||||
|
echo "✅ Connessione SSH verificata"
|
||||||
|
echo "✅ Sistema target accessibile"
|
||||||
|
echo "✅ Informazioni raccolte"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "📋 Pronto per migrazione!"
|
||||||
|
echo " Eseguire: ./docs/03-scripts-automazione/migrate-to-vm-master.sh"
|
||||||
|
echo ""
|
||||||
Loading…
Reference in New Issue
Block a user