Last modified by Equipe Opération on 14 - 01 - 2019

<
From version < 1.2 >
edited by Equipe Opération
on 24 - 09 - 2018
To version < 2.1 >
edited by Equipe Opération
on 25 - 09 - 2018
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,0 +1,254 @@
1 +{{box cssClass="floatinginfobox" title="**Table des matières**" width="50%"}}
2 +{{toc start=1 depth=6 numbered=true scope=page/}}
3 +{{/box}}
4 +
5 += Synthèse du besoin =
6 +
7 +Le besoin est de reconstruire une infrastructure fournissant les services de bureau XenDesktop ou XenApp Citrix dans Flexible Engine.
8 +
9 +Les mécanismes de provisionning standard PVS et MCS ne peuvent fonctionner dans un Cloud public comme Flexible Engine.
10 +
11 +Comment donc fournir le service de ferme Citrix  ?
12 +
13 +== Cas de MCS ==
14 +
15 +MCS ne peut fonctionner car les API de Flexible Engine pour la fourniture de machine ne sont pas prises en charge par les applications Citrix. MCS requérant d'effectuer lui même le provisionning d'instance.
16 +
17 +== Cas de PVS ==
18 +
19 +Le mécanisme de création des images PVS demande de spécifier à l'avance les adresses MAC des interfaces des machines provisionnées.
20 +
21 +Qui plus est, lors de la création du VDisk, le mécanisme de l'optimisation de l'image Citrix rends l'OS non-démarrable.
22 +
23 +Si ce n'est pour cette partie Système d'exploitation, le reste de mécanisme est fonctionnel : Boot Device Manager tourne et va bien télécharger l'OS depuis le serveur PVS et le lance.
24 +
25 +(% class="box" id="HConclusion" %)
26 +(((
27 +Il est donc impossible d'utiliser les mécanismes natifs de Citrix pour la gestion du provisionning de machines dans Flexible Engine.
28 +)))
29 +
30 += Préambule =
31 +
32 +Lors de la définition d'un PRA, il faut :
33 +
34 +* (% style="background-color:null" %)Procéder à la création d'un nouveau catalogue de machines.
35 +** (% style="background-color:null" %)Cela résout la problématique de ne pas impacter la production Client en mettant en service un groupe de machines parallèle.
36 +* Procéder à la création d'une image (ou de plusieurs images) de machine Citrix dédiée au PRA.
37 +** Cette machine peut intégrer des applications de plusieurs catalogues d'Application différents existants.
38 +* Définir un nombre de machines de ferme (instances remontées à partir de l'image PRA) et un nom pour chacune d'entre elle.
39 +** Dans le cadre d'une bascule en réel et une montée en charge du nombre d'instances, seule la génération du compte de machine dans l'AD et du BLOB correspondant sont à effectuer.
40 +
41 += Méthode de fourniture de service =
42 +
43 +Afin de fournir le service de remontée de fermes Citrix, il faut donc gérer un provisionning spécifique et afin de faciliter la mise en place des instances finales, il faut disposer des éléments suivants :
44 +
45 +* Un OS déjà prêt à tourner dans le cloud Flexible Eng(% style="background-color:null" %)ine sur lequel un processus de Sysprep est(%%) appliqué.
46 +** Nuabee met à disposition une instance Windows Server pour que le client y installe les applications nécessaires à son PRA.
47 +* La création du compte de machine et le BLOB (charge utile binaire) de jointure Hors Ligne au domaine.
48 +* Le catalogue de machine référençant les comptes de machines pré-enregistrées dans l'AD.
49 +* (% style="background-color:null" %)Lors du lancement de chaque instance, lancer un script de jointure Hors Ligne au domaine prenant en compte le BLOB approprié au nom de la machine. (processus Nuabee interne)
50 +
51 +(% style="page-break-before:always" %)
52 +== Préparation coté client en vue de l'intégration des Machines ==
53 +
54 +=== Insertion de l'image Publique dans l'infrastructure ===
55 +
56 +Nuabee communique au client une note sécurisée incluant :
57 +
58 +* Les urls de téléchargement des images Windows Server au format VMDK
59 +* Les logins et mots de passe du compte Administrateur de ces images.
60 +
61 +Ces disques virtuels sont à importer dans l'infrastructure du Client vous la forme de machines virtuelles
62 +
63 +* Pour l'image Windows 2008-R2, penser à sélectionner le disque VMDK et utiliser une connexion IDE.
64 +* Pour l'image Windows 2012-R2 et 2016, utiliser une connexion SCSI.
65 +
66 +Cette machine virtuelle primaire jouera le rôle de "golden image" dans le cadre du PRA.
67 +
68 +
69 +==== Installation du Virtual Delivery Agent sur la machine "Maître" ====
70 +
71 +Sur la machine que vous venez d'ajouter à votre infrastructure, lancer l'installateur du VDA et sélectionnez "Activer les connexions vers une machine Serveur", ne pas passer par l'étape de création de Master Image via Citrix.
72 +
73 +[[image:image-20180913152840-1.png||height="598" width="800"]]
74 +
75 +(% class="wikigeneratedid" %)
76 +Indiquez ensuite le(s) contrôleur(s) Citrix vers lequel(s) les machines devront pointer.
77 +
78 +
79 +(% style="page-break-before:always" %)
80 +==== Création OU AD pour la golden image ====
81 +
82 +La création d'une OU (Organizational Unit) spécifique pour ces machines est nécessaire afin de pouvoir changer le paramètre de durée de validité des comptes de machines générés afin de désactiver ce paramètre (ou d'en augmenter la durée à 1 an minimum) pour les machines de ferme.
83 +
84 +[[https:~~/~~/docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/domain-member-maximum-machine-account-password-age>>url:https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/domain-member-maximum-machine-account-password-age]]
85 +
86 +===== Best Practices =====
87 +
88 +>Some organizations pre-build computers and then store them for later use or ship them to remote locations. When a computer starts after being offline more than 30 days, the Netlogon service will notice the password age and initiate a secure channel to a domain controller to change it. If the secure channel cannot be established, the computer will not authenticate with the domain. For this reason, some organizations might want to create a special organizational unit (OU) for computers that are prebuilt, and configure the value for this policy setting to a larger number of days.
89 +
90 +===== Localisation de la GPO =====
91 +
92 +Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options
93 +
94 +Vous avez deux options :
95 +
96 +1. Placer les durées de validité à 0 pour désactiver la fonctionnalité de renouvellement dans cette OU
97 +1. Placer à une durée au terme de laquelle à laquelle un renouvellement des fichiers BLOB d'identification est à prévoir avec Nuabee en fonction des prérequis de sécurité du client.
98 +
99 +(% style="page-break-before:always" %)
100 +=== Machine Catalog et Delivery Group ===
101 +
102 +Le mécanisme de Nuabee implique de créer en parallèle de l'environnement Citrix de production, un nouveau "machine catalog" et un nouveau "delivery group".
103 +
104 +La création du machine catalog implique l'utilisation d'une "Autre technologie de provisionning" et de considérer les machines remontées 'du point de vue Citrix) comme machines physiques.
105 +
106 +[[image:2018-09-13 14_50_42-1 245 309 528 - TeamViewer.png||height="584" width="808"]]
107 +
108 +Dans un premier temps, l'image Windows fournie par Nuabee est lancée sur l'infrastructure du client, jointe au domaine Client et ajoutée au "machine catalog" de PRA (ceci requière l'installation du Virtual Delivery Agent).
109 +
110 +Ensuite, le client doit personnaliser sa machine avec les programmes dont il a besoin dans un contexte de PRA.
111 +
112 +Finalement, il lui faudra enregistrer les programmes nécessaires dans le "delivery group" du PRA.
113 +
114 +**Nota **: si le Client souhaite définir plusieurs modèles de "delivery group", l'idée reste d'avoir un seule image de machine.
115 +
116 +(% style="page-break-before:always" %)
117 +=== Création des BLOB de compte machine dans l'AD ===
118 +
119 +Les machines de la ferme disposeront d'un nombre et nommage prédéfini afin de permettre la création à l'avance des comptes de machines des instances dans l'Active Directory du client.
120 +
121 +==== Commande de création ====
122 +
123 +La création de ces comptes de machine s'accompagne de la génération d'un BLOB pour chaque compte, permettant aux instances de ferme de joindre le domaine dans l'OU appropriée et de remonter dans le catalogue des machines Citrix.
124 +
125 +{{code}}
126 +djoin /provision /domain domain.fr /machine Ferme-0001 /machineOU "OU=FermePRA,OU=Serveurs CITRIX,OU=Serveurs,DC=Domain,DC=fr" /savefile C:\blobFerme-0001.txt
127 +
128 +{{/code}}
129 +
130 +(% class="wikigeneratedid" id="H" %)
131 +Les BLOBs sont à communiquer à Nuabee pour permettre le lancement des instances dans le Cloud.
132 +
133 +(% class="wikigeneratedid" %)
134 +La jointure hors ligne à l'AD est nécessaire, sinon une dissonance interne à la VM remontée l'empêche de communiquer proprement avec le contrôleur de domaine.
135 +
136 +(% class="wikigeneratedid" %)
137 +[[image:trust rel bug2.png||height="449" width="750"]]
138 +
139 +(% style="page-break-before:always" %)
140 +=== Mise à jour Machine Catalog PRA ===
141 +
142 +Ayant ajouté les comptes de machines au domaine, il faut désormais les ajouter au "machine catalog" du PRA, in fine, un PRA comportant 4 machines de ferme se présentera ainsi dans votre Citrix Studio.
143 +
144 +[[image:image-20180820184142-1.png||height="218" width="1243"]]
145 +
146 +=== Personnalisation ===
147 +
148 +Le client est maintenant libre d'installer les logiciels dont il aura besoin pour fournir le service auprès de ses utilisateurs.
149 +
150 +A la fin de cette étape, éteindre la machine, effectuer un snapshot une fois celle-ci éteinte et la redémarrer.
151 +
152 +(% style="page-break-before:always" %)
153 +=== Export de l'instance Maître ===
154 +
155 +Afin de permettre à Nuabee de lancer les machines dans le cloud Flexible Engine, il est nécessaire de préparer une image déployable et dont le Sysprep a été effectué.
156 +
157 +Ce Sysprep exécute un fichier unattend.xml déjà présent dans les images disques fournies par Nuabee, celui-ci indiquant 2 choses:
158 +
159 +* L'instruction de ne pas indiquer de prompt EULA lors du redémarrage.
160 +* Le fichier de script afin de joindre automatiquement le domaine lors du lancement de la machine de ferme.
161 +
162 +(% class="wikigeneratedid" style="page-break-before:always" %)
163 +==== ====
164 +
165 +(% style="page-break-before:always" %)
166 +==== Contenu du fichier Sysprep ====
167 +
168 +{{code}}
169 +
170 +<unattend xmlns="urn:schemas-microsoft-com:unattend">
171 + <settings pass="generalize">
172 + <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
173 + <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
174 + </component>
175 + </settings>
176 + <settings pass="oobeSystem">
177 + <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
178 + <OOBE>
179 + <HideEULAPage>true</HideEULAPage>
180 + <NetworkLocation>Work</NetworkLocation>
181 + <ProtectYourPC>1</ProtectYourPC>
182 + <SkipMachineOOBE>true</SkipMachineOOBE>
183 + <SkipUserOOBE>true</SkipUserOOBE>
184 + </OOBE>
185 + </component>
186 + </settings>
187 + <settings pass="specialize">
188 + <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
189 + <RunSynchronous>
190 + <RunSynchronousCommand wcm:action="add">
191 + <Order>1</Order>
192 + <Path>cmd.exe /c ""C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Scripts\cloudbase-init.exe" --config-file "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf" &amp;&amp; exit 1 || exit 2"</Path>
193 + <Description>Run Cloudbase-Init to set the hostname</Description>
194 + <WillReboot>OnRequest</WillReboot>
195 + </RunSynchronousCommand>
196 + </RunSynchronous>
197 + </component>
198 + </settings>
199 +</unattend>
200 +{{/code}}
201 +
202 +(% class="wikigeneratedid" %)
203 +==== ====
204 +
205 +==== Commande Sysprep ====
206 +
207 +{{code}}
208 +cd "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf"
209 +C:\Windows\System32\Sysprep\Sysprep.exe /generalize /oobe /shutdown /unattend:Unattend.xml
210 +{{/code}}
211 +
212 +Une fois l'OS arrêté, il faut
213 +
214 +1. exporter la machine sous format OVF
215 +1. envoyer son disque dur virtuel (fichier VMDK, QCOW2, VHD) à Nuabee pour que nous le chargions en tant qu'Image cloud.
216 +1. envoyer les BLOBs de comptes de machines à Nuabee.
217 +
218 +
219 +(% style="page-break-before:always" %)
220 +== Exécution côté Nuabee ==
221 +
222 +=== Démarrage des instances ===
223 +
224 +Lors de la préparation d'une instance de machine de ferme, il est nécessaire d'injecter un script Cloud-init PowerShell utilisant le BLOB approprié au nom de l'instance, (généré au préalable) et permettant la jointure de l'instance au domaine en mode "hors ligne":
225 +
226 +{{code}}
227 +#ps1_sysnative
228 +$djoin_blob = "Blob correspondant au bon nom dans l'AD"
229
230 +$djoin_blob_path = [System.IO.Path]::GetTempFileName()
231 +[io.file]::WriteAllText($djoin_blob_path, $djoin_blob, [System.Text.Encoding]::Unicode)
232
233 +& djoin /requestodj /loadfile $djoin_blob_path /windowspath $ENV:SystemRoot /localos
234 +if($lastexitcode) { throw "Active Directory offline domain join failed"}
235
236 +del $djoin_blob_path
237 +Restart-Computer
238 +{{/code}}
239 +
240 +(% class="wikigeneratedid" %)
241 +Le redémarrage final est nécessaire afin d'appliquer les paramètres de domaine à l'instance.
242 +
243 +(% style="page-break-before:always" %)
244 += Entretien de la machine source et transfert =
245 +
246 +La procédure de gestion de l'image source coté client se décompose de la manière suivante pour chaque Golden Image :
247 +
248 +1. Personnaliser l'image
249 +1. Eteindre la machine virtuelle
250 +1. **Effectuer un snapshot** de la machine virtuelle afin de pouvoir revenir sur la machine une fois la procédure terminée.
251 +1. Rallumer la machine et effectuer le sysprep (la machine s'éteint automatiquement à la fin de celui-ci)
252 +1. Une fois la VM éteinte, exporter en tant qu'OVF
253 +1. Envoyer le résultat de l'export à Nuabee via une procédure sécurisée (par exemple via [[https:~~/~~/syncthing.net/>>url:https://syncthing.net/]])
254 +1. **Revenir sur le snapshot** avant Sysprep
Nuabee 2014-2024
Powered by XWiki ©