Voici des exemples de commandes Salt exécutées depuis un module Scribe pour agir ou configurer un parc de postes Windows/Linux

Comment obtenir des informations sur les postes ?

salt '*' grains.get os
PC-880318.dompedago.etb1.lan:
    Windows
PC-880321.dompedago.etb1.lan:
    Windows
PC-880319.dompedago.etb1.lan:
    Windows
PC-880320.dompedago.etb1.lan:
    Windows

Il est possible de récupérer plusieurs informations en une fois

salt '*' grains.item os os_family osfinger saltversion
pc-892428:
    ----------
    os:
        Ubuntu
    os_family:
        Debian
    osfinger:
        Ubuntu-20.04
    saltversion:
        3004.2
PC-892410.dompedago.etb1.lan:
    ----------
    os:
        Windows
    os_family:
        Windows
    osfinger:
        Windows-10
    saltversion:
        3004.1
PC-892409.dompedago.etb1.lan:
    ----------
    os:
        Windows
    os_family:
        Windows
    osfinger:
        Windows-10
    saltversion:
        3004.1
PC-892408.dompedago.etb1.lan:
    ----------
    os:
        Windows
    os_family:
        Windows
    osfinger:
        Windows-10
    saltversion:
        3004.1

Comment vérifier la jonction des pc au domaine du Scribe ?

salt '*' state.apply ad.join

Comment appliquer la configuration Veyon sur les postes ?

salt '*' state.apply eole-workstation.veyon

Comment exécuter la commande ‘whoami’ sur chaque PC ?

Sur les postes Windows, en étant connecté avec le compte admin du domaine (suppose que les postes soient intégrés au domaine)

salt -G 'os_family:Windows' cmd.powershell runas=admin password=Eole12345! 'whoami'

Vérification intégration au domaine par un appel powershell

salt -G 'os:Windows' cmd.powershell runas=admin password=Eole12345! 'wmic ComputerSystem get PartOfDomain,Domain 2>&1'
PC-880318.dompedago.etb1.lan:
    - Domain              PartOfDomain  
    - dompedago.etb1.lan  TRUE          
...

Comment vérifier la valeur de la configuration config_dir du client Salt ?

salt-run survey.hash '*' config.get config_dir
  ----------
  pool:
      - PC-892408.dompedago.etb1.lan
      - PC-892409.dompedago.etb1.lan
      - PC-892410.dompedago.etb1.lan
  result:
      C:\ProgramData\Salt Project\Salt\conf

  ----------
  pool:
      - pc-892428
  result:
      /etc/salt

Comment re-générer la clef d’un client Salt ?

Sur le poste client.

Attention : le lien client/serveur va être cassé. il faudra ré-accepter la clef sur le Scribe

 salt-call --local saltutils.regen_key

Comment demander un rapport de version du client Salt ?

salt '*' test.versions

Comment ajouter un rôle à un ou plusieurs postes ?

Si l’on veut ajouter une étiquette de rôle ‘techno/dessin’ sur une salle dont les machines ont un nom commençant par TECH0

salt 'TECH0*' grains.append roles techno/dessin

Comment interroger la liste des logiciels pouvant être installé par Chocolatey ? (sur chaque poste!)

Pré-requis: chocolatey doit être installé sur les postes.

salt -G 'os:Windows' cmd.powershell 'choco list'

Comment installer Keypass avec Chocolatey sur tous les postes en une seule commande ?

Pré-requis: chocolatey doit être installé sur les postes.

salt -G 'os:Windows' cmd.powershell 'choco install keepass-classic -y --acceptlicense --no-progress'

Comment vérifier la présence Winget sur tous les postes ?

salt -G 'os:Windows' cmd.powershell runas=admin password=Eole12345! 'winget -v'

Comment réinitialiser les sources Winget sur tous les postes ?

salt -t 500 --state-verbose=true -G 'os:Windows' cmd.powershell runas=admin password=Eole12345! 'winget source reset'
PC-880318.dompedago.etb1.lan:
    ----------
PC-880321.dompedago.etb1.lan:
    - Les sources suivantes seront réinitialisées si l’option --force est proposée :
    - Nom    Argument
    - -----------------------------------------
    - winget https://winget.azureedge.net/cache
PC-880320.dompedago.etb1.lan:
    - Les sources suivantes seront réinitialisées si l’option --force est proposée :
    - Nom     Argument
    - -----------------------------------------------------
    - msstore https://storeedgefd.dsx.mp.microsoft.com/v9.0
    - winget  https://winget.azureedge.net/cache

Comment interroger la liste des logiciels pouvant être installé par Winget sur un poste ?

Pré-requis: winget doit être installé sur les postes.

salt -t 10 --state-verbose=true "PC-12345" cmd.powershell 'winget list'

Comment installer FileZilla avec winget sur tous les postes ?

salt -t 500 --state-verbose=true -G 'os:Windows' cmd.powershell runas=admin password=Eole12345! 'winget install --id TimKosse.FileZilla.Server -e'
PC-880323.dompedago.etb1.lan:
    - Trouvé FileZilla Server [TimKosse.FileZilla.Server] Version 1.4.1
...
    - Downloading https://download.filezilla-project.org/server/FileZilla_Server_1.4.1_win64-setup.exe
...
    - Installé correctement

Comment installer LibreOffice avec Winget sur tous les postes ?

Pré-requis: winget doit être installé sur les postes.

salt -t 60 --state-verbose=true -G 'os:Windows' cmd.powershell 'winget install TheDocumentFoundation.LibreOffice'