Ç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
Bir yanıt yazın