Bir uygulamayı birden çok sunucuda veya PXE ile cfEngine / Chef / Puppet arasında yönetme


15

Birkaç (5 ya da daha fazla ve büyüyecek) kutular üzerinde çalışan bir uygulamamız var. Donanım tüm makinelerde aynıdır ve ideal olarak yazılım da olacaktır. Onları şimdiye kadar elle yönetiyorum ve artık (statik ip adresleri, gerekli tüm hizmetleri devre dışı bırakma, gerekli paketleri yükleme ...) istemiyorum. Herkes aşağıdaki seçeneklerin artılarını ve eksilerini dengeleyebilir veya daha akıllı bir şey önerebilir mi?

1: Tüm kutulara bireysel olarak centos yükleyin ve konfigürasyonları şef / cfengine / kukla ile yönetin. Uygulamalardan birini kullanmayı öğrenmek için bir bahane istediğim için bu iyi olurdu, ama bunun aslında en iyi çözüm olup olmadığını bilmiyorum.

2: bir kutu mükemmel yapmak ve görüntü. Görüntüyü PXE üzerinde sunun ve ne zaman değişiklik yapmak istersem, kutuları yeni bir görüntüden yeniden başlatabilirim. Küme adamları normalde / etc / sysconfig / network-scripts / ifcfg * dosyalarında mac adresleri olması gibi şeyleri nasıl işler? Biz de infiniband kullanıyoruz ve hwaddr yanlışsa başlamayı reddediyor. Bunlar önyükleme sırasında doğru şekilde oluşturulabilir mi?

PXE çözümüne yöneliyorum, ancak munin veya nagios ile izlemenin bu konuda biraz daha karmaşık olacağını düşünüyorum. Herkes bu tür bir sorun deneyimi var mı?

Tüm sunucularda SSD'ler vardır ve hızlı ve güçlüdür.

Teşekkürler, matt.

Yanıtlar:


12

Kümeniz benimki gibi bir OLTP'den çok bir HPC kümesi gibi görünüyor, ancak bence kullandığım kurulum sizin için de işe yarayacak. Ben buna "mpdehaan trifecta" diyorum çünkü bu üç aracı yazan ya da yöneten adamın ircnick'i.

1.) Temel yapı temini için ayakkabıcı . Cobbler, kickstart, pxe, yum-repo, dhcp, dns, vb sistemlerinizin kesişimi olmayı hedefleyen bir projedir. Bu, bir kickstart kurulumunu kurup çalıştırmanın en kolay yoludur ve gerektiği gibi diğer özelliklere de büyüyebilirsiniz.

2.) Konfigürasyon yönetimi için kukla . İdeal ayakkabıcı inşa barındıran çok biliyoruz yapılandırmaları barebone olan sadece başlangıçta kuklan sunucusuna telefon evine yeter. Kukla daha sonra yapılandırma ayarlarınızı uygular ve kalıcı olarak ortamınızda tutarlı tutar.

3.) Işlev ad-hoc komutlar paralel olarak birden fazla makine için. Örneğin "kodun yeni bir svn kasasını dağıtın ve apache'yi yeniden başlatın". Küme-ssh gibi bir grup sunucuda aynı bash komutunu çağırmak için func kullanmak oldukça kolaydır. Gerçekten içine girmek istiyorsanız, gerçekten basit bir python ile kendi modüllerinizi yazabilirsiniz.

Bu araçların üçünde de freenode konusunda yardım için iyi wiki'ler ve aktif irc kanalları bulunur.


Bence bu çözüm için gideceğim. Bir şans vereceğim ve hepinize haber vereceğim. Muhtemelen süreci de bloglayacağım. Teşekkürler!
matt

5

genel bakış

Bazı açılardan, burada iki sorunuz var ..

  • Standart sunucuları nasıl oluşturur ve bakımını yaparım?
  • Standart yapılandırmayı nasıl koruyabilir ve daha sonra nasıl değişiklik yapabilirim?

Cevabımı aşağıda bu iki şeye ayrı ayrı değinmek için ayırdım ama çok yakından ilgili. Burada teknoloji çözümlerine değiniyorum ve değişim kontrolü gibi ilgili en iyi uygulamalardan hiçbirine değinmiyorum.

