L'objectif de ce cas d'utilisation est d'installer le service de minion Salt sur un minion par programmation en connectant une machine virtuelle Windows à votre environnement SaltStack Config.
Conditions préalables
Avant de pouvoir déployer un minion à l'aide de l'API dans un environnement Windows :
- Vous devez disposer d'un environnement SaltStack Config avec RaaS déployé.
- Vous devez disposer d'un master Salt et d'un minion Salt installés.
- Vous devez disposer d'une machine virtuelle Windows déployée.
Procédure
- Vérifiez que le dossier etc/salt/cloud.deploy.d sur le master Salt contient ces fichiers.
Si vous ne voyez pas les fichiers, contactez le support.
Note : Le xxxx dans le nom de fichier, par exemple,
salt-xxxx-windows--x86.tar.gz
, doit correspondre à la version du master Salt. Pour vérifier la version du master Salt, exécutez la commande
salt-master -V sur le master Salt.
- Dans le terminal du master Salt, installez les bibliothèques suivantes en exécutant les commandes
pip3 install pypsexec smbprotocol
et pip3 install impacket --ignore-installed
.
- Pour identifier le nom de domaine complet du master Salt, exécutez la commande
salt saltmaster grains.get fqdn
dans le terminal du master Salt.
- Sur votre machine Windows, assurez-vous que le fichier C:\Windows\System32\drivers\etc\hosts est configuré avec l'adresse IP et le nom de domaine complet du master Salt.
- Si vous déployez des minions sur une machine Windows dans Azure, ouvrez Powershell et exécutez ces commandes pour ouvrir les ports requis :
dest. |
Commandes |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- Si vous ne déployez pas de minions sur une machine Windows dans Azure, ouvrez PowerShell et exécutez ces commandes pour ouvrir les ports requis :
dest. |
Commandes |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Set-Item (dir wsman:\localhost\Listener*\Port - Recurse).pspath 445 -Force Restart-Service winrm |
4505-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- Assurez-vous que le nom de domaine complet est configuré pour le master Salt en exécutant la commande ping [FQDN] sur votre machine Windows.
- Effectuez cet appel d'API à l'aide d'un client SSEAPI avec les informations d'identification appropriées pour votre environnement.
Note : Si vous avez intégré
SaltStack Config à
vRealize Automation, le service
vRealize Automation effectue cet appel d'API lorsque vous déployez des minions à l'aide d'un modèle de cloud.
from sseapiclient import APIClient
client = APIClient('https://<master-ip>', '<ssc-username>', '<sscpassword>', ssl_validate_cert=False)
client.api.minions.deploy_minion(
master_id = '<master-id>',
host_name_ip = '<prospective minion’s ip>',
os = ‘<prospective minion’s os>’,
minion_id = '<desired-minion-name-for-prospective-minion>',
username = '<ssh-username-for-prospective-minion>',
password = '<ssh-password-for-prospective-minion>',
)
La fonction
deploy.minion
commence à s'exécuter dans votre environnement
SaltStack Config. Vous pouvez vérifier que la tâche est en cours d'exécution dans l'onglet
Activité de l'interface utilisateur de
SaltStack Config ou en exécutant la commande
python3 suivie par
client.api.minions.get_minion_deployments().
Résultats
Le minion a été déployé et configuré à partir de votre environnement Windows et de l'appel d'API.
Que faire ensuite
Vérifiez que le minion a été déployé avec succès en exécutant une commande
test.ping sur le minion à l'aide de la fenêtre
Exécuter la commande ou en exécutant les commandes
\* test.ping et
\* test.versions dans la fenêtre de commande du master Salt.