Wanneer u SaltStack Config installeert, voert u een orkestratie-highstate uit die is opgegeven in het installatieprogramma van SaltStack Config. De highstate wordt op uw Salt-master uitgevoerd en stelt een omgeving met meerdere knooppunten in. Deze installeert de SaltStack Config-kernarchitectuur op de drie andere knooppunten die PostgreSQL, Redis en het RaaS-knooppunt zullen hosten.
Het einddoel van de installatie is vier knooppunten te hebben, elk met een andere hostfunctie. Elk knooppunt is ook een minion voor de Salt-master:
- Een Salt-masterknooppunt
- Een PostgreSQL-databaseknooppunt
- Een Redis-databaseknooppunt
- Een RaaS-knooppunt, ook wel SaltStack Config-knooppunt genoemd
Het is vooral belangrijk om alle stappen in Salt op uw knooppunten installeren uit te voeren. In het bijzonder moet u de afhankelijkheden installeren die nodig zijn voor het installatieprogramma van SaltStack Config op alle vier knooppunten in de installatie. Anders mislukt de installatie met meerdere knooppunten.
De nodige afhankelijkheden zijn:
- OpenSSL
- Extra pakketten voor Enterprise Linux (EPEL)
- Python-cryptografie
- Python OpenSSL-bibliotheek
Hoge beschikbaarheid
Het is mogelijk om meerdere Salt-masters of meerdere RaaS-knooppunten in te stellen. Het is ook mogelijk om de Salt-masterservice op één knooppunt uit te voeren en twee of meer van de andere services op een afzonderlijk knooppunt te combineren. De stappen voor het configureren van dit type systeemarchitectuur worden niet volledig uitgelegd in deze handleiding.
Voor een hoge beschikbaarheid of aangepaste architectuurvereisten zijn mogelijk consultancyservices vereist. Voordat u echter meerdere knooppunten van hetzelfde type in gaat stellen, begint u doorgaans eerst met het installatiescenario voor meerdere knooppunten en configureert u later extra architectuur.
Zie Vereiste SaltStack Config-afhankelijkheden voor meer informatie over hoge beschikbaarheid.
Sleutelgegevens over de vier knooppunten vastleggen
Voordat u begint met de standaardinstallatie, moet u de sleutelgegevens vastleggen voor elk van de vier knooppunten die betrokken zijn bij de installatie. U voert deze gegevens in op verschillende momenten tijdens het installatieproces.
Leg de volgende sleutelgegevens vast over elk van de vier knooppunten die zijn betrokken bij de installatie:
- De IP-adressen of DNS-namen
- De minion-id's
Zorg ervoor dat u duidelijk aangeeft welk IP-adres en welke minion-id bij welke host horen (het Salt-masterknooppunt, het RaaS-knooppunt, het PostgreSQL-databaseknooppunt en het Redis-databaseknooppunt).
Als best practice verifieert u of uw IP-adressen of DNS-namen juist zijn, omdat onjuiste IP-adressen of DNS-namen een mislukte installatie met meerdere knooppunten kunnen veroorzaken.
Bewaar deze gegevens in een eenvoudig toegankelijke record ter referentie. Bij het configureren van de orkestratie moet u deze gegevens invoeren in verschillende instellingen en variabelen in de configuratiebestanden. Daarom is het nuttig om deze record binnen handbereik te houden tijdens de hele installatie.
Als u in een gevirtualiseerde omgeving bent, moet u ervoor zorgen dat u het interne adres opgeeft, en niet het openbare adres.
De Redis- en PostgreSQL-hosts hebben statische IP-adressen of DNS-namen nodig waarnaar de configuratiebestanden verwijzen. Afhankelijk van de manier waarop het RaaS-knooppunt wordt geïmplementeerd, is er mogelijk ook een statisch IP-adres of DNS-naam nodig. Als u in configuraties vertrouwt op dynamische IP-adressen, kan uw omgeving worden gewijzigd en gebroken.
Een aangepaste minion-id instellen (optioneel)Een minion-id is een unieke naam die wordt gegeven aan elke minion die door een Salt-master wordt beheerd. De minion identificeert zich standaard bij de Salt-master via de hostnaam van het systeem. U kunt echter aangepaste id's toewijzen die beschrijvend zijn voor hun functie of locatie in uw netwerk.
Als u ervoor kiest uw minion-id's aan te passen, probeert u de id kort maar voldoende beschrijvend te maken voor de betreffende rol. U kunt bijvoorbeeld apache-server-1
gebruiken om een van uw webservers een naam te geven of u kunt datacenter-3-rack-2
gebruiken op basis van de locatie in een datacenter. Het doel is om de namen beschrijvend en nuttig te maken voor toekomstige referentie.
Een minion-id declareren:
- Navigeer op de terminal van de minion naar de directory met het bestand
id.conf
van de minion. De directorylocatie is standaardetc/salt/minion.d/id.conf
. - Open het bestand
id.conf
in een editor. Wijzig de instellingid
in uw gewenste minion-id. Bijvoorbeeld:id: postgres-database-1
- Na het wijzigen van een minion-id moeten de sleutels van de minion worden geaccepteerd (of opnieuw worden geaccepteerd) door de Salt-master. Zie De minionsleutels op de master(s) accepteren voor specifieke instructies over het instellen van de sleutels.
De top-statusbestanden kopiëren en bewerken
Tijdens deze installatietaak kopieert u de orkestratiebestanden die bij het installatieprogramma van SaltStack Config zijn meegeleverd, naar het Salt-masterknooppunt. Vervolgens bewerkt u de bestanden om te verwijzen naar de drie knooppunten voor RaaS, de Redis-database en de PostgreSQL-database.
De orkestratieconfiguratiebestanden kopiëren en bewerken:
- Navigeer op de Salt-master naar de directory
sse-installer
. - Kopieer de pillar- en statusbestanden van de
sse_installer
-directory naar depillar_roots
enfile_roots
van de minion met de volgende commando's:sudo mkdir /srv/salt sudo cp -r salt/sse /srv/salt/ sudo mkdir /srv/pillar sudo cp -r pillar/sse /srv/pillar/ sudo cp -r pillar/top.sls /srv/pillar/ sudo cp -r salt/top.sls /srv/salt/
Belangrijk:Bij deze instructies wordt uitgegaan van bepaalde veronderstellingen die mogelijk niet waar zijn voor uw directorystructuur, in het bijzonder als u een bestaande Salt-installatie hebt. Verondersteld in de instructies:
- Uw Salt-master gebruikt de standaarddirectorystructuur. Als uw directorystructuur is gewijzigd, moet u deze instructies mogelijk aanpassen voor uw aangepaste directorystructuur.
- U hebt nog geen map met de naam
sse
onder uw pillar of configuratiestatusroot. Als deze map bestaat, moet u deze mogelijk handmatig samenvoegen. - U hebt nog geen bestand met de naam
top.sls
in uw pillar- of Salt-directory. Als dit bestand bestaat, moet u het mogelijk handmatig samenvoegen met uw bestaande bestand.
- In de directory
/srv/pillar/
hebt u nu een bestand met de naamtop.sls
dat u in de vorige stap uit de installatiebestanden hebt gekopieerd. Open dit bestand in een editor. - Bewerk dit bestand om de lijst met minion-id's (niet de IP-adressen of DNS-namen) te definiëren voor uw PostgreSQL-, Redis-, RaaS- en Salt-master. Gebruik de id's die u eerder heeft vastgelegd.
Bijvoorbeeld:
{# Pillar Top File #} {# Define SSE Servers #} {% load_yaml as sse_servers %} - postgres-database-1 - redis-database-1 - saltstack-enterprise-api-server-1 - saltmaster-1 {% endload %} base: {# Assign Pillar Data to SSE Servers #} {% for server in sse_servers %} '{{ server }}': - sse {% endfor %}
- In de directory
/srv/salt/
hebt u nu een bestand met de naamtop.sls
dat u in stap 2 hebt gekopieerd. Open dit bestand in een editor en controleer of het overeenkomt met het volgende:base: {# Target SSE Servers, according to Pillar data #} # SSE PostgreSQL Server 'I@sse_pg_server:{{ grains.id }}': - sse.eapi_database # SSE Redis Server 'I@sse_redis_server:{{ grains.id }}': - sse.eapi_cache # SSE eAPI Servers 'I@sse_eapi_servers:{{ grains.id }}': - sse.eapi_service # SSE Salt Masters 'I@sse_salt_masters:{{ grains.id }}': - sse.eapi_plugin
Highstates toepassen op de knooppunten
- Synchroniseer uw grains nu op de Salt-master om te controleren of de Salt-master over de benodigde graingegevens voor elk minion beschikt. Deze stap zorgt ervoor dat de pillar-gegevens voor de SaltStack Config-functionaliteit correct worden gegenereerd.
In het commando dat de grains synchroniseert, kunt u zich richten op alle minions of kunt u een lijst met de specifieke minion-id's voor uw knooppunten (inclusief de Salt-master zelf) tussen de haakjes doorgeven. Bijvoorbeeld:
Alle minions targeten
sudo salt \* saltutil.refresh_grains
Een lijst met minions targeten
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
- Vernieuw en bevestig dat elk van de minions de pillar-gegevens heeft ontvangen die zijn gedefinieerd in het bestand
sse_settings.yaml
en dat het wordt weergegeven zoals verwacht.In het commando dat de pillar-gegevens vernieuwt, kunt u alle minions targeten of kunt u een lijst met de specifieke minion-id's voor uw knooppunten (inclusief de Salt-master zelf) tussen de haakjes doorgeven. Bijvoorbeeld:
Alle minions targeten
sudo salt \* saltutil.refresh_pillar
Een lijst met minions targeten
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
- Bevestig dat de resultaatgegevens voor uw pillar correct zijn:
sudo salt \* pillar.items
Controleer of u pillar-gegevens gerelateerd aan SaltStack Config kunt zien.
Opmerking:U kunt ook de pillar-gegevens van een specifieke minion targeten om te controleren of de pillar-gegevens zijn vernieuwd.
- Voer het commando uit dat de highstate van de orkestratie toepast op de PostgreSQL-server. Gebruik de minion-id die u eerder voor de PostgreSQL-server heeft vastgelegd.
Bijvoorbeeld:
sudo salt postgres-database-1 state.highstate
- Herhaal de vorige stap voor elk van de volgende servers en voeg hierbij de minion-id voor elke server in:
- Het Redis-knooppunt
- Het RaaS-knooppunt
- Het Salt-masterknooppunt
Opmerking:Tijdens de eerste toepassing van de highstate op de Salt-master ziet u mogelijk het volgende foutbericht:
Authenticationerroroccurred
. Deze fout wordt weergegeven omdat de Salt-master nog niet is geverifieerd bij het RaaS-knooppunt, maar de installatiestatus van de masterplug-in herstart de Salt-masterservice en het probleem wordt automatisch opgelost.
Als er andere fouten optreden tijdens het uitvoeren van de highstates, raadpleegt u de pagina Problemen oplossen.