App Layering

Créer ou cloner une couche d’application

Une couche d’application est un disque virtuel qui inclut une ou plusieurs applications. Généralement, une couche d’application n’inclut qu’une seule application. Si vous incluez plusieurs applications dans une couche, limitez-vous aux éléments que vous mettez normalement à jour en même temps.

Créer une couche d’application à partir de zéro

Cette section vous guide à travers la création d’une couche d’application, y compris :

  • Exigences et considérations
  • Démarrer une nouvelle couche d’application
  • Déployer la machine de packaging
  • Installer l’application
  • Messages d’intégrité de la couche que vous pourriez voir
  • Vérifier la couche et arrêter la machine
  • Accélérer les opérations Microsoft Ngen.exe, si nécessaire
  • Finaliser la couche

Exigences et considérations

Une couche d’application inclut une ou plusieurs applications et les paramètres associés. Installez toujours MS Office dans une couche d’application, et jamais dans la couche OS.

  • Applications antivirus : Placez toujours votre application antivirus dans une couche d’application en suivant les instructions fournies ici. Soyez stratégique avec vos mises à jour de fichiers de définitions de virus. Soyez également conscient des fonctionnalités de marquage de fichiers, par exemple, l’outil Symantec Virtual Image Exception Tool. Considérez les moteurs d’analyse basés sur l’hôte et gardez à l’esprit le délai de connexion de l’utilisateur. Assurez-vous de scanner l’image en couches publiée, et non la couche. L’analyse n’est effectuée que lors de l’accès utilisateur sur Citrix Virtual Apps et Citrix Virtual Desktops.
  • MS Office : Utilisez cette recette pour installer Office. Pour les déploiements VDI d’Office 2010 et versions ultérieures, considérez KMS comme une exigence. Pour Office 2007 et versions antérieures, considérez la licence en volume comme une exigence. L’utilisation d’autres structures de licence n’est pas aussi pratique, car elles nécessitent que chaque licence soit activée sur chaque poste de travail. Pour conserver les paramètres et les données utilisateur, activez les magasins de couches utilisateur Office 365 .OST et les fichiers de streaming. Les index de recherche ne sont pas stockés.
  • Recettes pour la mise en couches de certaines applications : Pratiquement toutes les applications peuvent être mises en couches, mais certaines sont plus faciles à mettre en couches si vous commencez par les conseils que nous avons rassemblés dans notre forum App Layering Recipes. Avant de commencer, consultez le forum pour obtenir des conseils et des procédures concernant les applications spécifiques que vous mettez en couches.
  • Applications qui nécessitent l’ajout d’un utilisateur ou d’un administrateur local. Un utilisateur ou un administrateur local que vous ajoutez ou modifiez lors de l’installation d’une application sur une couche d’application ne persiste pas. La couche OS préserve tous les utilisateurs ou groupes locaux que vous ajoutez, mais pas vos couches d’application. Ajoutez l’utilisateur ou l’administrateur local à la couche OS avant d’installer l’application ou envisagez d’installer l’application sur la couche OS.

Démarrer une nouvelle couche d’application

