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.
    Note : Le xxxx dans le nom de fichier (par exemple, salt-xxxx-readhat-8-x86_64-amd64.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. Installez les bibliothèques 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.
  4. Assurez-vous que le fichier C:\Windows\System32\drivers\etc\hosts de votre machine Windows est configuré avec l'adresse IP et le nom d'hôte ou nom de domaine complet du master Salt.
  5. 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
  6. Assurez-vous que le nom de domaine complet est configuré pour le master Salt en exécutant la commande ping [FQDN].
  7. Entrez cet appel d'API avec les informations d'identification correctes pour votre environnement :
    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_minio_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.