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.

Let op: Het implementeren van Automation 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 Automation 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 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.

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

  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
    

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:

  1. Navigeer op de Salt-master naar de directory /srv/pillar/sse/.
  2. 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 voor pg_server en redis_server zijn enkelvoudige variabelen omdat de meeste netwerkconfiguraties slechts één PostgreSQL- en Redis-database hebben. De variabelen voor eapi_servers en salt-masters zijn daarentegen opgemaakt in een lijst omdat het mogelijk is om meer dan één RaaS-knooppunt en Salt-master te hebben.
  3. 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 en pg_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 als pg_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.
  4. 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.
  5. 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 en eapi_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 als eapi_endpoint omdat in sommige installaties meerdere eAPI-servers achter een load balancer worden gehost.
    • De variabele eapi_ssl_enabled is standaard ingesteld op True. Wanneer dit op True 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 op False. 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 op False.
    • De variabele eapi_failover_master is standaard ingesteld op False. 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
  6. 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 de raas_*-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.

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

  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.