Pour créer une machine de packaging où vous pouvez installer l’application :

  1. Connectez-vous à la console de gestion et sélectionnez Layers > App Layers.
  2. Cliquez sur Create Layer dans la barre Action.
  3. Saisissez un Layer Name (Nom de la couche) et une Version, deux valeurs obligatoires. Vous pouvez également saisir d’autres valeurs.
  4. Dans l’onglet OS Layer, sélectionnez la couche OS que vous souhaitez associer à cette couche d’application.
  5. (Facultatif) L’onglet Prerequisite layers (Couches prérequises) vous donne la possibilité de spécifier d’autres couches d’application qui doivent être présentes lors de l’installation des applications sur cette couche. N’utilisez cette option que lorsque les applications requises ne peuvent pas être incluses dans la même couche. Pour plus d’informations sur cette fonctionnalité avancée, consultez la section Couches prérequises dans les sections suivantes. Remarque : Lorsque vous ajoutez une nouvelle version à une couche d’application existante, vous devez spécifier les couches prérequises dont vous avez besoin. Elles ne sont pas reportées d’une version à l’autre.
  6. Dans l’onglet Connector (Connecteur), choisissez une configuration de connecteur qui inclut les informations d’identification de la plateforme où vous prévoyez de créer la couche et l’emplacement de stockage. Si la configuration dont vous avez besoin n’est pas répertoriée, cliquez sur New (Nouveau) pour en ajouter une.
  7. Dans l’onglet Packaging Disk (Disque de packaging), saisissez un nom de fichier pour le disque de packaging et choisissez le format du disque. Ce disque est utilisé pour la machine de packaging, la machine virtuelle où vous installez l’application.
  8. Dans l’onglet Icon Assignment (Affectation d’icône), choisissez une icône à attribuer à la couche. Cette icône représente la couche dans le module Layers.
    • Pour utiliser une image existante, sélectionnez une image dans la boîte de dialogue d’image.
    • Pour importer une nouvelle image, cliquez sur Browse (Parcourir) et sélectionnez une image au format PNG ou JPG.
    • Si vous utilisez un connecteur avec l’option Offload Compositing sélectionnée, et que vous choisissez l’une des icônes fournies avec App Layering, la machine de packaging tente d’attribuer une icône basée sur le contenu de la couche lorsque celle-ci est finalisée.
  9. Dans l’onglet Confirm and Complete (Confirmer et terminer), examinez les détails de la couche d’application, puis cliquez sur Create Layer (Créer la couche). Vous pouvez saisir un commentaire facultatif avant de créer la couche. Vos commentaires apparaissent dans l’historique d’audit de la vue Informations. Après la création du disque de packaging, la barre des tâches affiche un lien vers le disque de packaging dans votre hyperviseur où vous pouvez déployer la machine de packaging.
  10. Sélectionnez la page Tasks (Tâches) et cliquez sur la tâche Packaging Disk (Disque de packaging). Cliquez sur l’icône d’informations pour afficher la description complète de la tâche, y compris un lien vers l’emplacement où la machine de packaging pour cette couche est publiée.

Ensuite, vous pouvez déployer la machine de packaging pour votre couche.

Déployer la machine de packaging

Sélectionnez votre hyperviseur :

  • XenServer®, Hyper-V, Nutanix ou vSphere
  • Azure
  • Autre hyperviseur (partage de fichiers réseau)
  • Google Cloud Platform (GCP)

XenServer, Hyper-V, Nutanix, vSphere

  1. Connectez-vous à votre client hyperviseur (XenServer, Hyper-V Manager, Nutanix Prism ou vSphere).
  2. Connectez-vous à la console de gestion App Layering et sélectionnez la page Tasks (Tâches) pour afficher les tâches en cours.
  3. Sélectionnez la tâche Create App layer (Créer une couche d’application) et cliquez sur l’icône d’informations pour afficher la description complète de la tâche.
  4. Utilisez l’URL fournie dans la description de la tâche pour naviguer vers la machine de packaging dans votre client hyperviseur.
  5. La machine de packaging est mise sous tension.

Vous pouvez maintenant installer les applications pour cette couche sur la machine de packaging.

Azure

