Dopo aver installato e integrato il servizio SaltStack Config, è inoltre necessario installare, eseguire e registrare il servizio dei minion Salt in tutti i nodi che si intende gestire utilizzando SaltStack Config. È possibile distribuire il servizio dei minion Salt ai nodi utilizzando i modelli cloud di vRealize Automation o installando il servizio tramite Secure Shell (SSH).
Salt e la sua relazione con SaltStack Config
SaltStack 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 SaltStack Config. SaltStack 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 vRealize Automation.
Prima di iniziare a utilizzare SaltStack 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 SaltStack Config.
Prima di iniziare
- Installare e configurare SaltStack Config e integrarlo con vRealize Automation.
- I nodi gestiti da SaltStack Config devono essere in grado di raggiungere il Salt Master e devono trovarsi nella stessa rete del punto di integrazione di SaltStack 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 SaltStack 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.
- Per informazioni sull'installazione del servizio dei minion Salt in RedHat Linux o CentOS, vedere Dipendenze di SaltStack Config richieste.
- Per gli altri sistemi operativi, vedere http://repo.saltstack.com/.
- 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
- Avviare il servizio dei minion:
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- 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 SaltStack Config nell'area di lavoro Chiavi minion.
Installazione del servizio dei minion Salt tramite i modelli cloud di vRealize 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 SaltStack 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 vRealize Automation
Dopo aver installato SaltStack 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 vRealize Automation.
È possibile installare e distribuire i minion utilizzando gli script cloud-init o Cloudbase-init in una distribuzione o un modello cloud di vRealize 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 vRealize Automation SaltStack Config, la macchina di destinazione deve supportare cloud-init (Linux) o Cloudbase-init (Windows). Gli script di configurazione cloud di vRealize 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 SaltStack Config in vRealize Suite Lifecycle Manager. 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.
- Immagine di vRealize 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 Cloud Assembly, è possibile visualizzare la distribuzione utilizzando il servizio Service Broker.
Esempio - Distribuzione basata su Linux e 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
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.
- Installare il servizio dei minion Salt nella macchina virtuale Windows.
- Aggiornare il valore del nome host di Salt Master nella configurazione del minion.
- Aggiornare il valore dell'impronta digitale di Salt Master nella configurazione del minion.
- Impostare
minion_id
sul nome della risorsa della macchina virtuale che verrà utilizzato per accettare il minion nel Salt Master. - Riavviare il minion.
Ulteriori informazioni sulla distribuzione dei minion Salt
Per i metodi alternativi di utilizzo di SaltStack Config integrato per distribuire minion Salt da un modello cloud di vRealize Automation, vedere Cloud Assembly e segreti ABX (e come utilizzarli per installare gli agenti minion di vRealize SaltStack).
Per informazioni relative alla definizione e alla distribuzione di modelli di Cloud Assembly in generale, specialmente se si ha familiarità con SaltStack ma non con vRealize Automation, vedere Progettazione delle distribuzioni di vRealize Automation Cloud Assembly.