U kunt opdrachten in SaltStack Config gebruiken om algemene configuratiebeheertaken en procedures die u of uw team regelmatig uitvoert, te vereenvoudigen en te automatiseren.

Wat zijn opdrachten in SaltStack Config?

Opdrachten worden gebruikt om taken voor externe uitvoering te voltooien of statusbestanden toe te passen op de knooppunten (minions) die worden beheerd door SaltStack Config. Opdrachten zijn doorgaans bedoeld voor systeembewerkingen die moeten worden geautomatiseerd en meerdere keren moeten worden uitgevoerd. U kunt opdrachten maken om algemene taken te automatiseren die u regelmatig uitvoert wanneer u knooppunten in uw systeem inricht, configureert, implementeert, controleert en beheert. U kunt ook opdrachten instellen om volgens een regelmatige planning te worden uitgevoerd, zoals opdrachten die regelmatig controleren op configuration drift en deze proberen te voorkomen.

U kunt vaak herhaalde opdrachten opslaan en geleidelijk een uitgebreide bibliotheek met opdrachten opbouwen voor toekomstig gebruik door uw team. Als u opdrachten voor configuratiebeheer gebruikt, vermindert u de tijd die uw team besteedt aan het handmatig installeren, configureren, implementeren, bijwerken en onderhouden van de knooppunten in uw systeem.

Voorbeelden van algemene opdrachten

Voor een praktische inleiding tot hoe opdrachten werken en om enkele praktische voorbeelden van typische opdrachten te bekijken, raadpleegt u de tutorials in de handleiding Aan de slag met SaltStack Config:

Mogelijk kunt u duizenden verschillende soorten opdrachten in SaltStack Config uitvoeren, afhankelijk van uw beoogde doelen. Nadat u heeft geïdentificeerd welke taak u wilt uitvoeren of welk probleem u moet oplossen, kunt u de beschikbare Salt-modules doorzoeken om te vinden welke modules de functie uitvoeren die u nodig heeft.

Opdrachten in SaltStack Config omvatten doorgaans een of meer uitvoeringsmodules of statusmodules die zijn ontwikkeld door de Salt-opensourcecommunity. Salt-uitvoeringsmodules zijn kleine programma's met Python-code die op een Salt-minion kunnen worden uitgevoerd om een specifieke taak uit te voeren. Salt-statusmodules zijn vergelijkbaar met uitvoeringsmodules. Salt-statusmodules zijn programma's met Python-code die in Salt-statusbestanden kunnen worden gebruikt om de toepassing van een status op een minion te beheren.

De volgende tabel bevat een aantal van de meest gebruikte uitvoerings- en statusmodules:

Salt-module Beschrijving

state.apply

Een module die een statusbestand toepast op een minion. Wanneer het statusbestand wordt uitgevoerd, controleert het of de minion de huidige gewenste status heeft. Als de minion niet de huidige gewenste status heeft, voert deze de commando's en modules uit om die minion in de gewenste status te brengen.

Met highstate worden alle statussen toegepast die in het top-bestand zijn gedefinieerd. Zie state.highstate voor meer informatie.

pkg.installed

Een statusmodule (wat betekent dat deze wordt gebruikt in statusbestanden) die controleert of de juiste versie van een pakket is geïnstalleerd. Als deze niet is geïnstalleerd, wordt er een pakket geïnstalleerd en wordt ervoor gezorgd dat het de juiste versie van dat pakket is. Zie salt.states.pkg voor meer informatie over het installeren van pakketten met bepaalde besturingssystemen.

file.managed

Een statusmodule (wat betekent dat deze wordt gebruikt in statusbestanden) die een bestand van de Salt-master downloadt en dat bestand op de getargete minions plaatst voor later gebruik. Zie salt.states.file voor meer informatie over het beheren van bestanden met Salt.

service.running

Een statusmodule (wat betekent dat deze wordt gebruikt in statusbestanden) die controleert of een service wordt uitgevoerd. Als de service niet wordt uitgevoerd, wordt de service gestart. Zie salt.states.service voor meer informatie over het starten of opnieuw starten van services met Salt.

Zie de Salt-module-index voor een volledige lijst met Salt-uitvoeringsmodules en -statusmodules.

Als Salt geen module heeft die u nodig heeft, kunt u Salt uitbreiden door uw eigen aangepaste modules te schrijven in Python. Indien gewenst kunt u ook die module-upstream naar het Salt-project verzenden. De Salt Project-community, die officieel wordt gesponsord door VMware, telt meer dan 3000 medewerkers in IT- en systeembeheerfuncties. De Salt-community breidt Salt uit door verschillende uitvoerings- en statusmodules te maken om de meest voorkomende taken te voltooien of de belangrijkste problemen op te lossen die systeembeheerders ondervinden.

Overzicht van de werkstroom voor opdrachten

In het algemeen maakt, configureert en bewaart een senior systeembeheerder opdrachtinstellingen voor later hergebruik. Vervolgens kan de senior beheerder een junior beheerder machtigen om deze opdracht uit te voeren op alle knooppunten (doelen) waartoe de junior beheerder toegang heeft. Bij het maken van een opdracht definieert de senior beheerder de opdrachtinvoer. Deze verwijst naar de specifieke opdrachtinstellingen of variabelen die de junior beheerder tijdens runtime kan wijzigen.

Een senior systeembeheerder kan bijvoorbeeld een opdracht bouwen die een virtuele machine maakt en implementeert en een basisset applicaties of services op die machine installeert. Deze opdracht kan elke keer worden uitgevoerd wanneer een nieuwe virtuele machine moet worden geïmplementeerd om ervoor te zorgen dat op elke implementatie dezelfde set applicaties en configuraties wordt toegepast. Na het maken van deze basisopdracht kon de senior systeembeheerder toegangsrechten verlenen aan een junior beheerder die deze opdracht uitvoert op de doelen (knooppunten) waarvoor hij toegangsrechten heeft. Door gebruik te maken van toegangscontrole op basis van rollen (RBAC) in SaltStack Config en met behulp van een principe van minste voorrecht kan de senior beheerder bepalen welke opdrachten een junior beheerder kan uitvoeren en op welke knooppunten (minions).

Het maken en uitvoeren van opdrachten is een proces dat uit meerdere stappen bestaat waarvoor een aantal verschillende tools en werkplekken in SaltStack Config zijn vereist. In het volgende diagram vindt u een overzicht van de algemene werkstroom voor opdrachten:

Diagram met uitleg over de werkstroom voor opdrachten

Elke stap wordt in de volgende artikelen beschreven: