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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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
  6. 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
  7. 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.
  8. 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.