Nadat u de SaltStack Config-service heeft geïnstalleerd en geïntegreerd, moet u ook de Salt-minionservice installeren, uitvoeren en registreren op alle knooppunten die u met SaltStack Config wilt gaan beheren. U kunt de Salt-minionservice op uw knooppunten implementeren door gebruik te maken van vRealize Automation-cloudsjablonen of door de service te installeren via Secure Shell (SSH).

Salt en de relatie met SaltStack Config

SaltStack Config wordt uitgevoerd op Salt, een op Python gebaseerd opensourceframework voor externe uitvoering dat wordt gebruikt voor:

  • Configuratiebeheer
  • Automatisering
  • Inrichting
  • Orkestratie

Salt is de onderliggende technologie voor de kernfunctionaliteit van SaltStack Config. SaltStack Config verbetert Salt en breidt Salt uit, waardoor aanvullende functionaliteit en functies worden geboden die het gebruiksgemak verbeteren.

Salt gebruikt het controller-clientmodel waarin een controller commando's uitgeeft aan een client en de client het commando uitvoert. In het Salt-ecosysteem is de controller een server die de Salt-masterservice gebruikt. Deze geeft commando's uit aan een of meer Salt-minions. Dit zijn knooppunten die de Salt-minionservice uitvoeren en die zijn geregistreerd bij die specifieke master.

Een andere manier om Salt te beschrijven is als uitgever-abonneemodel. De master publiceert opdrachten die moeten worden uitgevoerd en minions abonneren zich op die opdrachten. Als een specifieke opdracht van toepassing is op die minion, wordt de opdracht uitgevoerd. Als een minion de uitvoering van een opdracht heeft voltooid, stuurt deze de opdrachtresultaatgegevens terug naar de master.

Minions zijn knooppunten die de Salt-minionservice uitvoeren. De service luistert naar opdrachten van een Salt-master en voert de aangevraagde taken uit. U kunt minions implementeren vanuit vRealize Automation-cloudsjablonen.

Voordat u van start kunt gaan met SaltStack Config voor configuratiebeheer, moet u eerst de Salt-minionservice installeren op alle knooppunten die u wilt beheren. U moet ook de minions registreren door hun sleutels naar SaltStack Config te verzenden en te accepteren.

Voordat u aan de slag gaat

  • Installeer en configureer SaltStack Config en integreer het met vRealize Automation.
  • Knooppunten die worden beheerd door SaltStack Config, moeten de Salt-master kunnen bereiken en zich op hetzelfde netwerk bevinden als het SaltStack Config-integratiepunt en de Salt-master.
  • vSphere-machines die in een privénetwerk zijn geïmplementeerd, moeten een verbinding kunnen maken met de SaltStack Config-integratie en de Salt-master.

De Salt-minionservice installeren via SSH

Het proces voor het installeren van de Salt-minionservice met SSH, hangt af van het besturingssysteem dat op die knooppunten wordt uitgevoerd.

Na installatie van de Salt-minionservice:
  1. Configureer elke minion om te communiceren met de master door het bestand master.conf in de directory /etc/salt/minion.d te maken. Geef in dit bestand het IP-adres van de master op. Bijvoorbeeld: master: 192.0.2.1
  2. Start de minionservice:

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Herhaal de vorige stappen voor alle resterende knooppunten.

Nadat u deze minionbestanden heeft geconfigureerd om naar de Salt-master te wijzen, accepteert u de minionsleutels in de SaltStack Config-service in de werkplek Minionsleutels (Minion Keys).

De Salt-minionservice installeren met vRealize Automation-cloudsjablonen

Als u de Salt-minionservice met cloudsjablonen wilt implementeren, moet u toegang hebben tot en vertrouwd zijn met het gebruik van cloud-init (Linux) of Cloudbase-init (Windows). Om Salt-minions toe te voegen aan de Salt-master die is geconfigureerd voor de SaltStack Config-integratie, moet de virtuele machine in uw cloudsjabloon cloud-init (Linux) of Cloudbase-init (Windows) ondersteunen.

In de volgende gedeelten wordt uitgelegd hoe u de Salt-minionservice implementeert met cloudsjablonen.

De eigenschapsgroep SaltStackConfiguration

Tijdens het installeren en configureren van de SaltStack Config-service in vRealize Suite Lifecycle Manager wordt een vRealize Automation-eigenschapsgroep met de naam SaltStackConfiguration gemaakt. U gebruikt de waarden van de eigenschapsgroep SaltStackConfiguration bij het configureren van de SaltStack Config-integratie in een vRealize Automation-cloudsjabloon of -implementatie.

