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 Automation 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 Automation 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.
    Liste des fichiers requis dans le répertoire cloud.deploy.d sur un master Salt

    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. Si votre environnement est isolé, procédez comme suit :
    1. Ouvrez le fichier de configuration RaaS dans /etc/raas/raas.
    2. Ajoutez ces lignes au fichier de configuration :
      minion_deployment:
        airgap_install: true
    3. Redémarrez le service RaaS à l'aide de la commande service raas restart :
    Note : Si vous utilisez une machine virtuelle Linux durcie, dans certaines situations, les scripts ne peuvent pas être exécutés à partir de la commande /tmp sur la machine virtuelle.
    • Si vous utilisez Automation Assembler 8.10.2 ou version ultérieure, ajoutez la propriété additionalAuthParams à la ressource Automation Config dans le modèle de cloud. Pour plus d'informations, reportez-vous à la section Ajouter la ressource Automation Config au modèle de cloud.
      additionalAuthParams:
        profile:
          tmp_dir: /var/cache/salt
    • Si vous utilisez Automation Assembler 8.10.1 ou version antérieure : modifiez le fichier /etc/salt/cloud.providers.d/ssc_saltify_provider.conf avec
      ssc_saltify_provider:
        driver: saltify
        tmp_dir: /var/cache/salt
      Si ce fichier de configuration n'existe pas, créez-le et ajoutez le paramètre ci-dessus.
  3. 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.
    Note : Cette étape n'est pas requise lors de l'utilisation de LCM pour installer le dispositif Automation Config qui inclut le master Salt. Toutefois, cette étape est nécessaire lors de l'installation manuelle du master Salt.
  4. 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.
  5. 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.
  6. Ouvrez PowerShell sur la machine Windows et exécutez la commande suivante pour ouvrir les ports requis :
    dest. Commandes
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  7. Dans le terminal du master Salt, utilisez cette commande pour ouvrir les ports 4505 et 4506 sur le master Salt:
    dest. Commandes
    4505-4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506

    Pour plus d'informations sur le modèle de communication Salt, reportez-vous à la section Présentation de Automation Config.

  8. 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.
    Résultats de l'exécution de la commande ping FQDN sur une machine Windows
  9. 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é Automation Config à VMware Aria Automation, le service VMware Aria 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 Automation Config. Vous pouvez vérifier que la tâche est en cours d'exécution dans l'onglet Activité de l'interface utilisateur de Automation 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.