Sobes.tech
Middle+

Ansible ve Python olmadan çok sayıda makineye yazılımı nasıl kuracaksınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Aşağıdaki stratejilerden birini kullanacağım:

  1. SSH kullanımıyla Bash betikleri. Her sunucuya sırayla bağlanan ve kurulum komutlarını yürüten bir betik oluşturacağım.

    #!/bin/bash
    
    SERVERS=("server1" "server2" "server3") # Sunucu listesi
    
    for SERVER in "${SERVERS[@]}"; do
      echo "${SERVER}'a bağlanıyorum..."
      ssh ${SERVER} << EOF
      # Uzaktaki sunucuya yazılım kurma komutları
      sudo apt update
      sudo apt install -y paket-adi
    EOF
      echo "${SERVER} üzerindeki kurulum tamamlandı."
    done
    

    Avantajlar: Temel görevler için basit, ek araç gerektirmez. Dezavantajlar: Ölçeklenebilirlik, hata yönetimi, idempotence eksikliği.

  2. Paket dağıtımı. Gerekli yazılım ve bağımlılıkları içeren paketler (deb, rpm) oluşturacağım. Daha sonra bunları sunuculara dağıtıp standart paket yöneticileri (apt, yum) ile kuracağım. scp gibi araçlar paketleri kopyalamak ve SSH ile kurulum komutlarını çalıştırmak için kullanılabilir.

    #!/bin/bash
    
    SERVERS=("server1" "server2" "server3")
    PACKAGE_PATH="/path/to/package.deb"
    
    for SERVER in "${SERVERS[@]}"; do
      echo "Paketi ${SERVER}'a kopyalıyorum..."
      scp ${PACKAGE_PATH} ${SERVER}:/tmp/package.deb
    
      echo "${SERVER}'da paketi kuruyorum..."
      ssh ${SERVER} "sudo dpkg -i /tmp/package.deb"
    
      echo "${SERVER} üzerindeki kurulum tamamlandı."
    done
    

    Avantajlar: Yerel paket yöneticilerinin kullanımı, bağımlılıkların yönetimi. Dezavantajlar: Paketlerin oluşturulması ve bakımı gerekir.

  3. Özel dağıtım yazılımlarının kullanımı. Yazılım ve imajların dağıtımı için tasarlanmış araçlar mevcuttur, örn:

    • PXE Boot (Preboot Execution Environment): Ağ üzerinden işletim sistemi ve temel yazılım kurulumu.
    • Clonezilla: Disk veya bölümlerin klonlanması.
    • rsync kullanarak kendi betikleriniz: Dosya ve dizinlerin senkronizasyonu.

Her araç kendi senaryosu için uygundur. PXE, başlangıçta işletim sistemi kurulumu için iyidir; Clonezilla, aynı imajların hızlı dağıtımı için; rsync ise yapılandırma ve çalıştırılabilir dosyaların senkronizasyonu için.

Yöntem seçimi, yazılımın özelliklerine, sunucu sayısına, otomasyon gereksinimlerine ve uzmanlık seviyesine bağlıdır. Öncelikle, basit durumlar için bash betikleri ve bağımlılık içeren daha karmaşık senaryolar için paket yöneticilerini değerlendireceğim.