File size: 5,914 Bytes
c7df5be |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
#!/bin/bash
# FitTürkAI RAG System - High RAM Google Cloud VM Creator
# CPU Optimized for Maximum Performance
echo "🚀 FitTürkAI için Yüksek RAM'li Google Cloud VM Oluşturucu"
echo "============================================================"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration variables
PROJECT_ID=""
VM_NAME="fitturkrai-high-ram"
ZONE="us-central1-a"
REGION="us-central1"
# RAM Seçenekleri (CPU optimize)
echo -e "${BLUE}📊 Mevcut RAM Seçenekleri:${NC}"
echo "1. n2-highmem-2: 2 vCPU, 16 GB RAM (~$100/ay) [Temel]"
echo "2. n2-highmem-4: 4 vCPU, 32 GB RAM (~$200/ay) [Önerilen]"
echo "3. n2-highmem-8: 8 vCPU, 64 GB RAM (~$400/ay) [Yüksek Performans]"
echo "4. n2-highmem-16: 16 vCPU, 128 GB RAM (~$800/ay) [Maksimum]"
echo "5. n2-highmem-32: 32 vCPU, 256 GB RAM (~$1600/ay) [Ultra]"
echo "6. m2-ultramem-416: 416 vCPU, 5.9 TB RAM (~$30000/ay) [Extreme - Sadece özel durumlar]"
echo ""
read -p "🔢 Seçiminizi yapın (1-6): " choice
case $choice in
1)
MACHINE_TYPE="n2-highmem-2"
RAM_GB="16"
;;
2)
MACHINE_TYPE="n2-highmem-4"
RAM_GB="32"
;;
3)
MACHINE_TYPE="n2-highmem-8"
RAM_GB="64"
;;
4)
MACHINE_TYPE="n2-highmem-16"
RAM_GB="128"
;;
5)
MACHINE_TYPE="n2-highmem-32"
RAM_GB="256"
;;
6)
MACHINE_TYPE="m2-ultramem-416"
RAM_GB="5888"
echo -e "${RED}⚠️ UYARI: Bu çok pahalı bir seçenek! Sadece özel durumlar için.${NC}"
read -p "Devam etmek istediğinizden emin misiniz? (y/N): " confirm
if [[ $confirm != "y" ]]; then
echo "İşlem iptal edildi."
exit 1
fi
;;
*)
echo -e "${RED}❌ Geçersiz seçim! Varsayılan olarak n2-highmem-4 kullanılacak.${NC}"
MACHINE_TYPE="n2-highmem-4"
RAM_GB="32"
;;
esac
echo -e "${GREEN}✅ Seçilen: ${MACHINE_TYPE} (${RAM_GB} GB RAM)${NC}"
# Project ID kontrolü
if [ -z "$PROJECT_ID" ]; then
echo ""
echo -e "${YELLOW}🏗️ Google Cloud Project ID gerekli${NC}"
read -p "Project ID'nizi girin: " PROJECT_ID
fi
# Disk boyutu seçimi
echo ""
echo -e "${BLUE}💽 Disk Boyutu Seçimi:${NC}"
echo "1. 50 GB [Temel - Sadece sistem]"
echo "2. 100 GB [Önerilen - Modeller + veri]"
echo "3. 200 GB [Yüksek - Büyük veri setleri]"
echo "4. 500 GB [Maksimum - Çok büyük modeller]"
read -p "Disk boyutunu seçin (1-4): " disk_choice
case $disk_choice in
1) DISK_SIZE="50" ;;
2) DISK_SIZE="100" ;;
3) DISK_SIZE="200" ;;
4) DISK_SIZE="500" ;;
*)
echo -e "${YELLOW}⚠️ Varsayılan 100GB kullanılacak${NC}"
DISK_SIZE="100"
;;
esac
# VM oluşturma komutu
echo ""
echo -e "${BLUE}🚀 VM oluşturuluyor...${NC}"
# Startup script içeriği
STARTUP_SCRIPT="#!/bin/bash
# FitTürkAI Setup Script
apt-get update && apt-get upgrade -y
apt-get install -y python3 python3-pip python3-venv git htop tree curl wget
# Python environment setup
python3 -m pip install --upgrade pip
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Clone repository (replace with your repo)
# git clone https://github.com/YOUR_USERNAME/FitTurkAI-RAG.git /home/ubuntu/FitTurkAI-RAG
# chown -R ubuntu:ubuntu /home/ubuntu/FitTurkAI-RAG
# System optimizations for high RAM
echo 'vm.swappiness=10' >> /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf
sysctl -p
# Install monitoring tools
apt-get install -y iotop nethogs
echo 'FitTürkAI VM setup completed!' >> /var/log/startup-script.log
"
# VM oluştur
gcloud compute instances create $VM_NAME \
--project=$PROJECT_ID \
--zone=$ZONE \
--machine-type=$MACHINE_TYPE \
--network-interface=network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=default \
--metadata="startup-script=$STARTUP_SCRIPT" \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--service-account=default \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--tags=fitturkrai,http-server,https-server \
--create-disk=auto-delete=yes,boot=yes,device-name=$VM_NAME,image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20240319,mode=rw,size=$DISK_SIZE,type=projects/$PROJECT_ID/zones/$ZONE/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--labels=purpose=ml,project=fitturkrai \
--reservation-affinity=any
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ VM başarıyla oluşturuldu!${NC}"
echo ""
echo -e "${BLUE}📋 VM Bilgileri:${NC}"
echo " Ad: $VM_NAME"
echo " Tip: $MACHINE_TYPE"
echo " RAM: ${RAM_GB} GB"
echo " Disk: ${DISK_SIZE} GB"
echo " Zone: $ZONE"
echo ""
# IP adresini al
EXTERNAL_IP=$(gcloud compute instances describe $VM_NAME --zone=$ZONE --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
echo -e "${GREEN}🌐 External IP: $EXTERNAL_IP${NC}"
echo ""
echo -e "${BLUE}🔗 Bağlantı Komutları:${NC}"
echo " SSH: gcloud compute ssh $VM_NAME --zone=$ZONE"
echo " SSH Direct: ssh ubuntu@$EXTERNAL_IP"
echo ""
echo -e "${YELLOW}⏳ VM'nin hazır olması için ~2-3 dakika bekleyin${NC}"
echo -e "${BLUE}📦 Sonraki adımlar:${NC}"
echo "1. SSH ile bağlanın"
echo "2. Repository'yi klonlayın"
echo "3. FitTürkAI sistemini kurun"
# SSH bağlantısı sor
echo ""
read -p "🔌 Şimdi SSH ile bağlanmak ister misiniz? (y/N): " connect_now
if [[ $connect_now == "y" ]]; then
echo "SSH bağlantısı kuruluyor..."
gcloud compute ssh $VM_NAME --zone=$ZONE
fi
else
echo -e "${RED}❌ VM oluşturma başarısız!${NC}"
exit 1
fi |