Kod Adı: CloudLinux Kurulum Kod Yüklenecek Konum: /home/setup.sh Çalıştırılıcak Program: /bin/bash Çalıştırılıcak Komut: -c 'cd /home;chmod 777 setup.sh;./setup.sh' Kod Türü: Kurulum Kod: #!/bin/bash # === LOG AYARI === LOGFILE="/home/setup.log" exec > >(tee -a "$LOGFILE") 2>&1 echo "Kurulum başladı: $(date)" # Netmask'ı CIDR'e çeviren fonksiyon netmask_to_cidr() { local netmask=$1 local cidr=0 IFS=. read -r i1 i2 i3 i4 <<< "$netmask" for i in $i1 $i2 $i3 $i4; do while [ $i -gt 0 ]; do cidr=$((cidr+($i%2))) i=$((i/2)) done done echo "$cidr" } # Değişkenler hostname="{hostname}" password="{password}" iplist="{iplist}" # IP yapılandırması (NetworkManager uyumlu) configureNetworkManager() { name=$(ls /sys/class/net | grep -E '^(e|en|eth|eno|ens|wl)' | grep -v '^lo$' | head -n 1) echo "Kullanılan ağ arayüzü: $name" if [[ -z "$name" ]]; then echo "Hata: Ağ arayüzü bulunamadı!" exit 1 fi nmcli_name=$(nmcli -t -f NAME,DEVICE connection show | grep ":$name$" | cut -d: -f1) if [[ -z "$nmcli_name" ]]; then echo "Yeni bağlantı oluşturuluyor..." nmcli connection add type ethernet ifname "$name" con-name "$name" autoconnect yes ipv4.method manual nmcli_name="$name" fi iplist_array=(${iplist//-/ }) if [[ ${#iplist_array[@]} -eq 0 ]]; then echo "Hata: IP listesi boş!" exit 1 fi nmcli connection modify "$nmcli_name" ipv4.addresses '' nmcli connection modify "$nmcli_name" connection.autoconnect yes ipdata=(${iplist_array[0]//x/ }) cidr=$(netmask_to_cidr "${ipdata[2]}") echo "Ana IP atanıyor: ${ipdata[0]}/$cidr (Gateway: ${ipdata[1]})" nmcli connection modify "$nmcli_name" ipv4.addresses "${ipdata[0]}/$cidr" sleep 0.5 nmcli connection modify "$nmcli_name" ipv4.gateway "${ipdata[1]}" nmcli connection modify "$nmcli_name" ipv4.dns "8.8.8.8 8.8.4.4" nmcli connection modify "$nmcli_name" ipv4.method manual for (( i=1; i<${#iplist_array[@]}; i++ )); do ipdata=(${iplist_array[$i]//x/ }) cidr=$(netmask_to_cidr "${ipdata[2]}") echo "Ek IP ekleniyor: ${ipdata[0]}/$cidr" nmcli connection modify "$nmcli_name" +ipv4.addresses "${ipdata[0]}/$cidr" done nmcli connection reload nmcli connection up "$nmcli_name" } # LVM yapılandırması configureLVM() { DISK="/dev/sda" PART_NUM="3" PARTITION="${DISK}${PART_NUM}" LV_PATH="/dev/cloudlinux/root" MOUNT_POINT="/" echo "Disk büyütme işlemi başlatılıyor..." growpart "$DISK" "$PART_NUM" partprobe "$DISK" pvresize "$PARTITION" lvextend -l +100%FREE "$LV_PATH" xfs_growfs "$MOUNT_POINT" } # Hostname ve root şifresi configureSystem() { echo "Hostname ve şifre ayarlanıyor..." hostnamectl set-hostname "$hostname" echo "root:$password" | chpasswd } # Ana akış configureNetworkManager configureLVM configureSystem systemctl enable --now NetworkManager echo "Kurulum tamamlandı: $(date)" # === KENDİNİ SİL === echo "setup.sh dosyası siliniyor..." rm -- "$0"