Bu, sorunuzun kapsamını kapsamıyorsa, lütfen açıklığa kavuşturun. Bu, iyi çalışan bir teknoloji altyapısı için kritik olan gerekli bir temeldir.

Yapı Sunucuları

UNIX dünyasındaki görüntüleri sevmiyorum; bu daha çok Windows tarzı bir yaklaşım. Bazı Windows kullanıcıları bile şimdi standart sürümler için komut dosyalarına odaklanıyor gibi görünüyor.

Uydu, RHEL dünyasında biraz popüler hale geliyor. Spacewalk Açık Kaynaklı bir muadildir. Bunu kullanmak için kesinlikle RHEL yaklaşımını satın almalısınız. Bu, hem sunucu oluşturma hem de yapılandırma yönetimi olarak işlev görür.

İdeal olarak, gerekli tüm yazılımlar için bir dosya sunucusunda yerel aynalar ve depolar oluşturmak istersiniz.

İlk olarak, RHEL / CentOS'ta Kickstart gibi dağıtım oluşturma otomasyonundan yararlanın. Kickstart, ihtiyaçlarınıza bağlı olarak varyasyonları olan bir temel olacaktır. Kickstart derlemeleri bir PXE sunucusundan başlatılabilir.

Yapının daha gelişmiş kısmı ve Kickstart dosyası için uygun olmayan herhangi bir şey için kendi özel komut dosyalarınızı yazabilirsiniz. Ancak, özel komut dosyaları yerine kukla veya cfengine'ın sizin için iyi çalıştığını görebilirsiniz. Özel komut dosyalarının en esnek olduğunu gördüm ve herhangi bir yaklaşımla sınırlı değilim.

Kendi komut dosyalarınızı yazmayı seçerseniz, evrensel yapılandırma için temel bir komut dosyası öneririm. Bu, güvenlik yapılandırması, sertleştirme ve tüm yapılara uygulanan her şey olacaktır. Sonra sunucu rolünü tamamlamak için son bir komut dosyası. Örneğin, bir web sunucusu veya bir veritabanı sunucusu.



Standartları Koruma

Açıkladığınız şey yapılandırmaların korunması altında da bulunmaktadır. Derleme standartları, yazılım güncellemeleri ve diğer şeyler derlemelerle ilgilidir, ancak birçok yönden ayrıdır.

En önemli sunucu rolleriniz için kendi kaynak tabanlı yapılarınızı oluşturmak yerine sistem paketlerine güvenmeyi seçerseniz, bunların çoğu yerel sistem yardımcı programlarıyla korunabilir. Bu, forsunucu listenize karşı bir döngü çalıştırmak ve bir çalıştırmak için bir komut dosyası olabilir yum -y update package.

Konfigürasyon yönetimi için kukla, cfengine ve diğer konfigürasyon yönetimi yardımcı programları devreye girer. Bunlar çok kullanışlı yardımcı programlardır ve kendi komut dosyalarınızı sıfırdan yazmadan gerekli temeli sağlar.

Sunucularınız için yapılandırma standartlarınızı güncellediğinizde, bunu standart sunucu yapılarınıza geri doldurmanız önemlidir.


0

Kısa bir süre önce, merkezi bir oluşturma / sağlama ve yapılandırma yönetimi sistemini $ WORK ile başlatmak için büyük bir projeyi bitirdim. CentOS kullanıyoruz.

Gerçekten hoşuma giden tasarımım, her şeyi basit ama etkili bir web kullanıcı arayüzü üzerinden birbirine bağlamak için bazı özel PHP komut dosyaları kullanarak, neredeyse tek tıklamayla (iyi, bir web GUI sayfası) oluşturma işlemi sağlar.

Genel teori:

  1. Tüm yüklemeleri tek, birleştirilmiş, minimalist bir KickStart dosyasından yapın (iyi, Tamam, biri x86 için ve biri x86-64 için, ancak yine de minimum paket seçimi ile neredeyse aynı dosya).
  2. KickStat postinstall komut dosyası bootstraps Kukla.
  3. Kukla, tüm düğüme / ana bilgisayara özgü yapılandırmayı, paket kurulumunu vb. Uygular.

Görüntülerin bir şey yapmanın Unix-y yolu olmadığını kabul ediyorum ... komut dosyası / otomatik kurulum ve yapılandırmanın o kadar basit olmadığı Windows dünyası için gerçekten daha uygunlar.

