stiva de sare | |
---|---|
Tip de | Managementul configurației , administrarea sistemului |
Scris in | Python [1] |
Sistem de operare | software multiplatformă |
ultima versiune | |
Licență | Licență Apache |
Site-ul web | saltproject.io |
SaltStack este un sistem de management al configurației și operațiuni de la distanță. Este un software open source scris în Python . Proiectul a fost început în 2011 de Thomas Hatch [4] . Sprijină o abordare IaaS pentru implementarea și gestionarea cloud computing [5] .
Similar cu Puppet , Chef și Ansible .
Cele două componente principale ale SaltStack sunt Salt Master ("master") și Salt Minion ("protege", "aproximate", "minion"). Master-ul este serviciul central la care proteții se conectează pentru a obține configurația. Cele două idei principale din spatele SaltStack sunt execuția de la distanță și gestionarea configurației. Execuția de la distanță a funcțiilor Python stă la baza construirii unei configurații repetabile și gestionabile a mașinilor, cu „protege” instalate pe acestea [6] .
Stăpânul și slujitorii comunică prin intermediul middleware-ului orientat pe mesaj : stăpânul trimite mesaje într-o coadă de la care slujitorii le primesc. Pentru feedback, se folosește o altă coadă. Inițial, ZeroMQ a fost folosit pentru mesagerie , dar clusterele de servere deservite au uneori mai mult de zece mii de mașini, așa că ZeroMQ a fost conceput pentru a înlocui ZeroMQ pe baza UDP RAET ( Engleză Reliable Asynchronous Event Transport - „un protocol asincron de încredere pentru transportul de evenimente”) [7] ] .
În 2014, Salt Cloud a fost inclus în Salt, adăugând un strat de abstractizare la SaltStack pentru a lucra cu diverși furnizori de platforme cloud [8] .
Comanda saltde pornire a execuției de la distanță ia următorii parametri principali [9] :
SaltStack folosește modulele State pentru a descrie stările necesare ale gazdelor protejate. Stările sistemului sunt scrise ca fișiere cu extensie de .slssintaxă YAML , de exemplu: [10]
openssh-client: pachet.instalatModulele de stare diferă de modulele executabile prin faptul că descriu stările necesare și sarcina lor este de a atinge starea descrisă. Modulele executabile efectuează de fiecare dată acțiunile inerente acestora [10] .
Descrierile de stat pot fi extinse folosind limbajul de șabloane Jinja 2, iar datele sensibile ale anumitor protejați pot fi protejate (de alți protejați) de subsistemul Pillar [11] .