Une fois que vous avez installé et intégré le service SaltStack Config, vous devez également installer, exécuter et enregistrer le service de minion Salt sur tous les nœuds que vous prévoyez de gérer à l'aide de SaltStack Config. Vous pouvez déployer le service de minion Salt sur vos nœuds en utilisant des modèles de cloud vRealize Automation ou en installant le service via Secure Shell (SSH).
Salt et sa relation à SaltStack Config
SaltStack Config s'exécute sur Salt, une infrastructure d'exécution à distance open source basée sur Python utilisée pour :
- Gestion de la configuration
- Automatisation
- Provisionnement
- Orchestration
Salt est la technologie qui sous-tend les fonctionnalités essentielles de SaltStack Config. SaltStack Config améliore et étend Salt, en fournissant des fonctionnalités supplémentaires qui améliorent la facilité d'utilisation.
Salt utilise le modèle contrôleur-client dans lequel un contrôleur émettra des commandes sur un client et le client exécutera la commande. Dans l'écosystème Salt, le contrôleur est un serveur qui exécute le service de master Salt. Il exécute des commandes sur un ou plusieurs minions Salt, qui sont des nœuds qui exécutent le service de minion Salt et qui sont enregistrés dans ce master particulier.
Salt peut également être décrit comme un modèle éditeur-abonné. Le master publie les tâches à exécuter et les minions s'y abonnent. Lorsqu'une tâche spécifique s'applique à ce minion, il l'exécute. Lorsqu'un minion termine l'exécution d'une tâche, il renvoie les données de la tâche au master.
Les minions sont des nœuds qui exécutent le service salt-minion. Le service écoute les commandes d'un master Salt et effectue les tâches demandées. Vous pouvez déployer des minions à partir de modèles de cloud vRealize Automation.
Avant de pouvoir commencer à utiliser SaltStack Config pour la gestion de la configuration, vous devez d'abord installer le service de minion Salt sur tous les nœuds que vous souhaitez gérer. Vous devez également enregistrer les minions en acceptant leurs clés et en les envoyant à SaltStack Config.
Avant de commencer
- Installez et configurez SaltStack Config, et intégrez-le à vRealize Automation.
- Les nœuds gérés par SaltStack Config doivent être en mesure d'accéder au master Salt et doivent résider sur le même réseau que le point d'intégration de SaltStack Config et le master Salt.
- Les machines vSphere qui sont déployées sur un réseau privé doivent pouvoir établir une connexion avec l'intégration de SaltStack Config et le master Salt.
Installation du service de minion Salt via SSH
Le processus d'installation du service de minion Salt à l'aide de SSH dépend du système d'exploitation en cours d'exécution sur ces nœuds.
- Pour plus d'informations sur l'installation du service de minion Salt sur RedHat Linux ou CentOS, reportez-vous à la section Installer Salt (préinstallation).
- Pour les autres systèmes d'exploitation, consultez http://repo.saltstack.com/.
- Configurez chaque minion pour communiquer avec le master en créant un fichier
master.conf
dans le répertoire/etc/salt/minion.d
. Dans ce fichier, fournissez l'adresse IP du master. Par exemple :master: 192.0.2.1
- Démarrez le service de minion :
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- Répétez les étapes précédentes pour tous les autres nœuds.
Après avoir configuré ces fichiers de minion pour qu'ils pointent vers le master Salt, acceptez les clés de minion dans le service SaltStack Config dans l'espace de travail de clés de minion.
Installation du service de minion Salt à l'aide de modèles de cloud vRealize Automation
Pour déployer le service de minion Salt à l'aide de modèles de cloud, vous devez avoir accès à cloud-init (Linux) ou Cloudbase-init (Windows), et savoir les utiliser. Pour ajouter des minions Salt au master Salt configuré pour l'intégration de vRealize Automation SaltStack Config, la machine virtuelle de votre modèle de cloud doit prendre en charge cloud-init (Linux) ou Cloudbase-init (Windows).
Les sections suivantes expliquent comment déployer le service de minion Salt à l'aide de modèles de cloud.
Groupe de propriétés SaltStackConfiguration
Le processus d'installation et de configuration du service SaltStack Config dans vRealize Suite Lifecycle Manager crée un groupe de propriétés vRealize Automation nommé SaltStackConfiguration. Vous utilisez les valeurs du groupe de propriétés SaltStackConfiguration lors de la configuration de l'intégration de SaltStack Config dans un modèle de cloud ou déploiement de vRealize Automation. Vous les utilisez également dans la configuration basée sur cloud-init ou cloudbase-init dans un modèle vRealize Automation (précédemment appelé Blueprints) pour installer des minions. Les deux propriétés de SaltStackConfiguration sont masterAddress, ce qui correspond au paramètre hostname sur le point d'intégration de SaltStack Config, et masterFingerprint. Un exemple de groupe de propriétés SaltStackConfiguration est présenté ci-dessous.
Ajouter des minions au master Salt configuré pour vRealize Automation
Lorsque SaltStack Config est installé, une adresse IP de master Salt est spécifiée. Cette adresse IP de master est utilisée comme propriété masterAddress lorsque vous déployez des minions à partir d'un modèle de cloud vRealize Automation.
Vous installez et déployez des minions à l'aide de scripts cloud-init ou cloudbase-init dans un modèle de cloud ou un déploiement de vRealize Automation. Vous pouvez également utiliser un mappage d'image qui représente un script de configuration de cloud qui utilise l'un de ces formats. Pour ajouter des minions Salt au master Salt associé à une intégration de vRealize Automation SaltStack Config, la machine cible doit prendre en charge cloud-init (Linux) ou cloudbase-init (Windows). Le script de configuration cloud de vRealize Automation prend en charge les deux formats.
Configurez une ressource de machine dans le modèle de cloud avec une valeur minionId et une valeur cloudConfig, et reportez-vous au groupe de propriétés SaltStackConfiguration. Le groupe de propriétés SaltStackConfiguration est créé lors de l'installation et de la configuration du service SaltStack Config dans vRealize Suite Lifecycle Manager. Il contient les propriétés masterAddress et masterFingerprint.
La valeur minionId doit correspondre à la valeur spécifiée pour /salt/minion_id
de la machine dans la section cloudConfig
du code du modèle de cloud.
- Image de vRealize Automation qui est appelée depuis le code du modèle de cloud
- Script de configuration de cloud appelé à partir du code de modèle de cloud
- Contenu du script de configuration cloud ajouté directement au code du modèle de cloud
Remarque : lorsque vous déployez un modèle de cloud qui contient des minions Salt, si le déploiement n'est pas visible dans vRealize Automation Cloud Assembly, vous pouvez afficher le déploiement en utilisant le service vRealize Automation Service Broker.
Exemple : déploiement basé sur Linux et cloud-init
inputs: {} resources: LinuxVM-Minion: type: Cloud.vSphere.Machine properties: name: salt-minion-vra cpuCount: 1 totalMemoryMB: 2048 imageRef: 'https://build-artifactory.eng.vmware.com/symphony-infra-local/ubuntu/releases/xenial/release-20190605/ubuntu-16.04-server-cloudimg-amd64.ova' minionId: '${resource.LinuxVM-Minion.resourceName}' cloudConfig: | #cloud-config runcmd: - sudo echo '${resource.LinuxVM-Minion.resourceName}' > /etc/salt/minion_id - curl -L https://bootstrap.saltstack.com -o install_salt.sh - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress} salt_minion: pkg_name: 'salt-minion' service_name: 'salt-minion' config_dir: '/etc/salt' conf: master: ${propgroup.SaltStackConfiguration.masterAddress} master_finger: ${propgroup.SaltStackConfiguration.masterFingerPrint} remoteAccess: authentication: publicPrivateKey sshKey: ssh-rsa your-public-key networks: - network: '${resource.vSphere_Network.id}' vSphere_Network: type: Cloud.Network properties: networkType: existing
Exemple : déploiement basé sur Windows et 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
Configuration des commandes Powershell
cloudConfig
en procédant comme suit.
- Téléchargez le module de minion Salt sur le site Web Salt Repo.
- Installez le service minion Salt dans la machine virtuelle Windows.
- Mettez à jour la valeur du nom d'hôte du master Salt dans la configuration du minion.
- Mettez à jour la valeur d'empreinte digitale du master Salt dans la configuration du minion.
- Définissez
minion_id
sur le nom de la ressource de machine virtuelle qui sera utilisé pour accepter le minion sur le master Salt. - Redémarrez le mini-on.
En savoir plus sur le déploiement de minions Salt
Pour découvrir d'autres méthodes d'utilisation intégrées de SaltStack Config pour déployer des minions Salt à partir d'un modèle de cloud vRealize Automation, reportez-vous à la section Cloud Assembly et secrets ABX (et comment les utiliser pour l'installation d'agents vRealize SaltStack Minion).
Pour plus d'informations sur la définition et le déploiement de modèles de vRealize Automation Cloud Assembly en général, notamment si vous connaissez bien SaltStack, mais n'avez aucune expérience avec vRealize Automation, consultez Conception de vos déploiements de vRealize Automation Cloud Assembly.