U gebruikt ze ook in een cloud-init- of Cloudbase-init-gebaseerde configuratie in een vRealize Automation-sjabloon (voorheen blueprints genoemd) om minions te installeren. De twee eigenschappen in de SaltStackConfiguration zijn masterAddress, die overeenkomt met de instelling hostname op het integratiepunt van SaltStack Config, en masterFingerprint. Hieronder wordt een voorbeeld van de eigenschapsgroep SaltStackConfiguration getoond.

Schermafbeelding van de pagina vRealize Automation-eigenschapsgroepen en de eigenschapsgroep SaltStackConfiguration die is gemaakt tijdens de installatie van SaltStack Config

Voeg minions toe aan de Salt-master die is geconfigureerd voor vRealize Automation

Wanneer SaltStack Config wordt geïnstalleerd, wordt een IP-adres voor de Salt-master opgegeven. Dat IP-adres van de master wordt gebruikt als eigenschap masterAddress wanneer u minions implementeert op basis van een vRealize Automation-cloudsjabloon.

U installeert en implementeert minions door scripts met cloud-init of Cloudbase-init te gebruiken in een vRealize Automation-cloudsjabloon of -implementatie. U kunt ook een imagetoewijzing gebruiken die een cloudconfiguratiescript vertegenwoordigt dat een van deze indelingen gebruikt. Om Salt-minions toe te voegen aan de Salt-master die is gekoppeld aan een integratie van vRealize Automation SaltStack Config, moet de doelmachine cloud-init (Linux) of Cloudbase-init (Windows) ondersteunen. vRealize Automation-cloudconfiguratiescript ondersteunt beide indelingen.

U configureert een machineresource in de cloudsjabloon met een waarde voor minionId en cloudConfig en verwijst naar de eigenschapsgroep SaltStackConfiguration. De eigenschapsgroep SaltStackConfiguration wordt tijdens de installatie en configuratie van de SaltStack Config-service in vRealize Suite Lifecycle Manager gemaakt. Deze bevat de eigenschappen masterAddress en masterFingerprint.

De waarde voor minionId moet overeenkomen met de waarde die is opgegeven voor de /salt/minion_id van de machine in het gedeelte cloudConfig van de cloudsjablooncode.

Voorbeelden van vRealize Automation-cloudsjablooncodes op basis van Windows en Linux worden hieronder weergegeven. Houd er rekening mee dat cloudconfiguratiescripts kunnen worden opgegeven met een van de volgende methoden:
  • vRealize Automation-image die wordt aangeroepen vanuit de cloudsjablooncode
  • Cloudconfiguratiescript dat wordt aangeroepen vanuit de cloudsjablooncode
  • Inhoud van het cloudconfiguratiescript die direct aan de cloudsjablooncode wordt toegevoegd

Opmerking: wanneer u een cloudsjabloon implementeert die Salt-minions bevat en de implementatie niet zichtbaar is in Cloud Assembly, kunt u de implementatie weergeven met behulp van de Service Broker-service.

Voorbeeld: Linux-gebaseerde implementatie en cloud-init

Een voorbeeld van een configuratie van een cloudsjabloon voor het implementeren van minions voor een Linux-gebaseerde machine die cloud-init ondersteunt, wordt hieronder weergegeven:
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

Voorbeeld: Windows-gebaseerde implementatie en Cloudbase-init

Een voorbeeld van een configuratie van een cloudsjabloon voor het implementeren van minions voor een Windows-gebaseerde machine die Cloudbase-init ondersteunt, wordt hieronder weergegeven:
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

Powershell-commando's configureren

U configureert PowerShell-commando's in de sectie cloudConfig van uw cloudsjablonen.

Voordat u PowerShell-commando's inschakelt, moet u het Salt-minionpakket van de Salt Repo-website downloaden. Voer vervolgens de volgende stappen uit:
  1. Installeer de Salt-minionservice in de Windows VM.
  2. Werk de waarde voor de hostnaam van de Salt-master bij in de configuratie van de minion.
  3. Werk de waarde voor de vingerafdruk van de Salt-master bij in de minionconfiguratie.
  4. Stel de minion_id in op de VM-resourcenaam die wordt gebruikt voor het accepteren van de minion op de Salt-master.
  5. Start de minion opnieuw.

Meer informatie over het implementeren van Salt-minions

Voor alternatieve gebruiksmethoden voor geïntegreerde SaltStack Config om Salt-minions te implementeren op basis van een vRealize Automation-cloudsjabloon, raadpleegt u Cloud Assembly en ABX-geheimen (en hoe u deze kunt gebruiken voor het installeren van vRealize SaltStack Minion Agents).

Zie Uw vRealize Automation Cloud Assembly-implementaties ontwerpen voor gerelateerde informatie over het definiëren en implementeren van Cloud Assembly-sjablonen in het algemeen, in het bijzonder als u vertrouwd bent met SaltStack maar nog niet bekend bent met vRealize Automation.