Recent, am început să studiez SaltStack, aș vrea să vorbesc în acest articol "Principiile muncii și structurii SaltStack" despre principiile muncii și structura SaltStack-ului în sine.
Acest subiect este pentru începători și veți obține elementele de bază ale programului SaltStack și cum funcționează totul în el:
- Instalarea și configurarea SaltStack (A fost spus în articolul meu anterior).
- Execuția de la distanță a comenzilor în toate sistemele gestionate (A fost spus în articolul meu precedent).
- Proiectarea, dezvoltarea și implementarea configurațiilor de sistem (Să vorbim despre asta).
- Utilizarea Reactorului de Sare pentru automatizarea infrastructurii (Să vorbim despre acest lucru).
- Coordonarea operațiunilor complexe de management folosind SaltStack Orchestration (Să vorbim despre acest lucru).
Structura sarii
Pentru claritate, voi da o captură de ecran:
- Componentele SaltStack - Componentele SaltStack.
- SaltStack Flexibilitate - Flexibilitate SaltStack.
- SaltStack Speed - Speed SaltStack.
- SaltStack Fundamentals - Bazele SaltStack.
- Gestionarea configurației.
Și acum, voi vorbi despre fiecare componentă în detaliu.
În SaltStack există o mulțime de componente și acum vă spun despre ele și de ce sunt necesare:
- Salt Master
Sistemul de management central. Acest sistem este folosit pentru a transfera comenzi și configurații către minionii care rulează pe sisteme gestionate. - Salt Minions
Sistem gestionat. Acest sistem primește comenzi și setări de la soiul-master. - Module de execuție
Comenzi speciale executate din linia de comandă cu unul sau mai multe sisteme gestionate. Utile pentru: -Monitorizarea în timp real, stare și inventar.
-Echipe unice și scripturi.
-Implementați actualizările critice. - Formule (state)
Declarația declarativă sau necesară a configurațiilor sistemului. - Cerealele
Variabile de sistem. Cerealele sunt informații statice despre sistemul gestionat subiacent și includ sistemul de operare, memoria și multe alte proprietăți ale sistemului. De asemenea, puteți specifica cereale personalizate pentru orice sistem. - stâlp
Variabilele sunt definite de utilizator. Aceste variabile sigure sunt definite și stocate pe master-ul de sare și apoi atribuite unuia sau mai multor noduri (minions) folosind ținte. Componenta stochează valorile datelor (porturi, căi de fișiere, parametri de configurare și parole). - Fișier superior
Formule și date despre piloni pentru îngrijitorii de sare. - alergători
Module care rulează pe baza de sare pentru sarcini. Runners raportează starea lucrărilor, starea conexiunilor, citirea datelor din interfețe externe, cererile legate de minierele de sare și multe altele. De exemplu, Orchestrate runner coordonează implementarea configurației între mai multe sisteme. - reîntorc
Trimite date returnate de către sare-minions la un alt sistem, de exemplu, o bază de date. Returnatorii pot fi difuzate cu sare-minion sau sare-maestru. - reactor
Reacțiile de declanșare când evenimentele apar în mediul SaltStack. - Sare de nori / Salt Virt Furnizarea sistemului pentru furnizorii / hypervizorii cloud-ului și îndreptarea imediată către management. Cu alte cuvinte - crearea unui docker de control complet / AWS, etc.
- Sare SSH
Efectuați comenzi de sare prin SSH pe sistemele care nu au instalat sifoniere.
SaltStack poate fi implementat pentru a urma cele mai populare modele de sisteme de management:
- Agent și server.
- Doar agent.
- Numai serverul.
- Orice sau toate cele enumerate mai sus în același mediu.
Un model standard pentru gestionarea configurației. Serverul trimite comenzi și configurații agenților care rulează pe un număr mare de sisteme, iar rezultatele sunt returnate serverului.
Dacă ați evitat instrumentele de gestionare, deoarece nu doriți să configurați toate aceste "lucruri", acest model este probabil pentru dvs. Agenții de sare pot efectua activități de gestionare cu sau fără implicarea serverului.
Dacă nu doriți să utilizați serverul de management, pur și simplu nu îl veți crea. Puteți să vă deplasați înainte și înapoi între acest model și modelul de agent și server sau să le folosiți împreună.
Comenzile de sare pot fi executate pe sisteme la distanță, folosind SSH în loc de agent de sare. Configurați toate serverele web care utilizează agent de sare, dar efectuați sarcini speciale de gestionare pe serverele de baze de date prin SSH. E complet dependent de tine.
Mărimea nu se potrivește tuturor
SaltStack oferă în prezent orchestrare, gestionarea configurației, reactoare de evenimente, nori de resurse dedicate și multe altele, totul fiind construit în jurul unui SaltStack de mare viteză.
Salt-master stabilește conexiuni permanente pentru toate sistemele gestionate și utilizează protocoale ușoare pentru a permite monitorizarea în timp real a mii de sisteme gestionate.
SaltStack oferă arhitecturi plug-in, care vă permit să extindeți aproape orice parte a sistemului. De exemplu, puteți să adăugați cu ușurință module, să trimiteți rezultate de la un nou sistem și să utilizați balize pentru a monitoriza orice parte a sistemului gestionat.
Vă voi spune despre următoarele:
- Cum se instalează SaltStack.
- Cum se execută comenzi pe sisteme gestionate.
- Determinați (scrieți) configurația.
- Cum să aplicați comenzi și configurații pentru anumite sisteme.
Voi folosi macul meu pentru a crea un mediu SaltStack simplu. Dar pentru început merită:
Comenzile de sare sunt executate folosind structura comună:
tinta (numele rusesc "Target"): Stabileste care sisteme accepta comanda. Folosind numele de gazdă implicit, dar există multe alte moduri de selectare și filtrare, pe care le voi discuta în viitor. În prezent, este suficient să știm că "*" este destinat tuturor sistemelor gestionate (va fi executat pe toate minele).
comanda (modul.funcțional), numele rusesc al "comenzii": Acesta este modul de utilizare a controlului real în sare. Comenzile constau în module și funcții, iar sarea este disponibilă cu module încorporate pentru instalarea software-ului, copierea fișierelor, verificarea serviciului și multe alte sarcini pentru automatizare.
argumente (denumirea rusă "argumente"): Oferă orice date suplimentare necesare atunci când apelează funcții. De exemplu, cu funcția "pkg.install", puteți instala pachete și puteți face acest lucru cu un argument.
LISTA LISTA INTERFACIUNILOR DE REȚEA.
V-am spus cum să instalați SaltStack în articolul meu:
Și acum, cel mai interesant, acum vă voi spune cum să creați o stare sărată.
Un pic despre starea de SALT
Execuția de la distanță vă economisește mult timp, dar are unele dezavantaje. Cele mai multe dintre sarcinile pe care le efectuați sunt o combinație de multe comenzi, teste și operații, fiecare cu propriile nuanțe. De multe ori se face o încercare de a combina toate aceste acțiuni în scenariul central, dar se dovedește a fi destul de greoaie.
Pentru a rezolva această problemă, gestionarea configurației SaltStack vă permite să creați un model de configurare pentru reutilizare, numit o stare care descrie tot ceea ce aveți nevoie pentru a crea o componentă sau o aplicație de sistem într-o configurație cunoscută.
Iată o captură de ecran:
Formula (formula).
O colecție de fișiere de stat și pilon care personalizează aplicația sau componenta sistemului. Cele mai multe formule (formule) constau din mai multe state împrăștiate în mai multe fișiere de stare.
Statul (stat).
stat este un fișier de configurare care configurează o anumită parte a sistemului. Fiecare stat este definit folosind declarația de stat.
Declarația de stat.
Secțiunea de nivel superior a fișierului de stare, care enumeră apelurile de stat ale funcțiilor și argumentele care alcătuiesc starea în sine. Fiecare declarație de stat începe cu un identificator unic (ID).
Funcțiile de stat.
Comenzile pe care le numiți pentru a finaliza sarcina pentru configurarea sistemului.
Dosar de stat.
Un fișier cu extensia SLS, care conține una sau mai multe declarații de stare.
statul poate reporni serviciile atunci când efectuează modificări, copiază directoare întregi și multe altele.
Fișierul de sus (Top) este utilizat pentru a aplica mai multe fișiere de stare pe noduri. Statisticile care se aplică fiecărui sistem sunt determinate de obiectivele specificate în fișierul de sus.
CREAREA FILMULUI DVS.
Înainte de a crea un fișier de top, trebuie să ne gândim cum arată configurațiile de sistem. Luați în considerare diferitele tipuri de setări de sistem. Fiecare sistem poate obține mai multe configurații, așa că vom începe cu cele mai comune configurații.
De exemplu, puteți începe cu o descriere simplă, de exemplu:
În paradigma SaltStack, lista însăși va fi fișierul de sus și fiecare element din listă va fi state-m. Obiectivele sunt utilizate în fișierul de sus pentru a determina care stare este aplicată fiecărui minion.
Următorul exemplu arată modul în care configurația dvs. poate fi tradusă în YAML într-un fișier de flux:
Când fișierul de sus este evaluat, minionii efectuează toate stările definite pentru orice destinație. De exemplu, un sistem cu minions are un identificator ATL-Web4-Prod și trebuie să se aplice vim, script-uri, utilizatori, apache, python și django-state.
Acum, că înțelegem scopul fișierului de sus - aceasta vă permite să continuați și să creați altele noi. Dacă utilizați fișiere demo Vagrant, veți observa că există deja un fișier top.sls în dosarul saltstack / salt, așa că îl vom actualiza sau puteți crea un fișier nou. Adăugați următorul cod în fișierul dvs. top.sls: