Linux Sunuculara Otomatik Komut Gönderimi

Çoğu zaman buradan bir şeyler paylaşıyorum , sebebi ise tekrar gerektiğinde çözümü bulacağım yeri bilmek , mevcut şirketimde bu yapıda 300 civarı server var , tabi farklı yapıda 1000 kadar sunucu yönetiyoruz, hepsine bir gui ile bağlanıp komut gönderebilirim , tek tek ssh ile de bağlanabilirim ama bu ciddi vakit alıcı bir durum ve tekrar aynı işi yapmak ister isem aynı vakti yine harcayacağım . Şimdi bana verilen görev tüm sunuculara maldet kurmak. Önce biraz düşünme vakti ayırıyorum kendime ve bir demli çay hazırlıyorum.

Elimdeki doneler

*Aynı dağıtım sunucular

*Aynı ssh portları

*Aynı ssh şifreleri

Bu durumda şöyle düşünüyorum; aynı komut hepsinde çalışacak , ssh protokülünde port belirtebiliyorum ve sshpass ile de key gerekmeksizin aynı şifreyi tüm sunucular için sırası ile girdirebiliyorum. Şimdi bu örneği gerçeğe dönüştürelim.

Debian tabalı bir dağıtım olan kali kullandığım için apt-get install sshpass ile ssh pass kurdum , burayı söylemiyorum.

Bir hosts.txt dosyası oluşturdum ve tüm işlem yapacağım sunucuları içine alt alta satır satır yazdım.

nano hosts..txt

sunucu1.ayhanarda.com
herhangi bir ip adresi
suunucu8.blabla.com
server5.ayhanarda.com

Kaydedip çııkıyorum , şimdi komutumuza gelelim , buraya kadar aynı yaptığınızı varyarak değişkenleri işaretledim.

mapfile -t myhosts < hosts.txt; for host in “${myhosts[@]}”; do sshpass -p ŞİFRENIZ ssh root@”$host” -p PORT -o “StrictHostKeyChecking no” ‘KOMUT‘; done

Ayhan ARDA

Share Button
2 Comments

    Murat

    Merhaba,

    Sizin yaptığınız gibi host.txt ile tanımladığım 20 adet sunucun güncellenmesi için ssh ile sudo apt-get update komutunu göndermek istiyorum. Örnekteki komutu uygulayamadım. Yardımcı olursanız sevinirim.

    Ayhan ARDA

    Merhaba,

    Tam olarak hangi adımda kaldınız , komutu kendi bilgileriniz ile değiştirip çalıştırdığınızda aldığınız hata nedir? mapfile ve sshpass kurmuş muydunuz? Bu bilgilere göre tekrar yorum yapmak isterim.

    Saygılarımla
    Ayhan ARDA

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*