Dopo aver installato e integrato il servizio Automation Config, è inoltre necessario installare, eseguire e registrare il servizio dei minion Salt in tutti i nodi che si intende gestire utilizzando Automation Config. È possibile distribuire il servizio dei minion Salt ai nodi utilizzando i modelli cloud di VMware Aria Automation o installando il servizio tramite Secure Shell (SSH).

Salt e la sua relazione con Automation Config

Automation Config viene eseguito su Salt, un framework di esecuzione remota open source basato su Python utilizzato per:

  • La gestione della configurazione
  • L'automazione
  • Il provisioning
  • L'orchestrazione

Salt è la tecnologia sottostante alle funzionalità di base di Automation Config. Automation Config ottimizza ed estende Salt, fornendo ulteriori caratteristiche e funzionalità che ne migliorano la facilità d'uso.

Salt utilizza il modello controller-client in cui un controller invia comandi a un client e il client li esegue. Nell'ecosistema Salt, il controller è un server che esegue il servizio Salt Master. Invia comandi a uno o più minion Salt, che sono nodi che eseguono il servizio dei minion Salt e sono registrati in tale Master specifico.

Salt può essere concepito anche come un modello editore-sottoscrittore. Il Master pubblica i processi che devono essere eseguiti e i minion sottoscrivono tali processi. Quando un processo specifico si applica a tale minion, quest'ultimo esegue il processo. Quando un minion completa l'esecuzione di un processo, invia i dati di restituzione del processo al Master.

I minion sono nodi che eseguono il servizio salt-minion. Il servizio è in ascolto dei comandi di un Salt Master ed esegue le attività richieste. È possibile distribuire minion dai modelli cloud di VMware Aria Automation.

Prima di iniziare a utilizzare Automation Config per la gestione della configurazione, è innanzitutto necessario installare il servizio dei minion Salt in tutti i nodi che si desidera gestire. È inoltre necessario registrare i minion inviando e accettando le relative chiavi per Automation Config.

Prima di iniziare

  • Installare e configurare Automation Config e integrarlo con VMware Aria Automation.
  • I nodi gestiti da Automation Config devono essere in grado di raggiungere il Salt Master e devono trovarsi nella stessa rete del punto di integrazione di Automation Config e del Salt Master.
  • Le macchine vSphere distribuite in una rete privata devono essere in grado di avviare una connessione con l'integrazione di Automation Config e con Salt Master.

Installazione del servizio dei minion Salt tramite SSH

Il processo per l'installazione del servizio dei minion Salt tramite SSH dipende dal sistema operativo in esecuzione in tali nodi.

Dopo l'installazione del servizio dei minion Salt:
  1. Configurare ciascun minion affinché comunichi con il Master creando un file master.conf nella directory /etc/salt/minion.d. In questo file, specificare l'indirizzo IP del Master. Ad esempio: master: 192.0.2.1
  2. Avviare il servizio dei minion:

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Ripetere i passaggi precedenti per tutti i nodi rimanenti.

Dopo aver configurato i file dei minion in modo che puntino al Salt Master, accettare le chiavi dei minion nel servizio Automation Config nell'area di lavoro Chiavi minion.

Installazione del servizio dei minion Salt tramite i modelli cloud di VMware Aria Automation

Per distribuire il servizio dei minion Salt utilizzando i modelli cloud, è necessario poter accedere a cloud-init (Linux) o Cloudbase-init (Windows) ed essere esperti nel loro utilizzo. Per aggiungere minion Salt al Salt Master configurato per l'integrazione di Automation Config, la macchina virtuale nel modello cloud deve supportare cloud-init (Linux) o Cloudbase-init (Windows).

Nelle sezioni seguenti viene spiegato come distribuire il servizio dei minion Salt utilizzando i modelli cloud.

Aggiunta di minion al Salt Master configurato per VMware Aria Automation

Dopo aver installato Automation Config, viene specificato un indirizzo IP del Salt Master. Tale indirizzo IP master viene utilizzato come proprietà masterAddress quando i minion vengono distribuiti da un modello cloud di VMware Aria Automation.

È possibile installare e distribuire i minion utilizzando gli script cloud-init o Cloudbase-init in una distribuzione o un modello cloud di VMware Aria Automation. È inoltre possibile utilizzare una mappatura delle immagini che rappresenta uno script di configurazione cloud che utilizza uno di questi formati. Per aggiungere minion Salt al Salt Master associato a un'integrazione di VMware Aria Automation Automation Config, la macchina di destinazione deve supportare cloud-init (Linux) o Cloudbase-init (Windows). Gli script di configurazione cloud di VMware Aria Automation supportano entrambi i formati.

È possibile configurare una risorsa macchina nel modello cloud con un valore minionId e un valore cloudConfig e fare riferimento al gruppo di proprietà SaltStackConfiguration. Il gruppo di proprietà SaltStackConfiguration viene creato durante l'installazione e la configurazione del servizio Automation Config in VMware Aria Suite Lifecycle. Contiene le proprietà masterAddress e masterFingerprint.

Il valore di minionId deve corrispondere al valore specificato per /salt/minion_id della macchina nella sezione cloudConfig del codice del modello cloud.

Di seguito sono mostrati esempi di codice di modelli cloud di VMware Aria Automation basati su Windows e Linux. Si noti che gli script di configurazione cloud possono essere specificati utilizzando uno dei seguenti metodi:
  • Immagine di VMware Aria Automation richiamata dal codice del modello cloud
  • Script di configurazione cloud richiamato dal codice del modello cloud
  • Contenuti dello script di configurazione cloud aggiunti direttamente al codice del modello cloud

Nota: quando si distribuisce un modello cloud che contiene minion, se la distribuzione non è visibile in Automation Assembler, è possibile visualizzare la distribuzione utilizzando il servizio Automation Service Broker.

Esempio - Distribuzione basata su Linux e cloud-init

Di seguito viene illustrato un esempio di configurazione del modello cloud per la distribuzione di minion per una macchina basata su Linux che supporta cloud-init:
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}

Esempio - Distribuzione basata su Windows e Cloudbase-init

Di seguito viene illustrato un esempio di configurazione del modello cloud per la distribuzione di minion per una macchina basata su Windows che supporta Cloudbase-init:
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

Come configurare i comandi PowerShell

È possibile configurare i comandi PowerShell nella sezione cloudConfig dei modelli cloud.

Prima di abilitare i comandi di PowerShell, scaricare il pacchetto dei minion Salt dal sito Web del repository di Salt. Eseguire quindi i passaggi seguenti:
  1. Installare il servizio dei minion Salt nella macchina virtuale Windows.
  2. Aggiornare il valore del nome host di Salt Master nella configurazione del minion.
  3. Aggiornare il valore dell'impronta digitale di Salt Master nella configurazione del minion.
  4. Impostare minion_id sul nome della risorsa della macchina virtuale che verrà utilizzato per accettare il minion nel Salt Master.
  5. Riavviare il minion.

Ulteriori informazioni sulla distribuzione dei minion Salt

Per i metodi alternativi di utilizzo di Automation Config integrato per distribuire minion Salt da un modello cloud di VMware Aria Automation, vedere Assembler e segreti ABX (e come utilizzarli per installare gli agenti minion di Automation Config).

Per informazioni relative alla definizione e alla distribuzione di modelli di Automation Assembler in generale, specialmente se si ha familiarità con Config ma non con Aria Automation, vedere Progettazione delle distribuzioni di Assembler.