SaltStack - Genel Bakış
Bu bölümde SaltStack'in temellerini öğreneceğiz. SaltStack'in uzaktan yürütme yetenekleri, yöneticilerin çeşitli makinelerde esnek bir hedefleme sistemi ile paralel olarak komutlar çalıştırmasına olanak tanır. Salt konfigürasyon yönetimi, altyapı bileşenlerini belirli bir politika ile uyumlu hale getirmek için hızlı, çok kolay, esnek ve güvenli bir şekilde bir ana minyon modeli oluşturur.
SaltStack nedir?
Salt, çok güçlü bir otomasyon çerçevesidir. Salt mimarisi, komutları uzaktan çalıştırma fikrine dayanmaktadır. Tüm ağ iletişimi, uzaktan yürütmenin bazı yönlerine göre tasarlanmıştır. Bu soru sormak kadar basit olabilirRemote Web ServerStatik bir Web sayfasını görüntülemek için veya uzak bir sunucuya etkileşimli olarak komutlar yayınlamak için bir kabuk oturumu kullanmak kadar karmaşık. Salt, daha karmaşık uzaktan yürütme türlerinden birine bir örnektir.
Salt, kullanıcıların doğrudan birden fazla makineyi açıkça hedeflemesine ve komut vermesine izin vermek için tasarlanmıştır. Tuz, bir veya daha fazlasını kontrol eden bir Üstat fikrine dayanır.Minions. Komutlar normalde Usta'dan Minyonların hedef grubuna gönderilir, bu grup daha sonra komutlarda belirtilen görevleri yürütür ve ardından elde edilen verileri Usta'ya geri döndürür. Bir usta ve minyonlar arasındaki iletişim,ZeroMQ message bus.
SaltStack modülleri, desteklenen minion işletim sistemleriyle iletişim kurar. Salt Mastervarsayılan olarak Linux üzerinde çalışır, ancak herhangi bir işletim sistemi bir minion olabilir ve şu anda Windows, VMware vSphere ve BSD Unix türevleri iyi desteklenmektedir. Tuz Ustası ve minyonlar iletişim kurmak için anahtar kullanır. Bir minyon bir ustaya ilk kez bağlandığında, anahtarları otomatik olarak ustaya kaydeder. SaltStack ayrıca şunları sunar:Salt SSH, "aracısız" bir sistem yönetimi sağlar.
SaltStack İhtiyacı
SaltStack hız ve ölçek için tasarlanmıştır. Bu nedenle LinkedIn, WikiMedia ve Google'da onbinlerce sunucuyla büyük altyapıları yönetmek için kullanılır.
Birden fazla sunucunuz olduğunu ve bu sunuculara bir şeyler yapmak istediğinizi hayal edin. Her birinde oturum açmanız ve bunları birer birer yapmanız gerekir ve ardından yazılım yüklemek ve ardından bu yazılımı belirli kriterlere göre yapılandırmak gibi karmaşık şeyler yapmak isteyebilirsiniz.
On veya belki 100 sunucunuz olduğunu varsayalım. Her sunucuya tek tek oturum açtığınızı, bu 100 makinede aynı komutları verdiğinizi ve ardından yapılandırma dosyalarını 100 makinenin tamamında düzenlemenin çok sıkıcı bir iş haline geldiğini düşünün. Bu sorunların üstesinden gelmek için, yalnızca tek bir komut yazarak tüm sunucularınızı bir kerede güncellemek istersiniz. SaltStack, tüm bu tür sorunlar için size tam olarak çözüm sağlar.
SaltStack'in Özellikleri
SaltStack, açık kaynaklı bir yapılandırma yönetimi yazılımı ve uzaktan yürütme motorudur. Salt bir komut satırı aracıdır. Python'da yazılırken, SaltStack yapılandırma yönetimi dilden bağımsızdır ve basittir. Salt platformu, SSH protokolü aracılığıyla komutları yürütmek için itme modelini kullanır. Varsayılan konfigürasyon sistemiYAML ve Jinja templates. Tuz, önceliklePuppet, Chef ve Ansible.
Tuz, diğer rakip araçlara kıyasla birçok özellik sağlar. Bu önemli özelliklerden bazıları aşağıda listelenmiştir.
Fault tolerance- Salt minionlar, ana yapılandırma parametresini mevcut tüm ustaların YAML listesi olarak yapılandırarak aynı anda birden fazla ustaya bağlanabilir. Herhangi bir usta, komutları Salt altyapısına yönlendirebilir.
Flexible- Salt'ın tüm yönetim yaklaşımı çok esnektir. Ajan ve Sunucu, Yalnızca Ajan, Yalnızca Sunucu veya yukarıdakilerin tümü gibi en popüler sistem yönetimi modellerini aynı ortamda takip etmek için uygulanabilir.
Scalable Configuration Management - SaltStack, usta başına on bin minyonu işlemek için tasarlanmıştır.
Parallel Execution model - Salt, komutların uzaktaki sistemleri paralel bir şekilde yürütmesini sağlayabilir.
Python API - Salt, basit bir programlama arayüzü sağlar ve çeşitli uygulamalara kalıplanmasını kolaylaştırmak için modüler ve kolayca genişletilebilir olacak şekilde tasarlanmıştır.
Easy to Setup - Salt'ın kurulumu kolaydır ve herhangi bir sayıdaki sunucunun çeşitli gereksinimlerini yönetebilen tek bir uzaktan yürütme mimarisi sağlar.
Language Agnostic - Salt state yapılandırma dosyaları, şablon oluşturma motoru veya dosya türü her tür dili destekler.
SaltStack'in Faydaları
Salt, zengin özelliklere sahip bir sistem olduğu kadar basit bir sistem olarak birçok fayda sağlar ve aşağıdaki gibi özetlenebilir -
Robust - Salt, güçlü ve sağlam bir yapılandırma yönetimi çerçevesidir ve on binlerce sistem etrafında çalışır.
Authentication - Salt, kimlik doğrulama için basit SSH anahtar çiftlerini yönetir.
Secure - Salt, şifrelenmiş bir protokol kullanarak güvenli verileri yönetir.
Fast - Salt, uzaktan yürütme motorunun temelini oluşturan çok hızlı, hafif iletişim veri yoludur.
Virtual Machine Automation - Salt Virt Cloud Controller özelliği otomasyon için kullanılır.
Infrastructure as data, not code - Salt, basit bir dağıtım, modele dayalı yapılandırma yönetimi ve komut yürütme çerçevesi sağlar.
ZeroMQ'ya Giriş
Salt dayanmaktadır ZeroMQkitaplık ve gömülebilir bir ağ kitaplığıdır. Hafif ve hızlı bir mesajlaşma kitaplığıdır. Temel uygulama şu şekildedir:C/C++ ve dahil olmak üzere çeşitli diller için yerel uygulamalar Java ve .Net kullanılabilir.
ZeroMQ, aracısız bir eşler arası mesaj işlemedir. ZeroMQ, karmaşık bir iletişim sistemini kolayca tasarlamanıza olanak tanır.
ZeroMQ aşağıdaki beş temel modelle birlikte gelir -
Synchronous Request/Response - Bir istek göndermek ve gönderilen her biri için sonraki yanıtları almak için kullanılır.
Asynchronous Request/Response- Talep eden, bir İstek mesajı göndererek konuşmayı başlatır ve bir Cevap mesajı bekler. Sağlayıcı gelen İstek mesajlarını bekler ve Cevap mesajlarıyla cevap verir.
Publish/Subscribe - Verileri tek bir işlemden (örneğin yayıncı) birden çok alıcıya (örneğin aboneler) dağıtmak için kullanılır.
Push/Pull - Verileri bağlı düğümlere dağıtmak için kullanılır.
Exclusive Pair - İki eşi birbirine bağlayarak bir çift oluşturmak için kullanılır.
ZeroMQ, kümeler, bulut ve diğer çoklu sistem ortamları arasında mesaj alışverişi için oldukça esnek bir ağ oluşturma aracıdır. ZeroMQ,default transport library SaltStack'te sunulur.