Wanneer u Automation Config installeert, voert u een orkestratie-highstate uit die is opgegeven in het installatieprogramma van Automation Config. De highstate wordt op uw Salt-master uitgevoerd en stelt een omgeving met meerdere knooppunten in. Deze installeert de Automation 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 Automation 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 Automation 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 Automation 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
minion.conf
van de minion. De directorylocatie is standaardetc/salt/minion.d
. - Open het bestand
minion.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 Automation 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 Salt-master 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
Het pillar-bestand met instellingen voor Automation Config bewerken
Tijdens deze installatietaak bewerkt u vijf verschillende gedeelten in het toewijzingsbestand met instellingen voor Automation Config om de waarden te leveren die geschikt zijn voor uw omgeving. Deze instellingen worden gebruikt door de configuratiestatusbestanden om uw implementatie van Automation Config te implementeren en te beheren.
Het statusbestand met instellingen voor Automation Config kopiëren en bewerken:
- Navigeer op de Salt-master naar de directory
/srv/pillar/sse/
. - Open het bestand
sse_settings.yaml
in een editor. Gedeelte 1 van dit bestand bevat vier variabelen die overeenkomen met de vier knooppunten. Wijzig de waarden van de vier variabelen in de minion-id's (niet de IP-adressen of DNS-namen) voor de overeenkomstige knooppunten. Gebruik de minion-id's die u eerder heeft vastgelegd.Bijvoorbeeld:
# PostgreSQL Server (Single value) pg_server: postgres-database-1 # Redis Server (Single value) redis_server: redis-database-1 # SaltStack Enterprise Servers (List one or more) eapi_servers: - saltstack-enterprise-api-server-1 # Salt Masters (List one or more) salt_masters: - saltmaster-1
Opmerking: De variabelen voorpg_server
enredis_server
zijn enkelvoudige variabelen omdat de meeste netwerkconfiguraties slechts één PostgreSQL- en Redis-database hebben. De variabelen vooreapi_servers
ensalt-masters
zijn daarentegen opgemaakt in een lijst omdat het mogelijk is om meer dan één RaaS-knooppunt en Salt-master te hebben. - Bewerk in gedeelte 2 van dit bestand de variabelen om het eindpunt en de poort van uw PostgreSQL-knooppunt op te geven:
-
pg_endpoint
- Wijzig de waarde in het IP-adres of de DNS-naam (niet de minion-id) van uw PostgreSQL-server. Als u in een gevirtualiseerde omgeving bent, moet u ervoor zorgen dat u het interne adres opgeeft, en niet het openbare adres. -
pg_port
- De PostgreSQL-standaardpoort is opgegeven, maar kan indien nodig worden overschreven. -
pg_username
enpg_password
- Voer de verificatiegegevens in voor de gebruiker die de API (RaaS) zal gebruiken voor verificatie bij PostgreSQL. Deze gebruiker wordt gemaakt wanneer u de highstate van de configuratieorkestratie uitvoert.
Opmerking: De variabele is opgegeven alspg_endpoint
omdat in sommige installaties mogelijk een afzonderlijke PostgreSQL-server (of cluster) is geconfigureerd die niet door dit installatieproces wordt beheerd. In dat geval sluit u de actie uit. Pas de highstate niet toe op de PostgreSQL-server tijdens de stap Highstates toepassen op de knooppunten later in het proces. -
- Herhaal de vorige stap om gedeelte 3 van dit bestand te bewerken, maar bewerk nu de bijbehorende variabelen om het eindpunt en de poort van uw Redis-knooppunt op te geven.
- Bewerk in gedeelte 4 van dit bestand de variabelen met betrekking tot het RaaS-knooppunt:
- Als dit een nieuwe installatie is, wijzigt u de standaardwaarden niet voor de variabelen
eapi_username
eneapi_password
. Tijdens de configuratieorkestratie stelt het installatieproces de database in met deze standaardverificatiegegevens. Deze verificatiegegevens zijn nodig om verbinding te maken via de eAPI-service en uw standaarddoelen en -opdrachten in uw Automation Config vast te stellen. U wijzigt het standaardwachtwoord in een latere stap na installatie. - Wijzig voor de variabele
eapi_endpoint
de waarde in het IP-adres of de DNS (niet de minion-id) van uw RaaS-knooppunt.Opmerking: De variabele is opgegeven alseapi_endpoint
omdat in sommige installaties meerdere eAPI-servers achter een load balancer worden gehost. - De variabele
eapi_ssl_enabled
is standaard ingesteld opTrue
. Wanneer dit opTrue
is ingesteld, is SSL ingeschakeld. U wordt sterk aangeraden dit ingeschakeld te houden. SSL-validatie is niet vereist door het installatieprogramma, maar is waarschijnlijk een beveiligingsvereiste in omgevingen die hun eigen certificaatautoriteit hosten. - De variabele
eapi_standalone
is standaard ingesteld opFalse
. Deze variabele geeft richting aan de configuratiestatussen als pillar-gegevens worden gebruikt in een installatiescenario met één knooppunt. In dat scenario wordt alle IP-communicatie doorverwezen naar het loopback-adres. In het scenario voor meerdere installaties laat u de variabele ingesteld opFalse
. - De variabele
eapi_failover_master
is standaard ingesteld opFalse
. Deze variabele ondersteunt implementaties waarbij Salt-masters (en minions) in failovermodus werken. - De variabele
eapi_key
definieert de encryptiesleutel die door Automation Config wordt gebruikt om versleutelde gegevens in de PostgreSQL-database te beheren. Deze sleutel moet uniek zijn voor elke installatie. Er is een standaardwaarde opgegeven, maar er kan een aangepaste sleutel worden gegenereerd door het volgende commando uit te voeren op een afzonderlijke terminal buiten de editor:openssl rand -hex 32
- Als dit een nieuwe installatie is, wijzigt u de standaardwaarden niet voor de variabelen
- In gedeelte 5 van dit bestand bewerkt u de variabelen om uw unieke klant-id's toe te voegen:
- De variabele
customer_id
is een unieke manier om een SaltStack-implementatie te definiëren. Deze wordt het achtervoegsel van de schemanaam van deraas_*
-database (API (RaaS)) in PostgreSQL. Er is een standaardwaarde opgegeven, maar er kan een aangepaste sleutel worden gegenereerd door het volgende commando uit te voeren op een afzonderlijke terminal buiten de editor:cat /proc/sys/kernel/random/uuid
- De variabele
cluster_id
definieert de id voor een set Salt-masters wanneer deze is geconfigureerd in de actieve of failover multi-mastermodus. Met deze id voorkomt u dat minions die rapporteren aan meerdere Salt-masters, meerdere keren binnen Automation Config worden gerapporteerd.
- De variabele
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 Automation 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 Automation 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.