SaltStack - przegląd
W tym rozdziale nauczymy się podstaw SaltStack. Możliwości zdalnego wykonywania SaltStack pozwalają administratorom na uruchamianie poleceń na różnych maszynach równolegle z elastycznym systemem docelowym. Zarządzanie konfiguracją soli ustanawia model master-minion, aby szybko, bardzo łatwo, elastycznie i bezpiecznie dostosować komponenty infrastruktury do danej polityki.
Co to jest SaltStack?
Salt to bardzo potężny framework do automatyzacji. Architektura Salt opiera się na idei zdalnego wykonywania poleceń. Cała sieć jest zaprojektowana wokół jakiegoś aspektu zdalnego wykonywania. Może to być tak proste, jak zadanie plikuRemote Web Serveraby wyświetlić statyczną stronę WWW lub tak złożone, jak użycie sesji powłoki do interaktywnego wydawania poleceń na zdalnym serwerze. Sól jest przykładem jednego z bardziej złożonych typów zdalnego wykonywania.
Salt został zaprojektowany, aby umożliwić użytkownikom bezpośrednie kierowanie i wydawanie poleceń do wielu maszyn. Sól opiera się na idei Mistrza, który kontroluje jednego lub więcejMinions. Polecenia są zwykle wydawane przez Mistrza do docelowej grupy Sługusów, które następnie wykonują zadania określone w poleceniach, a następnie zwracają wynikowe dane z powrotem do Mistrza. Komunikacja między mistrzem a sługusami odbywa się przezZeroMQ message bus.
Moduły SaltStack komunikują się z obsługiwanymi systemami operacyjnymi minionów. PlikSalt Masterdziała domyślnie na Linuksie, ale każdy system operacyjny może być sługusem, a obecnie warianty Windows, VMware vSphere i BSD Unix są dobrze obsługiwane. Mistrz soli i sługi używają kluczy do komunikacji. Kiedy stronnik łączy się z mistrzem po raz pierwszy, automatycznie przechowuje klucze na nim. SaltStack również oferujeSalt SSH, który zapewnia zarządzanie systemami „bez agentów”.
Potrzeba SaltStack
SaltStack jest zbudowany z myślą o szybkości i skali. Dlatego jest używany do zarządzania dużymi infrastrukturami z dziesiątkami tysięcy serwerów na LinkedIn, WikiMedia i Google.
Wyobraź sobie, że masz wiele serwerów i chcesz na nich coś robić. Będziesz musiał zalogować się do każdego z nich i robić te rzeczy pojedynczo na każdym z nich, a następnie możesz chcieć zrobić skomplikowane rzeczy, takie jak instalowanie oprogramowania, a następnie konfigurowanie tego oprogramowania na podstawie określonych kryteriów.
Załóżmy, że masz dziesięć, a może nawet 100 serwerów. Wyobraź sobie, że logujesz się pojedynczo do każdego serwera z osobna, wydawanie tych samych poleceń na tych 100 maszynach, a następnie edycja plików konfiguracyjnych na wszystkich 100 komputerach staje się bardzo żmudnym zadaniem. Aby rozwiązać te problemy, chciałbyś zaktualizować wszystkie swoje serwery naraz, po prostu wpisując jedno polecenie. SaltStack zapewnia dokładnie rozwiązanie wszystkich takich problemów.
Funkcje SaltStack
SaltStack to oprogramowanie do zarządzania konfiguracją typu open source i mechanizm zdalnego wykonywania. Salt to narzędzie wiersza poleceń. Choć napisane w Pythonie, zarządzanie konfiguracją SaltStack jest niezależne od języka i proste. Platforma Salt wykorzystuje model push do wykonywania poleceń za pośrednictwem protokołu SSH. Domyślny system konfiguracji toYAML i Jinja templates. Sól konkuruje przede wszystkim zPuppet, Chef i Ansible.
Sól zapewnia wiele funkcji w porównaniu do innych konkurencyjnych narzędzi. Poniżej wymieniono niektóre z tych ważnych funkcji.
Fault tolerance- Słowe stwory mogą łączyć się z wieloma mistrzami jednocześnie, konfigurując główny parametr konfiguracyjny jako listę YAML wszystkich dostępnych mistrzów. Każdy master może kierować polecenia do infrastruktury Salt.
Flexible- Całe podejście Salt do zarządzania jest bardzo elastyczne. Można go wdrożyć zgodnie z najpopularniejszymi modelami zarządzania systemami, takimi jak agent i serwer, tylko agent, tylko serwer lub wszystkie powyższe w tym samym środowisku.
Scalable Configuration Management - SaltStack jest przeznaczony do obsługi dziesięciu tysięcy stworów na mistrza.
Parallel Execution model - Salt może udostępniać polecenia do wykonywania zdalnych systemów w sposób równoległy.
Python API - Salt zapewnia prosty interfejs programistyczny i został zaprojektowany jako modułowy i łatwo rozszerzalny, aby ułatwić dopasowanie do różnorodnych zastosowań.
Easy to Setup - Salt jest łatwy w konfiguracji i zapewnia pojedynczą architekturę zdalnego wykonywania, która może zarządzać różnorodnymi wymaganiami dowolnej liczby serwerów.
Language Agnostic - Pliki konfiguracyjne stanu soli, silnik szablonów lub typ pliku obsługują każdy typ języka.
Korzyści z SaltStack
Będąc prostym, a także bogatym w funkcje systemem, Salt zapewnia wiele korzyści, które można podsumować w następujący sposób:
Robust - Salt to potężna i solidna platforma do zarządzania konfiguracją, która działa na dziesiątkach tysięcy systemów.
Authentication - Salt zarządza prostymi parami kluczy SSH do uwierzytelniania.
Secure - Salt zarządza bezpiecznymi danymi za pomocą szyfrowanego protokołu.
Fast - Sól to bardzo szybka i lekka magistrala komunikacyjna, która stanowi podstawę silnika do zdalnego wykonywania.
Virtual Machine Automation - Funkcja kontrolera chmury Salt Virt służy do automatyzacji.
Infrastructure as data, not code - Salt zapewnia proste wdrażanie, zarządzanie konfiguracją oparte na modelach i ramy wykonywania poleceń.
Wprowadzenie do ZeroMQ
Salt jest oparty na ZeroMQi jest to wbudowana biblioteka sieciowa. Jest to lekka i szybka biblioteka wiadomości. Podstawowa implementacja jest wC/C++ i natywne implementacje dla kilku języków, w tym Java i .Net jest dostępny.
ZeroMQ to przetwarzanie komunikatów peer-peer bez brokera. ZeroMQ pozwala w łatwy sposób zaprojektować złożony system komunikacji.
ZeroMQ zawiera pięć podstawowych wzorców -
Synchronous Request/Response - Służy do wysyłania żądania i otrzymywania kolejnych odpowiedzi dla każdego wysłanego.
Asynchronous Request/Response- Żądający inicjuje konwersację, wysyłając wiadomość z żądaniem i czeka na wiadomość odpowiedzi. Dostawca czeka na przychodzące komunikaty Request i odpowiada za pomocą komunikatów Response.
Publish/Subscribe - Służy do dystrybucji danych z jednego procesu (np. Wydawcy) do wielu odbiorców (np. Subskrybentów).
Push/Pull - Służy do dystrybucji danych do połączonych węzłów.
Exclusive Pair - Służy do łączenia dwóch rówieśników razem, tworząc parę.
ZeroMQ to bardzo elastyczne narzędzie sieciowe do wymiany wiadomości między klastrami, chmurą i innymi środowiskami wielosystemowymi. ZeroMQ todefault transport library przedstawione w SaltStack.