L’appliance ouvre le modèle Azure Custom deployment (Déploiement personnalisé), où vous pouvez créer la machine de packaging.

  1. Connectez-vous au portail Azure (https://portal.azure.com). Remarque : Vous devez vous connecter avant de tenter l’étape suivante.
  2. Accédez à la console de gestion App Layering et sélectionnez la page Tasks (Tâches). Sélectionnez la tâche Create App layer (Créer une couche d’application) et cliquez sur l’icône d’informations pour afficher les détails.
  3. Utilisez le lien dans les détails de la tâche pour naviguer vers la machine de packaging dans Azure. Le panneau Déploiement personnalisé s’ouvre.
  4. Définissez les paramètres Azure.
    • Packaging Machine Name (Nom de la machine de packaging) - doit être conforme aux exigences de nom de machine virtuelle Azure.
    • Size (Taille) – taille de la machine virtuelle.
    • Virtual Network and Subnet (Réseau virtuel et sous-réseau) - pour le déploiement de la machine de packaging. IMPORTANT : Assurez-vous que la valeur de l’emplacement du groupe de ressources correspond à l’emplacement du compte de stockage que vous avez configuré dans la configuration du connecteur. Si ces emplacements ne sont pas les mêmes, le déploiement de la machine de packaging échoue. Si votre déploiement échoue, vous pouvez coller le lien dans le navigateur à nouveau et recommencer.
  5. Une fois votre machine de packaging mise sous tension, vous pouvez installer l’application que vous souhaitez inclure dans la couche.

Autre hyperviseur (via le partage de fichiers réseau de l’appliance)

  1. Localisez le disque de packaging dans le répertoire suivant sur le partage de fichiers réseau : \Unidesk\Packaging Disks

  2. Copiez le disque de packaging vers un emplacement distinct sur votre hyperviseur. Cela permet de disposer d’espace pour les fichiers générés par votre hyperviseur lorsque vous utilisez le disque pour créer une nouvelle machine virtuelle.

    Important : Ne copiez pas le disque dans le dossier Finalize tant qu’il n’est pas prêt à être finalisé. Un disque dans le dossier Finalize ne peut pas être attaché à la nouvelle machine virtuelle que vous allez créer ensuite.

  3. Créez une machine virtuelle en utilisant le disque de packaging comme disque de démarrage.

  4. Mettez sous tension la machine de packaging.

Une fois votre machine de packaging mise sous tension, vous pouvez installer l’application que vous souhaitez inclure dans la couche.

Installer l’application

Lorsque vous installez votre application sur la machine de packaging, laissez l’application telle que vous souhaitez que les utilisateurs la voient lorsqu’ils se connectent. L’état de l’application est ce que les utilisateurs expérimentent chaque fois qu’ils accèdent à l’application.

  1. Connectez-vous à distance à la machine de packaging avec le compte utilisateur utilisé pour créer le système d’exploitation.
  2. Installez l’application, ainsi que tous les pilotes, applications de niveau de démarrage ou fichiers requis pour l’application.
  3. Si un redémarrage du système est nécessaire, redémarrez-le manuellement. La machine de packaging ne redémarre pas automatiquement. Si l’application que vous installez affecte les composants de niveau de démarrage, redémarrez la machine de packaging dans le cadre de la finalisation de la couche.
  4. Assurez-vous que la machine de packaging est dans l’état souhaité pour l’utilisateur :
    • Si l’application nécessite une configuration ou un enregistrement post-installation, effectuez ces étapes maintenant.
    • Supprimez tous les paramètres, configurations, fichiers, lecteurs mappés ou applications que vous ne souhaitez pas inclure sur la machine de packaging.

Vérifier la couche et arrêter la machine

Une fois l’application installée sur la machine de packaging, vérifiez que la couche est prête à être finalisée. Une couche est prête à être finalisée lorsque tout le traitement post-installation est terminé.

Pour vérifier que tous les processus en attente sont terminés, vous pouvez exécuter l’outil Shutdown For Finalize (Arrêter pour finaliser) sur le bureau de la machine de packaging.

Pour utiliser l’outil Shutdown For Finalize :

  1. Si vous n’êtes pas connecté à la machine de packaging, connectez-vous à distance en tant qu’utilisateur qui a créé la machine.
  2. Double-cliquez sur l’icône Shutdown For Finalize. Une fenêtre de ligne de commande affiche des messages détaillant le processus de vérification de la couche.
  3. S’il y a une opération en attente à terminer avant que la couche puisse être finalisée, vous êtes invité à terminer le processus. Si une opération Microsoft Ngen.exe doit être terminée, vous pourrez peut-être accélérer l’opération Ngen.exe, comme détaillé plus loin dans cet article.
  4. Une fois toutes les opérations en attente terminées, double-cliquez à nouveau sur l’icône Shutdown For Finalize. Cela arrête la machine de packaging, et la couche est prête à être finalisée.

Messages d’intégrité de la couche que vous pourriez voir pendant le processus de finalisation

Les messages d’intégrité de la couche suivants vous indiquent quelles opérations en file d’attente doivent être terminées avant que la couche ne soit prête à être finalisée :

  • Un script RunOnce est en attente - Vérifiez et redémarrez la machine de packaging.
  • Un redémarrage post-installation est en attente - Vérifiez et redémarrez la machine de packaging.
  • Une opération Microsoft Ngen.exe est en cours en arrière-plan.
  • Une opération d’installation MSI est en cours - Vérifiez la machine de packaging.
  • Un redémarrage est en attente pour mettre à jour les pilotes sur le disque de démarrage - Vérifiez et redémarrez la machine de packaging.
  • Une opération Microsoft Ngen.exe est nécessaire.
  • Le client Software Center est configuré pour s’exécuter, mais le fichier SMSCFG.INI est toujours présent. Pour en savoir plus sur le déploiement de SCCM dans une couche, consultez l’article App Layering Recipe: How to deploy Microsoft SCCM in a layer.

Pour plus de détails sur la signification des messages d’intégrité de la couche et comment les déboguer, consultez Debugging Layer Integrity Problems in Citrix App Layering.

Vous ne pouvez pas contourner les messages d’intégrité de la couche en arrêtant la machine, car le logiciel App Layering s’arrête et vous ramène à la machine de packaging jusqu’à ce que tous les processus soient terminés.

Si une opération Microsoft Ngen.exe est en cours, vous pourrez peut-être l’accélérer, comme décrit dans la section suivante.

Accélérer les opérations Microsoft Ngen.exe, si nécessaire

Une fois toutes les mises à jour logicielles installées, vous devez permettre à Ngen.exe de recompiler essentiellement le bytecode .NET en images natives et de construire les entrées de registre pour les gérer.

Ngen.exe est le générateur d’images natives Microsoft, qui fait partie du système .NET. Windows détermine quand exécuter Ngen.exe en fonction du logiciel en cours d’installation et de ce que Windows détecte dans la configuration.

Important :

Lorsque Ngen.exe est en cours d’exécution, vous devez le laisser se terminer. Une opération Ngen.exe interrompue peut entraîner des assemblages .NET non fonctionnels ou d’autres problèmes dans le système .NET.

Normalement, Ngen.exe est une opération en arrière-plan qui se met en pause lorsqu’il y a une activité au premier plan. Si vous souhaitez accélérer une opération Ngen.exe, vous pouvez amener la tâche au premier plan pour la terminer le plus rapidement possible.

Pour amener la tâche au premier plan :

  1. Ouvrez une invite de commandes en tant qu’administrateur.
  2. Accédez au répertoire Microsoft.NET\Framework pour la version actuellement utilisée :

    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy-->

  3. Saisissez la commande Ngen.exe suivante pour exécuter tous les éléments en file d’attente. Cette commande traite les installations de composants en file d’attente avant de construire les assemblages.

    ngen eqi 3 <!--NeedCopy-->

    La tâche Ngen.exe passe au premier plan dans l’invite de commandes et liste les assemblages en cours de compilation. Il est normal de voir des messages de compilation.

    Vous pouvez utiliser le Gestionnaire des tâches pour voir si une instance de MSCORSVW.EXE est en cours d’exécution. Si c’est le cas, laissez-la se terminer, ou exécutez ngen eqi 3.

    Attention :

    Ne redémarrez pas pour arrêter la tâche. Laissez la tâche se terminer !

  4. Assurez-vous que tous les processus Ngen.exe sont terminés.
  5. Une fois terminé, arrêtez la machine virtuelle à l’aide du raccourci Shutdown For Finalize disponible sur votre bureau.

Finaliser la couche

Une fois le logiciel installé et la machine de packaging vérifiée et arrêtée, vous êtes prêt à finaliser la couche.

Hyper-V :

Si l’option Offload Compositing est sélectionnée dans la configuration de votre connecteur, la finalisation se produit automatiquement dans le cadre du processus de composition.

XenServer, Azure, Hyper-V, Nutanix AHV, VMware vSphere

Maintenant que la couche a été vérifiée et arrêtée, elle est prête à être finalisée.

Hyper-V :

Si vous utilisez un connecteur avec l’option Offload Compositing sélectionnée, ce processus de finalisation est automatisé et vous n’avez pas à effectuer ces étapes manuelles.

  1. Retournez à la console de gestion.
  2. Sélectionnez Layers > App layers, et la couche que vous avez préparée.
  3. Sélectionnez la version de votre couche dans l’onglet Version Information et cliquez sur Finalize dans la barre d’actions.
  4. Cliquez sur Finalize pour terminer la création de la couche.
  5. Surveillez la barre des tâches pour vérifier que l’action est terminée avec succès.

Une fois la couche vérifiée, la machine de packaging est supprimée pour minimiser l’espace de stockage utilisé.

Autre hyperviseur (partage de fichiers réseau)

Maintenant que la couche a été vérifiée et arrêtée, elle est prête à être finalisée.

  1. Copiez le disque de packaging du dossier contenant les fichiers de la machine de packaging vers le dossier Finalize sur le partage de fichiers réseau : \Unidesk\Finalize

  2. Retournez à la console de gestion.

  3. Sélectionnez Layers > App Layers.

  4. Sélectionnez la version de votre couche dans l’onglet Version Information et cliquez sur Finalize dans la barre d’actions.

  5. Surveillez la barre des tâches pour vérifier que l’action se termine avec succès et que la couche est déployable.

Cloner une couche d’application

Vous pouvez créer une couche d’application identique à une couche existante en clonant une version spécifique de la couche. Pendant le processus de clonage, des informations spécifiques à la couche vous sont demandées. Vous pouvez mettre à jour la couche d’application en y ajoutant des versions. Étant donné qu’une seule version d’une couche est clonée, la nouvelle couche n’a qu’une seule version au départ, même si la couche dont elle a été clonée en avait plusieurs.

Pour cloner une couche :

  1. Sélectionnez la couche d’application que vous souhaitez copier et cliquez sur Clone Layer dans la barre d’actions.
  2. Sélectionnez la version de la couche source à cloner. Vous pouvez choisir la version souhaitée dans le menu déroulant.
  3. Saisissez un nom pour la couche et une description, si les informations supplémentaires sont utiles. Les descriptions sont facultatives.
  4. Saisissez la version et une description de la version, si les informations supplémentaires sont utiles.
  5. Dans l’onglet Icon Assignment (Affectation d’icône), sélectionnez l’icône de la nouvelle couche.
  6. Dans l’onglet Confirm and Clone (Confirmer et cloner), vérifiez les paramètres et cliquez sur le bouton Clone Layer.

Une nouvelle couche est créée avec les mêmes propriétés de couche que la source, à l’exception de l’icône. La priorité de la couche est supérieure à celle de la couche source, car chaque nouvelle couche d’application a une priorité plus élevée que la dernière couche d’application créée. La taille de la nouvelle couche peut être inférieure à celle de l’originale, mais cela indique simplement que l’espace vide a été supprimé pendant le clonage. La couche fonctionne de la même manière que la source.

Vous pouvez utiliser la nouvelle couche comme n’importe quelle autre couche, et elle n’est pas associée de quelque manière que ce soit à la couche d’origine.

Options avancées des couches d’application

Lors de la création et de la mise à jour des couches d’application, gardez à l’esprit les fonctionnalités avancées suivantes.

  • Script de couche personnalisé
  • Mise en cache des couches
  • Couches prérequises

Script de couche personnalisé

Vous pouvez inclure un script dans une couche d’application qui s’exécute une fois, au démarrage du système. Pour configurer le script, modifiez les propriétés de la couche d’application.

Remarque :

Vous pouvez également modifier les propriétés de la révision de la couche soit pendant sa création, soit même après sa finalisation.

Le script s’exécute la première fois qu’une image en couches incluant la couche d’application démarre. Si la couche d’application est mise en couches de manière élastique, le script de couche personnalisé s’exécute lors du montage du disque de la couche d’application. Les scripts de couche personnalisés sont généralement utilisés pour des applications, telles que MS Office, qui nécessitent une activation de licence la première fois qu’elles démarrent.

Script de couche personnalisé

Mise en cache des couches pour une création plus rapide des couches d’application

Vous pouvez utiliser la mise en cache des couches pour accélérer les temps de création des couches.

Fonctionnement de la mise en cache

La première fois que vous créez une couche d’application, si la taille du cache est définie sur une valeur suffisamment grande, un modèle composé du disque de démarrage et du disque de packaging vide est enregistré dans le cache. Le disque de démarrage inclut la couche OS, la couche Plateforme et la couche prérequise (le cas échéant) spécifiées dans les paramètres de la couche d’application.

Chaque fois que vous créez une couche d’application qui utilise la même combinaison de couche OS, de couche prérequise et de couche Plateforme, le logiciel App Layering réutilise le modèle, ce qui réduit considérablement le temps de création.

Si vous créez ensuite une couche d’application qui utilise une combinaison différente de couche OS, de couche prérequise et de couche Plateforme, le logiciel App Layering crée un modèle et l’ajoute au cache.

Taille de cache recommandée

La taille de cache recommandée dépend du nombre de combinaisons de couches OS, Plateforme et prérequises dont vous avez besoin pour vos couches d’application. Le nombre de combinaisons détermine le nombre de modèles enregistrés dans le cache.

Pour estimer l’espace requis pour chaque modèle :

  1. Sélectionnez l’icône i pour chaque couche OS, Plateforme et prérequise, et recherchez la Maximum Layer Size (Taille maximale de la couche).
  2. Ajoutez les tailles maximales des disques. Le total est la taille de cache dont vous avez besoin pour ce modèle.

Pour estimer l’espace requis pour le cache, ajoutez la taille que vous avez déterminée pour chacun de vos modèles.

Couches prérequises

Rarement recommandées, les couches prérequises vous permettent d’inclure une ou plusieurs couches d’application existantes sur le disque de packaging lors de la création d’une couche ou de l’ajout d’une version à celle-ci.

Utilisez les couches prérequises uniquement si elles sont requises, car elles peuvent ajouter quelque chose à la couche qui n’est pas nécessaire pour déployer l’application actuelle. Ce comportement peut entraîner des conflits à l’avenir.

Quand utiliser les couches prérequises

Les couches prérequises peuvent être requises pour plusieurs raisons :

  • Lorsque l’installation de l’application sur la couche actuelle nécessite la présence d’une autre application. Par exemple, lorsque vous installez une application qui nécessite Java, et que Java est situé dans une couche distincte.
  • Lorsque l’installation du logiciel ajoute des paramètres à une application existante. Par exemple, lorsque vous installez un complément Office, vous devez d’abord installer Microsoft Office.
  • Lorsque deux applications modifient la même clé de registre, et que la deuxième application doit ajouter à une clé et non la remplacer. Par exemple, deux applications qui modifient toutes deux les clés de connexion dans Windows, telles que Citrix Agent et Imprivata.

Remarque

Certains de ces problèmes peuvent également être résolus en plaçant les deux applications dans la même couche plutôt qu’en utilisant des couches prérequises.

Caractéristiques des couches prérequises

Les couches prérequises présentent les caractéristiques suivantes :

  • Les couches prérequises ne sont pas incluses dans la couche d’application qu’elles sont utilisées pour créer.
  • La couche d’application que vous créez et chacune de ses couches prérequises doivent utiliser la même couche OS.
  • Lors de l’ajout d’une version à une couche d’application, les couches prérequises ne sont pas incluses par défaut. Chaque fois que vous ajoutez une version à une couche, vous devez sélectionner une ou plusieurs couches prérequises.
Créer ou cloner une couche d’application