Küçük çocuklar Kukla'yı nasıl etkili bir şekilde öğrenip kullanabilir? [kapalı]


109

Altı ay önce, kar amacı gütmeyen projemizde, sistem yönetimimizi Kukla kontrollü bir ortama taşımaya karar verdik çünkü sunucu sayımızın şimdiden bir yıl sonra önemli ölçüde büyümesini bekliyoruz.

Karar verildiğinden bu yana BT görevlilerimiz biraz fazla sinirlendiler. En büyük itirazları:

  • "Biz programcı değiliz, sistem yöneticisiyiz";
  • Modüller çevrimiçi olarak kullanılabilir ancak çoğu birbirinden farklıdır; tekerlekler çok sık yeniden keşfedildi, hangisinin faturaya uygun olduğuna nasıl karar veriyorsunuz?
  • Depomuzdaki kod, bir süre önce kendileri bile yazmış olabileceği tezahürler ve modüller aracılığıyla tekrarlamak zorunda kaldıklarını bulmak için yeterince şeffaf değildir;
  • Yeni bir arka plan programı yeni bir modül yazmayı gerektirir, sözleşmeler diğer modüllere benzemelidir, zor bir süreç;
  • "Sadece çalıştıralım ve nasıl çalıştığını görelim"
  • Topluluk modüllerinde çok az bilinen 'uzantı' tonu: 'trocla', 'augeas', 'hiera' ... sistem yöneticilerimiz nasıl takip edebilir?

Büyük bir kuruluşun neden sistem yöneticilerini Kukla ustaları olmak için Kukla kurslarına gönderdiğini anlayabiliyorum. Ancak daha küçük oyuncular, kurslara gitmemeleri ve temel olarak tarayıcıları ve editörleri aracılığıyla öğrenmeleri durumunda, Puppet'i profesyonel düzeyde nasıl öğrenir?

Yanıtlar:


101

Puppet'i yeni bir altyapı kurmaktan önce kullanmaya başladım ve konuyla ilgili saygın bir kitap aldım . Çoğu insanın gerçekten profesyonel Kukla eğitimi aldığını sanmıyorum. Süreci ortamıma kalıplayabilene kadar örnekler üzerinde çalıştım. Bu, Aralık 2011’di, bu yüzden birkaç hafta içinde, temelleri anlayabildim ve bir üretim çerçevesi oluşturdum. Bir CFEngine geçmişine sahip yapılandırma yönetimi konusunda yeni değildim , ancak sistem yöneticilerinin endişelerinin çoğu rezonansa girdi . Hatalar yaptım ve birkaç kez yeniden yönlendirmek zorunda kaldım, ancak işleri iyi bir şekilde yerine getirdim.

