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.

Let op: Het implementeren van SaltStack Config in containers wordt niet ondersteund of aanbevolen.

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
Voorzichtig:

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.

Opmerking:

Als u in een gevirtualiseerde omgeving bent, moet u ervoor zorgen dat u het interne adres opgeeft, en niet het openbare adres.

Statische versus dynamische IP-adressen

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:

  1. Navigeer op de terminal van de minion naar de directory met het bestand minion.conf van de minion. De directorylocatie is standaard etc/salt/minion.d.
  2. Open het bestand minion.conf in een editor. Wijzig de instelling id in uw gewenste minion-id. Bijvoorbeeld:
    id: postgres-database-1
  3. 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:

  1. Navigeer op de Salt-master naar de directory sse-installer.
  2. Kopieer de pillar- en statusbestanden van de sse_installer-directory naar de pillar_roots en file_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.
  3. In de directory /srv/pillar/ hebt u nu een bestand met de naam top.sls dat u in de vorige stap uit de installatiebestanden hebt gekopieerd. Open dit bestand in een editor.
  4. 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 %}
  5. In de directory /srv/salt/ hebt u nu een bestand met de naam top.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

  1. 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
  2. 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
  3. 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.

  4. 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
  5. 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.