Kuklayı faturaya uyan diğer herhangi bir yapılandırma yönetim sistemi ile değiştirebilirsiniz, ancak Kukla'nın bildirici doğasını ve yakınsama kavramını seviyorum.

Bu sistem bir dizi fayda sağlar:

  • Kukla, genel bir temel kurulumdan sonraki her şeyi işler, böylece gerekli tüm paketler ve yapılandırma tek bir yerde bulunur.
  • Kukla tezahürleri ek bir alt düzey dokümantasyon kaynağı olarak hizmet eder.
  • Kukla ile çalıştığınız sürece (yani, yerel yapılandırma değişiklikleri yapmayın ya da tekrar Kukla ile birleştirmeyin), bir makinenin kopyasını oluşturmak önemsizdir.
  • Tüm ana bilgisayarlar ortak bir temelden oluşturulduğundan, temel (KickStart) paket kümesi ile donanım veya VM'leri önceden yükleyebilir ve daha sonra gerekli sınıfları ekleyerek bunları işlevsel düğümlere dönüştürebilirsiniz.
  • Kukla, ana makinelerin üretim veya geliştirme için "etiketlenmesine" izin verir, bu nedenle bir ana makinenin geliştirme / test kopyasını oluşturmak, paketleri yükseltmek veya gerektiğinde yapılandırma değişiklikleri yapmak, test etmek ve tekrar üretime dönüştürmek inanılmaz derecede kolaydır.

0

Piksel yolundan giderseniz, bir göz attığınızdan emin olun.

http://etherboot.org/wiki/index.php

Gpxe, önyükleme hedefleriyle size daha fazla esneklik sağlayacaktır. Bir aoe blade önyükleme oldukça kolaydır ve uzak bir http sunucusundan bir çekirdek önyükleme gibi bir şey yok !!!!!!!!!! :-).

Hangi sunucu çalışma sürelerine ihtiyacınız var?

Her zaman güvenlik yamaları ve yazılım yükseltmeleri uygulamanız gerekeceğinden, mükemmel bir görüntü oluşturmak imkansızdır. Eğer internete dönüklerse, yamayı görmezden gelemezsiniz.

Piksel tarafında, kümenizin dosya G / Ç'sine bağlı olarak birkaç seçeneğiniz vardır. Ya bir çekirdeği önyükleyin ve diski aoe veya iscsi'nin üzerine uzaktan monte edin.

Ayrıca, yazma resimlerindeki kopyalarla çok akıllıca şeyler de yapabilirsiniz. Yükseltmeler ve sorunlu olabilecek değişiklikleri geri almak için harika.

Ayrıca kümelenmiş bir nfs çözümü kullanarak, nfs root kullanarak başarılı oldum. İstemci adreslerine bağlı olarak sunulacak farklı dosyalar belirleyebilirsiniz.

Yine, uygulamalarınızın nfs'den kaçmayı sevip sevmediğini kontrol etmelisiniz. Her iş yükü için uygun değildir.

kümelenmiş nfs sever 192.168.0.1:/etc/hostname içerebilir 192.168.0.2:/etc/hostname

bu nedenle, her istemci aynı dosyaya başvurur, ancak istemciyle alakalı dosyayı sunar. Oldukça etkileyici şeyler, ancak basit değil!

Tüm bunlar, dosya sistemini ağ depolama alanında merkezileştirirseniz size daha hızlı dağıtım süreleri sağlar. Bir işletim sistemini ağ üzerinden uzak diske görüntülemek zaman alır !!!!

Bu çözümlerden herhangi birini kullanıyorsanız, iyi tasarlanmış ve hataya dayanıklı bir ağ katmanına sahip olduğunuzdan ve nfs / SAN sunucunuzun iyi tasarlanmış + güvenli olduğundan emin olun!

NFS / SAN bağlantınızı kaybetmek sunucu sağlığı açısından kötü olur. :-(

Önyükleme işlemini kontrol etmek için tftp / pxe için bazı komut dosyaları hazırlamak oldukça kolaydır.

Kümelenmeye çalıştığınız şeyin ne olduğunu daha fazla biliyorsam, belki de sizin için daha uygun bir çözüm düşünebilirdim.

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.