ClientSalt » Historique » Version 15
« Précédent -
Version 15/34
(diff) -
Suivant » -
Version actuelle
Joël Cuissinat, 04/05/2018 12:08
Utilisation de Salt pour remplacer le client Scribe¶
Mise en place sur le module¶
Les paquets nécessaires sont déjà en place sur un module Seth ou un module Scribe car ils sont nécessaires à l'EAD3.
Dans le cadre de ScribeAD, on pourrait envisager d'installer le paquet salt-master dans le conteneur addc.
Le service salt-master doit être activé (même si l'EAD3 est désactivé !) et les minions (clients) doivent pouvoir accéder aux ports 4405 et 4406 du master.
L'extrait de dictionnaire Creole suivant force l'activation du service (utilisation d'une balise conteneur pour contourner #10956) et ouvre l'accès eole-firewall :
<containers> <container name='fichier'> <service servicelist='websockify'>salt-master</service> <service_access service='salt-master'> <port>4505</port> <port>4506</port> </service_access> </container> </containers>
Mise en place sur les clients¶
Pour les premières maquettes, nous installons manuellement la dernière version de Salt-Minion à partir de l'exécutable officiel (Python3 AMD64) : https://docs.saltstack.com/en/latest/topics/installation/windows.html
À l'étape Minion Settings :- sélectionner Default Config
- renseigner Master IP or Hostname avec l'IP du master (exemple : 10.1.3.5 pour etb1.scribe)
- laisser hostname dans Minion Name: (c'est un mot clé, "hostname" ne sera pas renseigné dans la configuration et Minion utilisera "socket.getfqdn()" pour savoir quel nom renvoyer au Master)
NB : Le fichier de configuration du Minion est disponible dans C:\salt\conf\minion
Enregistrement du minion¶
- Le Minion apparaît dans la liste des clés à accepter :
root@scribe:~# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: PC-124784.ac-test.fr Rejected Keys:
- Accepter la clé :
root@scribe:~# salt-key -y -a PC-124784.ac-test.fr The following keys are going to be accepted: Unaccepted Keys: PC-124784.ac-test.fr Key for minion PC-124784.ac-test.fr accepted.
- Supprimer la clé :
root@scribe:~# salt-key -d PC-124784.ac-test.fr
- Accepter toutes les clés :
root@scribe:~# salt-key -A
Commandes basiques¶
Test du Minion¶
root@scribe:~# salt PC-124784.ac-test.fr test.ping PC-124784.ac-test.fr: True
Renommage du PC¶
root@scribe:~# salt PC-124784.ac-test.fr system.set_computer_name PC-CDI1 PC-124784.ac-test.fr: ---------- Computer Name: ---------- Current: PC-125292 Pending: PC-CDI1
Le renommage ne sera effectif qu'après redémarrage du poste client.
Gestion des clients Microsoft¶
Documentation¶
- Module win_system : https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.win_system.html
- Module win_dns_client : https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.win_dns_client.html
Renommage du PC¶
root@scribe:~# salt PC-124784.ac-test.fr system.set_computer_name PC-CDI1 PC-124784.ac-test.fr: ---------- Computer Name: ---------- Current: PC-125292 Pending: PC-CDI1
Le renommage ne sera effectif qu'après redémarrage du poste client.
Évidemment le renommage du poste ne modifie pas le nom du Minion !
Intégration au domaine¶
salt PC-124784.ac-test.fr system.join_domain domain='etb1.lan' username='admin' password='eole' account_exists=False restart=True
Si on relance la commande une seconde fois, on obtient le message suivant :
PC-124784.ac-test.fr: Already joined to etb1.lan
Changer le DNS¶
- Récupérer le nom de l'interface réseau du client, 192.168.0.5=<ip salt master> => on récupère le nom de la bonne interface s'il y en a plusieurs
salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5
root@dc1:~# salt 'PC-124784.ac-test.fr' network.get_route 192.168.0.5 PC-124784.ac-test.fr: ---------- destination: 192.168.0.5 gateway: 0.0.0.0 interface: MonInterface source: 192.168.0.184
salt 'PC-124784.ac-test.fr' ip.set_static_dns MonInterface 192.168.0.5
Joindre Domaine¶
salt 'PC-12511.ac-test.fr' system.join_domain domain='ac-test.fr' username='admin' password='Eole;2121' account_exists=False restart=True
Redémarrage du PC¶
- Immédiat
salt PC-124784.ac-test.fr system.reboot 0
salt 'PC-12511.ac-test.fr' cmd.run 'shutdown /r /t 0 /f'
- 5 secondes
salt 'FDGFDG.ac-test.fr' system.reboot 5 True
Par défaut, le timeout s'exprime en minutes. Il est possible de l'exprimer en seconde en passant le second paramètre à True :)
Autre¶
salt 'PC-12511.ac-test.fr' cmd.run notepad.exe
salt '*ac-test.fr' sys.list_functions salt '*ac-test.fr' sys.list_state_functions
salt 'FDGFDG.ac-test.fr' win_dns_client.get_dns_config salt 'FDGFDG.ac-test.fr' win_dns_client.add_dns 8.8.8.8 "Ethernet" 1 salt 'FDGFDG.ac-test.fr' cmd.run "netsh interface ip show config" salt 'FDGFDG.ac-test.fr' cmd.run "CHCP 1252 & netsh interface ip show config"
salt -G 'os_family:Windows' network.interfaces salt 'PC-124784.ac-test.fr' network.interfaces salt 'PC-124784.ac-test.fr' network.interfaces_names
Commandes non fonctionnelles¶
Les commandes suivantes ne fonctionne pas :
salt 'PC-124784.ac-test.fr' ip.get_all_interfaces
salt -G 'os_family:Windows' ip.get_all_interfaces