Puanlarınızla ilgili birkaç not ...

  • Geleneksel sistem yönetimi rolü değişiyor. Uyum sağlayın veya geride bırakın. Başarılı bir sistem mühendisi oldum, fakat aynı zamanda retool yapmak zorundayım (örneğin Python'u öğrenmek). Bireysel sunuculara odaklanma, sanallaştırma ve genel ve özel bulut hizmetleri yoluyla donanım soyutlama çekerek kazancı azaltıyor. Bu, sistem görevlerinin otomasyonu ve daha fazla sayıda sunucunun kontrolünü almak için yapılandırma yönetimi kullanımı anlamına gelir. DevOps kavramlarını karışıma ekleyin ; müşteri / son kullanıcı beklentilerinin ve gereksinimlerinin değiştiğini göreceksiniz .

  • Çevrimiçi olarak kullanılabilen kukla modülleri tarz ve yapı bakımından farklılık göstermektedir ve evet, çok fazla örtüşme, fazlalık ve çoğaltılmış çaba gördüm. Çalıştığım bir geliştirici, "Çevrimiçi olarak çalışan bir şey ararken harcadığınız zaman içerisinde kendi araçlarınızı geliştirmiş olabilirsiniz!" Dedi. Kukla'nın geliştirici türlerine en iyi uygulamaları ya da doğru yolu arayanları arayan yöneticilerden daha çekici geldiğini fark ettiğimde bu beni duraklattı .

  • İşlerin nasıl birleştiğine dair bir fikir edinmek için yoğun biçimde belgelendirin. Titiz tanımları ve işleri yapmanın standart bir yolunun olmaması nedeniyle, konfigürasyon yönetimi yapınız gerçekten ortamınız için eşsizdir. Bu şeffaflığın içinde geliştirilmesi gerekecek.

  • Sunucularınızı ve rollerinizi nasıl düzenlediğinize bağlı olarak, yeni bir arka plan programı yerleştirmek veya varolan bir bildirime hizmet eklemek için bir modülü çoğaltmanın makul derecede kolay olduğunu savunuyorum.

  • Daha büyük sunucu gruplarında değişiklik yapmadan önce, tek bir hedef üzerinde test yapmak için çok zaman harcadım. Kuklacı elle temsili bir sunucuda çalıştırmak değişiklikleri hata ayıklamama ve etkilerini değerlendirmeme izin verdi. Belki bu biraz muhafazakar, ama gerekliydi.

  • Topluluk modüllerine ne kadar bağımlı olacağımı bilmiyorum. Ben zorunda mı bazı iş için Augeas kullanmaya başlamak ve CFEngine hafife aldım bir işlevsellik olduğu gerçeğini yakındı.

Kukla söz konusu olduğunda, iyi tanımlanmış bir standart olmadığını hissediyorum. Puppetmaster'imde dizin yapısını nasıl organize edeceğimi, sertifika imzalamayı nasıl yöneteceğimi, her yerde uygun bir ters DNS yapmayı , Puppet'in çevreye uygun bir şekilde ölçeklendirmesini ve topluluk modüllerini kendiminkinden ne zaman kaldıracağımı anlayabilmeyi anlamakta zorlandım. Düşüncede bir değişim ve bunun bir sysadmin paniğini nasıl etkileyeceğini görüyorum. Ancak, bu aynı zamanda sıfırdan inşa edilmiş bir çözümdü, bu yüzden araçları değerlendirme lüksüne sahiptim. Bu yoldan gitme kararı zihniyete ve Kukla'nın arkasındaki momentuma dayanıyordu. Yeni bir şeyler öğrenme çabasına değdi.

Unutma, bu site de iyi bir kaynak.


20
Kukla ile ilgili hiçbir tecrübeden iki hafta içinde tüm ortamımın yönetilmesini sağladım. Ben çalışan tüm Ubuntu olsa da ~ 40 sanal makineden sorumluyum. Bu işleri biraz basitleştirdi. Mesleğim olan bir geliştiriciyim. "Uyum sağla ya da geride bırak" - Ben şimdi adanmış + sysadmin + architect. Mükemmel cevap!
François Beausoleil

İlk önce bağımsız olarak daha sonra daha fazla sunucuyla bağlantı kurmaya başlamalarına küçük hizmetleri dağıtmaya başlamalarını öneririm. Kukla ile çalışmak zorunda değilim ama küçük bir VPS'm var ve son zamanlarda kendi Kukla modüllerimi yaptım. Şu anki yüzyılda kalan sistem yöneticilerine yetişmek istiyorlarsa, açık fikirli olmaları daha iyiydi. Bunu yapıyorum çünkü hoşuma gidiyor ve sanırım herkes yeni şeyler öğrenmekten hoşlanmıyor, ama kesin olan şey şu ki, günümüzde sistem yöneticileri geliştiricilere her zamankinden daha yakın.
Sergio Galvan,

2
Küçük bir şirkette çalışıyorum ve ayrıca puppetd -ttüm sunuculara göndermeden önce birkaç kutu üzerinde test yapmak için çalışıyorum. Bir çiftin, güncellemelerimin onlar üzerinde başarısız olmasına neden olacak benzersiz bir şey olması asla başarısız olmaz. Kukla, başlangıç ​​için kontrollü ve tutarlı bir çevreniz olduğunda daha kolaydır.
Ürdün

1
@wwhite, Kukla öğreticisinin dokümanlarındaki yolunda çalıştım ama öğrenirken hangi kitabı kullandığınızı merak ediyordum? Dokümanlarda verilen öğreticinin, ne yaptığımı öğrenmek için test toplantılarında çalıştığım kukla ile çalışırken her şeyin benimle tıklamasını engelleyen bir şeyi eksik olduğunu hissediyorum. EDIT: Veya önerebileceğiniz ek kaynaklar. Teşekkürler.
Mike Keller

1
@MikeKeller Yazımda hoşuma gitti ... Ama burada mevcut .
ewwhite

29

Önceki bir işte, Kukla'ın pilot uygulamasını yapma görevini üstlenmiştim. Şimdi, programlama özgeçmişime sahip değilim, Ruby olmasa da, diğerlerinden olduğu kadar problemim de yok.

Ancak, dikkat ilginç programcılar Kukla çünkü geleneksel olmayan paradigmaların deneyimi olmadan da kukla ile sorun var bildirime şart değil. Bu anlamda, Kukla herhangi bir yapılandırma dosyası gibi çalışır: işlerin nasıl olması gerektiğini söylersiniz ve Kukla gerisini halleder.

Pilot çalışmadan sonra bir düzine diğer yöneticiyi Puppet'te eğitme ve bunun üzerine iki etkinlikte sunum yapma fırsatı buldum. Bu deneyimden benim almam, bazı yöneticilerin işe yarayıp yaramadığını. Bunların hepsi, programlama becerileri ve çeşitli uzmanlık seviyelerine sahip olmayan geleneksel yöneticilerdi.

Fark ettim ki özel bir şey, Kukla'ın sürekli pratik yapması gerektiğidir . Eğitilen, modüller yazan ve daha sonra bir veya iki ayını başka bir şey yaparak geçiren insanlar, yararlı olmayan bir beceri ile Kukla'a geri döndüler. Her hafta içinde küçük şeyler yapmaya devam eden insanlar yeteneklerini asla kaybetmediler.

Bu iki gözleme dayanarak, herkesin her hafta bazı Kukla sınıfı, tanımı veya modüllerini eklediğinden emin olmanı tavsiye ederim (tercihen en az iki veya üç kez). Buna hâlâ alışamayanlar, gerçekten yapacak beceriden yoksun olabilirler.

Sonra tekrar, eğer Kukla onlara yukarıdan empoze edilirse, işlerini nasıl yaptıklarına izinsiz giren bir yönetim olarak algıladıklarına tepki gösteriyor olabilirler - ki bu aslında yeterince doğru olurdu. Hangi yapılandırma yönetim sistemini kullanacaklarını seçmelerine izin verilmesi durumu iyileştirebilir. İşte bazı alternatifler:

  • ANSIBLE : Bu yeni, ancak geleneksel sistem yöneticilerini etkileyebilecek olan kabuk komutlarına ve ssh'ye dayanıyor.
  • Aşçı : Belki de onların sorunu bildiren tarzıdır, bu durumda Aşçı Ruby deneyimini yaşarsa daha iyi olur.
  • SaltStack : Python tabanlı ve açık kaynak
  • CFEngine : eski, hızlı, geleneksel - bu gerekçelerle onları yenebilir .

12
ANSIBLE ile ilgili güzel bir şey, veri aktarımında hiçbir gecikme olmadan galaktik mesafelerde çalışması!
Kalamane

1
ANSIBLE bahsettiğiniz için teşekkür ederiz. Şimdiye kadar farkında değildim.
ewwhite

@wwhite Bir şey değil. Ben, kendim daha yeni keşfettim, ama bu konudaki dikkatimi çekti. Kukla'da çok fazla şey yapmamış olsaydık, kesinlikle denerdim.
Daniel C. Sobral

11

İki yıldan beri Kukla'yı sadece sysadmin olduğum küçük dükkanlarda kullanıyorum. Yaşadığım en büyük engel, düzgün bir şekilde yazılım geliştirmeyi öğrenmek. Geliştiricilere bir düzine kez yapmamalarını söylediğim bir şeyi mahvetmediğim bir hafta yoktu. Çok fazla kod girdim, giriş yapmadım, etiketlemedi, etiketleme yaptım, dallanmadım, sözdizimi denetleyicisini çalıştırmadım, standart kullanmadım, vb. out Aşağıdakilerden bazılarını tavsiye ederim.

  1. Yapmayı bilmediğiniz ya da zayıf yaptığınız bir yazılım geliştirdiğinizi fark edin. Bu bekleniyor çünkü yeni.
  2. Kod olarak altyapı gerçektir ve bir kez huzursuzluğun üstesinden geldiğinizde oldukça güçlüdür. Bazı geliştiricilere davet eder, onlara şu anki gelişim sürecinizi gösterir (veya eksiktir), kaşlarını kaldırdıklarında almazlar ve önerilerini ciddiye alırlar. Hangi sistemi kullanırsanız ve geliştiricilerinizin tamamen uygun olmadığı sürece kullanmalarını öneririm.
  3. Kukla üçüncü parti modülleri zamanın% 90'ını emiyor. Onları okurum. Onlardan fikirleri çalarım. Büyük düzenlemeler olmadan onları sistemime çekmem. Ancak kukla stdlib'i çekerdim ki bu da hoş bir işlevsellik katar.
  4. Augustea ve Hiera. O ikisini öğren. Birincisi, mevcut dosyaların yerinde düzenlenmesine izin verir. İkincisi, harici bir veri deposudur.
  5. Verileri verilerden ayırın. Bu, öğrenilmesi zor olan kavramlardan biridir. Modül kodunuza İzleme Konakları gibi kodlama değerleri bozuk. Onları bir veri deposuna koymak (db, yaml (Hiera bunu varsayılan kullanır), csv, ne olursa olsun) modüllerin tüketebileceği kadar iyidir. Bir örnek, Mysql kullanan bir webapp. Buna izin veren, kod ve verileri ayrı ayrı itme yeteneğidir. Bu, geliştirme sürecinizi kolaylaştırır.
  6. kukla ayrıştırıcısı , kod giriş işleminden önce veya sonra gelenlerin bir parçası olarak onaylanır ve kukla ipliği alır. Ayrıca rspec testleri hızlanınca iyi bir fikir olabilir.
  7. Bir stil rehberi / kodu standardı yazıp kullanın. "Apache'yi yükleyen kod nerede" ortak bir sorundur. Modülleriniz çoğunlukla aynıysa, kolay olmalıdır.

Özetle tüm bu sorunlara çarptım ve sysadmin arkadaşlarımın çoğuna sahibim. Bir yapılandırma yönetim sistemi kullanmanın iyi olması biraz zaman alacaktır. Bir kez yaptıktan sonra nasıl yaşadığınızı merak edeceksiniz. "Bir sunucuya giriş yap ve el ile değişiklik mi yap? Ick."


Önerileriniz için teşekkür ederiz, özellikle augeas ve hiera, uygulamaya başladığımız iki bileşendir ve bu bizi Kukla'ın yeteneklerinden bile emin, daha bilinçli hale getirdi. Yani teşekkürler :-)
drumfire

7

Altı ay önce, kar amacı gütmeyen projemizde, sistem yönetimimizi Kukla kontrollü bir ortama taşımaya karar verdik çünkü sunucu sayımızın şimdiden bir yıl sonra önemli ölçüde büyümesini bekliyoruz.

Erken başlamak için lanet olası iyi bir fikir gibi geliyor - Kukla, sadece config yönetiminden çok daha fazlası, bir çeşit dokümantasyon.

Karar verildiğinden bu yana BT görevlilerimiz biraz fazla sinirlendiler.

Bir tutum ayarlamasına ihtiyaçları var.

"We're not programmers, we're sysadmins";

Yine, tutum. Bir sunucu için bir conf dosyası yapabilir misin? İhtiyaçlarınız ve karmaşıklığınız geliştikçe şablonlayıcı / 'programlayıcı' olaylarını kolaylaştırabilirsiniz .

Modüller çevrimiçi olarak kullanılabilir ancak çoğu birbirinden farklıdır; tekerlekler çok sık yeniden keşfedildi, hangisinin faturaya uygun olduğuna nasıl karar veriyorsunuz?

Cevaplaması zor - Kukla modüllerini her zaman en çok tercih ederim - ve hatta bu kadarını kullanmıyorum. Yargı için kesin çağrı. Bence bazı modüller 'çok fırfırlı'.

Depomuzdaki kod, bir süre önce kendileri bile yazmış olabileceği tezahürler ve modüller aracılığıyla tekrarlamak zorunda kaldıklarını bulmak için yeterince şeffaf değildir;

Bu bir kukla problemi gibi görünmüyor, fakat daha çok bir organizasyon veya dokümantasyon sorunu mu?

Yeni bir arka plan programı yeni bir modül yazmayı gerektirir, sözleşmeler diğer modüllere benzemelidir, zor bir süreç;

Eğer yönetmek yeterince basitse, bu cennet bir sınıf olabilir. Sözleşmelerle ne demek istediğinizi tam olarak anlamadım, kuklalar sizin için konvansiyonları çok iyi bir şekilde uygulamaktadır. Yoksa kod biçimlendirme hatları boyunca mı konuşuyoruz?

"Let's just run it and see how it works"

Yavaş ve güvende alırsan bir fikrin fena değil. Bir şeyleri anlamak için hala bir VM ile başlıyorum.

Topluluk modüllerinde çok az bilinen 'uzantı' tonu: 'trocla', 'augeas', 'hiera' ... sistem yöneticilerimiz nasıl takip edebilir?

postfix, exim, sendmail, mysql, postgresql, iftop, iptraf, perl, perl modülleri .. Ne istediğinizi seçin ve kullanın? Sanırım bu ses daha çok bir tutum olayı gibi ...

Büyük bir kuruluşun neden sistem yöneticilerini Kukla ustaları olmak için Kukla kurslarına gönderdiğini anlayabiliyorum. Ancak daha küçük oyuncular, kurslara gitmemeleri ve temel olarak tarayıcıları ve editörleri aracılığıyla öğrenmeleri durumunda, Puppet'i profesyonel düzeyde nasıl öğrenir?

Ben herhangi bir ders katılmayan - Ben ederken ben bir sistem yöneticisinin daha bir programcı, ben başarılı bir şey almak için çok fazla programlama beceri gerek yoktu bulundu.

Kukla dokümantasyonu, takip edildiğinde oldukça ayrıntılıdır. Yerleşik tiplere dikkat edin ve diğer modüllerin nasıl bir araya getirildiğine bakarak biraz zaman geçirin. Süper kolay diyemem, ama zor da değil. Altyapınızı kukla için hazır hale getirmek biraz zaman alır, ancak yatırım yaptığınız zaman genişlediğinizde iyi harcanacağınız garanti edilir.


Bilginize bu, altyapısını devirmeye hazır hale getirmeyi başaran birinden geliyor. Bu yüzden taze bir deneyimim var ve zamanın boşa gittiğini söyleyemem.
05'te

Kendimi yeni bir başlangıç ​​olarak yorumunuzda kendimi tamamen tanıyorum.
Martijn Heemels

1
Benim durumumda, tutum değişikliği gerçekten gerekliydi. Ops otomasyona bayılır ve çoğu zaman senaryoları yazmaktadır, bu yüzden çoğunlukla farklı araçlar kullanmak meselesidir. Kukla tezahürünüzün bütün bir makineyi veya sıfırdan yeni bir servisi yapılandırdığını görmek harika bir duygu. Bir hatanın bir kerede birden fazla makineyi etkileyebilmesi gerçeği daha titiz testlere alışmayı gerektirir; bu da can sıkıcı olabilir, ancak açıkça iyi bir şeydir. Vagrant, rspec kukla, kukla lint, Geppetto, Git şubeleri ve diğer ücretsiz araçlarla deneyler yapın ve yakında en sevdiğiniz iş akışını keşfedeceksiniz.
Martijn Heemels

1
Kukla ile çalışmak da, varsayılan sistem araçları dilim olarak Bash'in yerini alan Ruby'yi öğrenmeme yardımcı oldu.
Martijn Heemels

5

KISS (Basit aptalca tutun) - Yeni teknolojiler kullanmayın, çünkü onlar tam da onlar için bir gereksiniminiz var, konuşlandırmanız için gereken minimum değeri kullanın, gerektiği gibi güncelleyin, kanamaya ayak uydurmaya çalışmayın. kenar. Temel bir kurulumla başlarsanız ve bunun üzerine kurulursanız, ilerledikçe toparlamanın daha kolay ve bir kursa ihtiyaç duymaması gerekir (bunlar mümkün mü?).

Bakabileceğiniz diğer alan da sistem yöneticileriniz. Eğer programlayamıyorlarsa, işin çoğunun hangi araçları kullandığınızı yazması gereken büyük bir dağıtım için yeterince gelişmişler mi?


4
... çünkü sunucu sayımızın şu andan bir yıla kadar büyümesini bekliyoruz. Gereği?
Jeff Ferland,

1
Gerçekten bu beklentinin ne kadar kesin olduğuna ve yerine getirilen şeyin gerçekte ortaya çıktığı zamana kadar hala uygun olup olmadığına bağlı.
JamesRyan

"Konuşlandırmanın gerektirdiği en düşük seviyeyi kullan" için +1 - Kukla sistemdeki her şeyi kontrol etmeye çalışmaktan kaynaklanan kukla sorunlarının birçoğu.
Sirex

5

Ben de kar amacı gütmeyen bir kuruluş için çalışıyorum ve başlangıçta Linux kutularını eve ve kısa bir süre sonra da Kuklaları yönetmekle görevlendirdim. Yaptığımız bazı şeyler var, bu gerçekten de işleri döndürme konusunda yardımcı oldu.

Her şeyden önce üçüncü parti modüllerden uzak durmaya çalıştım. Dahili aletler yönetimimizin% 90'ını idare ediyor. Kullandığım en büyük üçüncü taraf yardımcı programı, güvenlik duvarı modülüdür. Herhangi bir özel gerçek, vb dahil olan tüm ekip ile geliştirilmiştir. Bir şablon modülü geliştirdik ve dosya yönetimi, paket, hizmetler vb. Bu şablonun tümünde standart hale getirdik.

İkincisi, yerleşik modülleri standart hale getirdikten sonra Git ve Atlassian's Crucible'ı kullanmaya başladık - bu arada kar amacı gütmeyen, bu arada - tüm yapılandırma değişikliklerini gözden geçirmek için. Bu istenen şeffaflığı sağlar.

Üçüncüsü, Puppet kurulumunu otomatik yaptım, böylece yeni ana bilgisayarlara varsayılan seçeneklerle otomatik olarak eklenebilir. Bunu ele almanın birkaç yolu var. Zaten tam bir Kickstart ortamına sahip olduğum için oraya bir script eklemeyi seçtim.


4

"Programcı değiliz, sistem yöneticisiyiz"

Benim zamanım değişti, daha da kötüsü: benim gibi bir gri kulaklıdan profesyonel programcılardan daha iyi bir programcı olması bekleniyordu , yoksa başka bir sistem yöneticisi için geçemezdi .

Şimdi, temelde bir noktada Linux'a dönüştürülen ve programlayamayan ve bununla ilgili yanlış bir şey bulamayan Windows masaüstü kullanıcıları olan "sistem yöneticileri" var.

Odadaki fil, yönetimin neden bu kadar yıkıcı bir tavrı tolere ettiğidir. Kime ya da ne için yıkıcı? İşe ve altyapıya.

Kukla [, CFEngine, Chef] konusuna geri dönelim: Biri böyle bir çözüm bulur bulmaz, kaybeder. Herkes kaybeder. Neden? Çünkü fikri bulan kişi, kapsüllenmiş konfigürasyon yönetimini hoş, temiz, Kickstart [, JumpStart, Otomatik Yükleyici, AutoYaST, Ignite-UX, NIM] işletim sistemi paketleri şeklinde tasarlayamaz. Puppet (veya Chef veya CFEngine) gibi otomatik bir bilgisayar korsanlığı aracı kullanmanız gerektiğinde, bu aynı tasarımla tamamen bozulmamış ve yönetilen sistemleri tamamen tamamen aydınlatan bir süreci tasarlamanın ve uygulamanın neresinde eksik olduğunuz anlamına gelir. otomatik ve tamamen etkileşimli değil.

Bir diğer önemli nokta Kukla veya bazı tür bir çözüm olması halinde, olduğu düzeltmek birisi hack sistemi veya elle uygulama yapılandırması, bu da bir süreç tasarlama deneyimi yaşamadığınız kadar gider ve bu süreç yapılandırması paketlenir bir çerçeve içinde ayrık parçalara. Aslında, Puppet ve benzerlerini uygulayan kişi, bileşen sahipleri, sürümleri, konfigürasyon yönetimi, Yetenek Olgunluk Modeli kavramına sahip değildir. Bu, sektörde çok ciddi bir problem haline gelmekte ve hızla gelişmektedir.

Puppet'le çalışmak aynı zamanda varsayılan sistem araç dilim olarak Bash'in yerini alan Ruby'yi de öğrenmeme yardımcı oldu. "

İşletim sistemi paketlerinin ön kurulum, ön kurulum, ön kurulum ve üst son bölümlerinde, yalnızca Bourne kabuk programları, AWK ve sed kullanarak kapsüle alınabiliyorsa neden Ruby gereklidir? Birinin Ruby'nin ezoterik bir dilini ve Kukla bağlamında bir lehçesini öğrenme uzunluğuna gideceği tamamen gereksizdir. Konfigürasyon yönetimi problemi, kabuk programları ve AWK ile kolayca çözülebilir (ve tanık olmak için çözüldü) ve burada ve orada bir tutkal olarak biraz daha fazla (1) çözüldü.

Kukla tezahürünüzün bütün bir makineyi veya sıfırdan yeni bir servisi yapılandırdığını görmek harika bir duygu.

Tek bir kod satırı olmadan Kickstart, AutoYaST veya JumpStart tarafından yapıldığını görmek ve herhangi bir ezoterik veya ekstra bir yazılıma gerek duymadan , istemci-sunucu kullanmadan, yerleşik araçlar kullanarak işletim sistemini sorgulayabilmek daha serin bir şey. mimarlık gerekli (SSH gayet iyi, gayet iyi), işletim sisteminizde yapılan her değişikliğin farkında.

5. verilerden ayrı kod. Bu, öğrenilmesi zor olan kavramlardan biridir. Modül kodunuza İzleme Konakları gibi kodlama değerleri bozuk. Onları bir veri deposuna koymak (db, yaml (Hiera bunu varsayılan kullanır), csv, ne olursa olsun) modüllerin tüketebileceği kadar iyidir. Bir örnek, Mysql kullanan bir webapp. Buna izin veren, kod ve verileri ayrı ayrı itme yeteneğidir. Bu, geliştirme sürecinizi kolaylaştırır.

... Ya da sadece olabilir şablon (örneğin kabuk değişkenleri, hatta backquotes ile konfigürasyon dosyalarını ls -1 ...) ve böylece güçlü tam aynı yararlanarak, (1) eval arayıp şablonda tüm değişkenleri genişletmek için AWK kullanan bir kabuk senaryo yazmaya hangi mermilerin yerleşik olduğu ayrıştırıcı. Gerçekten, gerçekten basit olabildiğinde neden karmaşık yapıyorsun? Yapılandırma değerlerini nerede saklayacaksınız? Neden, lütfen istediğiniz yerde, örneğin pkginfo (4) dosyaları veya Oracle gibi bir veritabanı veya hemen hemen her yerde . Ultracomplex çözümlere gerek yok. Yukarıda bahsettiğim kütüphane basitçe işletim sistemi paketlerindeki ön kurulum veya son kurulum bölümlerinden kaynaklanabilir , böylece çoğaltmayı kaldırabilir ve merkezi bir kod parçasından yararlanabilirsiniz ...

Ancak her şeyden önce, yukarıdaki teklifin sistem yöneticileri tarafından değil, sistem mühendisleri tarafından özel ders verilmesi gereken yeni nesil sistem yöneticilerinin bir örneği olduğunu buluyorum . Kendine bir tazı bul ve çırak olarak giriş yap.


1
Yazarların sorusuna verdiğiniz yanıtı unutmuş gibisiniz.
M. Glatki

Bu cevap öncelikle görüş, tutum ve araçlarla ilgili bir tartışma gibi görünüyor ve sorulan soruyu gerçekten ele almıyor.
JonathanDavidArndt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.