Projet

Général

Profil

MigrationAD » Historique » Version 11

« Précédent - Version 11/37 (diff) - Suivant » - Version actuelle
Joël Cuissinat, 15/06/2018 14:27


Migration de ScribeNT vers ScribeAD

Scénarios issus de la réunion du 05/06/2018 (#24138)

Situation initiale : ScribeNT + postes intégrés + client Scribe
Cible : ScribeAD + postes intégrés + client Salt

Cinématique 1

  • transformer le module Scribe en ScribeAD
  • déployer les minions via le client Scribe (sans le domaine NT)
  • nettoyer les postes et les intégrer au domaine AD

Cinématique 2 (plan B)

  • déployer les minions via le client Scribe
  • transformer le module Scribe en ScribeAD
  • nettoyer les postes et les intégrer au domaine AD

Points d'attention

  • Conflit entre Salt-master et EAD3
  • Gestion du déployement ou de l'acceptation des clés des minions
  • Action instantanée et/ou différée (au démarrage des postes)
  • Points d'étape : afficher le nombre/la liste des postes et leur état de migration
  • vérifier/forcer la configuration DNS des clients avant intégration
  • prévoir de fournir un script/programme pour les futures installations

Déploiement du Minion à l'aide du client Scribe

L'utilisation du client Scribe permet d'envisager plusieurs pistes différentes.

La problématique de la diffusion/du téléchargement de l'installeur est au moins aussi complexe que celle de son exécution.

Exécution de l'installeur à l'aide du client Scribe

Du fait de l'utilisation du partage "netlogon", le test suivant correspondrait plutôt au plan B...

root@scribe:~# wget https://repo.saltstack.com/windows/Salt-Minion-2018.3.0-Py3-AMD64-Setup.exe -O /home/netlogon/minion.exe
root@scribe:~# /usr/share/eole/controlevnc/cliscribe.py -e '\\192.168.0.26\netlogon\minion.exe /S /master=192.168.0.26' 192.168.0.183

=> accès refusé car le partage n'est pas accessible dans l'environnement Système !

Après copie manuelle du programme d'installation dans C:\, la commande suivante permet bien d'installer le Minion :

/usr/share/eole/controlevnc/cliscribe.py -e 'C:\minion.exe /S /master=192.168.0.26' 192.168.0.183

Utilisation du serveur web du client Scribe

Il est possible d'utiliser le serveur web du client Scribe qui publie les fichiers présents dans le dossier /home/client_scribe en HTTP sur le port 8790.

wget https://repo.saltstack.com/windows/Salt-Minion-2018.3.0-Py3-AMD64-Setup.exe -O /home/client_scribe

Dans ce test, on télécharge puis exécute le script PS install-minion.ps1 qui va lui même télécharger et exécuter l'installeur du minion :

cat /home/client_scribe/install-minion.ps1
Set-ExecutionPolicy Bypass -Scope Process -Force
Set-Location $env:TEMP
Set-PSDebug -Trace 1
((new-object net.webclient).DownloadFile('http://scribe:8790/minion.exe', 'minion.exe'))
Get-ChildeItem $env:TEMP
minion.exe /S /master=192.168.0.26

Commande à exécuter sous Windows :

%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('http://scribe:8790/install-minion.ps1'))

Commande à exécuter sur le Scribe :

cmd="c:\windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command \"iex ((New-Object System.Net.WebClient).DownloadString('http://scribe:8790/install-minion.ps1'))\"" 
/usr/share/eole/controlevnc/cliscribe.py -e "$cmd"  192.168.0.183

Suppression du script PowerShell intermédiaire en le remplaçant par une chaîne en base64

Il est possible d'envoyer la ou les commandes PS encodées en base64 à l'aide de l'option -EncodedCommand

ATTENTION : Il faut au préalable que le fichier créé sous Linux soit dans un "bon" format !

iconv -f UTF-8 -t UTF-16LE <install-minion.ps1 >install-minion.ps2

Autres pistes

Installeur du client Scribe

Créer une nouvelle version du client Scribe embarquant l'installeur Salt Minion et mettre à jour le numéro de version officielle.
La nouvelle version du client (et donc salt) sera automatiquement installée grâce au service de maj du client.

psexec

psexec pourrait être utilisé pour exécuter l'installation du minion à distance depuis une station.