Soru Şef / Kukla'ı kabuk betikleri üzerinde neden kullanmalısınız?
Kukla ve Şef araçlarına yeni. Yaptıkları iş, kabuk betiği ile yapılabiliyor gibi görünüyor. Belki de bunlar ortaya çıkana kadar kabuk yazılarında yapıldı.
Daha okunabilir olduklarına katılıyorum. Ancak, sadece okunabilir olmanın yanı sıra kabuk betikleri üzerinde başka avantajlar var mı?
78
2018-05-01 10:13
Menşei
Cevaplar:
Alana özgü bir dil, yazdığınız kod miktarında büyük bir fark yaratır. Örneğin, arasında çok fazla fark olmadığını iddia edebilirsiniz:
chmod 640 /my/file
ve
file { "/my/file":
mode => 640,
}
ama bunlar arasında büyük fark var:
FILE=/my/file
chmod 640 $FILE
chown foo $FILE
chgrp bar $FILE
wget -O $FILE "http://my.puppet.server/dist/$FILE"
# where the URL contains "Hello world"
ve
file { "/my/file":
mode => 640,
owner => foo,
group => bar,
content => "Hello world",
}
Wget başarısız olursa ne olur? Senaryonun bunu nasıl halledeceksin? Ve eğer komut dosyanızda $ FILE'ın doğru içerikle birlikte olmasını gerektiren bir şey varsa ne olur?
Birinin koyabileceğini iddia edebilirsin
echo "Hello world" > $FILE komut dosyasında, ilk örnekte betiğin istemci üzerinde çalıştırılması gerekirken, kukla tüm bunları sunucuda derler. Yani içeriği değiştirirseniz, sadece sunucuda değiştirmeniz gerekir ve bunu koymak istediğiniz kadar sistem için değiştirir. Ve kukla bağımlılıkları ele alır ve sizin için otomatik olarak sorunları aktarır.
Sadece karşılaştırma yok - uygun yapılandırma yönetimi araçları size zaman ve karmaşıklık kazandırır. Ne kadar çok yapmaya çalışırsanız, daha fazla kabuk betiği yetersiz görünür ve kukla ile yaparak daha fazla çaba sarfedersiniz.
55
2018-05-01 11:14
Bu popüler olmayan bir fikir olacaktır, ancak yapılandırma yönetim sistemleri mutlaka daha iyi değildir. Bazen basit gerçekten en iyisidir.
Seçtiğiniz yapılandırma sistemi ile ilişkili kesin bir öğrenme eğrisi ve yönetimsel yük vardır. Her şeyden önce bir bağımlılık getiriyorsunuz. Herhangi bir otomasyonda olduğu gibi, dağıtılmış yapılandırmalarda güvenliğin korunmasına da dikkat etmelisiniz.
Sadece yapılandırma yönetimini dağıttığımız ve sıkıştığımız birkaç örnek var. Her zaman tekrar eden konfigürasyona sahip çok sayıda sistem olduğu ve yapılandırılabilir çerez kesici dağıtımlarının gerçekleştirilmesi gerektiğiydi.
32
2018-05-01 14:58
Kendi sorumu cevapladın ...
Otomasyon daha ölçeklenebilir ve resmileştiriliyor. Kukla ve Şef bu günlerde standart olarak kabul edilir. iş ilanları).
Cobbled-birlikte kabuk betikleri yer var, ama onlar değil DevOps hareketi bağlamında ölçeklenebilir. Okunabilirlik bunun bir parçası.
23
2018-05-01 10:40
Şef yönetmek ve yönetmek için çok daha kolay hale getirir versiyon karmaşık bir altyapının kurulumu, özellikle de herhangi bir bulut ortamında, standart olmayan bir şekilde düzenlenmiş bir grup kabuk komut dosyasını elle sıkıştırmak veya kopyalamak zorundadır. Kaç tane bağımlılığa ihtiyaç duyduğunuza bağlı olarak, bu kazancın büyüklüğü büyük ölçüde değişebilir; bu karar, bir CM çözümü için pek çok kişi için açık olmayan bir karar verme yoluna gitmelidir.
Şefin gerçek (çoğu kez unsung) yararı idempotence. Çakışan çıkarlarla çalışan tariflerin birleşiminden bağımsız olarak bir kaynağın durumundan emin olmak, kabuk komut dosyası yapılandırması üzerinde çok büyük bir avantajdır. Şimdi yapılandırma için kabuk komut dosyalarınız varsa, kendisinden kaçının istenmeyen / istenmeyen sonuçlara yol açmadan kaç defa çalıştırılabileceğini sorun.
Uygun bir CM çözümü, platformlar arası otomasyon ve ekip işbirliğini basitleştirerek başarıyı ölçeklendirmeye yardımcı olur. Bütün bunları iyi organize edilmiş, düzgün bir şekilde korunan, versiyonlanmış bir grup kabuk betiği ile gerçekleştirmek mümkün olsa da; kendine "neden" diye sormalısın. Şef / Kukla ve benzeri teknolojiler ortaya çıktı çünkü bir grup yetenekli SysOps, aynı sorunları tekrar tekrar çözmek zorunda kalmaktan sıkıldı ve bize daha iyi bir seçenek sunmaya başladı.
Anahtar parçalar:
- Idempotence
- Bağımlılık Yönetimi Kolaylığı (versiyonlama)
- Standart Organizasyon (endüstri düzeyinde kabul edildi)
- Sunucu yapılandırma görevlerini sistem düzeyinde ayrıntılardan ayırmak için soyutlama
- Topluluk bilgisinden yararlanma yeteneği (yukarıdaki prensiplerin tümünü kapsadığı garanti edilir)
13
2018-05-03 19:11
Kukla ve Şef gibi modern konfigürasyon yönetimi araçları, belirtmek, bildirmek endişelenmek yerine bir sistemin faaliyetler yapılandırılmış bir sunucuya ulaşmak için gerekli.
Örneğin, chmod komutunuz dosyanın mevcut olduğunu, dosyanın sahibi olan kullanıcının var olduğunu, dizinlerin oluşturulduğunu vb. Varsayar. Komut dosyanız bu nedenle tüm bu önkoşulları dikkate almalıdır.
Durum tabanlı yapılandırma yönetimi araçları daha basittir: yalnızca dosyanın doğru izinlere sahip olmasına dikkat edin. Bunun nasıl başarıldığı, aracın problemidir.
10
2018-05-20 02:19
Eğer sunucular sizin için tek kullanımlıksa veya bir seferde birden fazla durmak için bir nedeniniz varsa, tam gelişmiş bir CM sistemi ihtiyaçlarınızı karşılamak için bir dizi kabuk betiğinden çok daha iyi olacaktır.
Yapım ihtiyaçlarınız mütevazı ise (ya da serbest elverişli organik serbest ticaret yapan adil ticaret sunucularına el uzatmak gibi), o zaman bunu basit tutun.
Şahsen, eski bir konserde şefi yoğun bir şekilde kullanmışken, bu konserde 'basit tut' yapmaya teşebbüs ettim, ama şefin sağladığı ilkel, soyutlama ve gücü gerçekten özledim. Birkaç kabuk komutundan ihtiyacınız olanı alabileceğiniz bir duruma ulaşmış olsanız bile, bir 'komut' bloğu ile bunları çalıştırabilirsiniz, kabuk komutlarınızı tam olarak kabuk içine yazdığınız gibi girebilirsiniz.
Bununla birlikte, Şef'i bir sunucu (şef-solo) olmadan çalıştırabiliyorsunuz ve eminim ki Puppet'in bir analogu var; burada merkezi bir sunucu çalıştırmadan başkalarının yemek kitaplarını ve yemek tariflerini kullanabiliyorsunuz.
Bir diğer fayda topluluktur: Bir çok insan vardır (birçoğu sizden daha akıllı ve / veya daha deneyimli olacak). Şahsen ben başkaları benim işimi yaptıktan sonra, çoğu zaman sahip olduğumdan çok daha fazla seviyorum.
9
2018-05-01 22:32
Kabuk betiği tabanlı bir sunucu otomasyon çerçevesi oluşturdum: https://github.com/myplaceonline/posixcube
Eminim, bu tür bir projeyi ilk yapan ben değilim, ama ihtiyaçlara uyacak bir şey bulamadım, bu yüzden başkalarının bunu yararlı bulabileceğini düşündüm. Sadece Şef'le deneyimim vardı, ama Ansible ve diğerlerine bakmaya başladığımda, kabuk betiklerini bir vuruş vermek istedim ve sonucu çok beğendim.
1
2017-12-25 01:15