Gestion des Templates
Introduction
Les templates sont la clé pour standardiser et accélérer le déploiement des machines virtuelles. Ils permettent de définir un modèle réutilisable (système d’exploitation, flavor, scripts) afin de provisionner de nouvelles VMs de manière cohérente et rapide.
Dans cette partie de l’atelier, nous allons explorer les différentes facettes de la gestion des templates :
-
Nous commencerons par cloner et personnaliser un template Linux fourni par Red Hat pour l’adapter à un besoin spécifique (un serveur de base de données).
-
Ensuite, nous créerons un template pour Windows Server à partir d’une image ISO, en incluant l’automatisation via
Sysprep. -
Enfin, nous découvrirons les Instance Types, la nouvelle approche introduite dans OpenShift 4.14 pour simplifier la sélection des ressources VM.
Commençons par cloner un template existant.
Cloner et Personnaliser un Template
Par défaut, les templates préconfigurés fournis par Red Hat OpenShift Virtualization ne peuvent pas être personnalisés. Cependant, vous pouvez cloner un template et y apporter des ajustements pour votre workload particulier afin de faciliter la demande de types spécifiques de machines virtuelles pour des workloads spécifiques. Dans cette section du lab, c’est exactement ce que nous allons faire, en créant un template qui fournira un serveur de base de données préconfiguré à la demande pour nos utilisateurs finaux.
-
Pour commencer, cliquez sur Templates dans le menu de gauche, et sélectionnez openshift pour votre project. Vous devrez peut-être basculer le bouton Show default projects pour que le project openshift apparaisse.
-
Dans la barre de recherche, tapez centos9 et appuyez sur Entrée. Dans la liste de templates qui apparaît, trouvez le template centos-stream9-server-small.
-
Cliquez sur le nom du template centos-stream9-server-small, un message vous indiquera que les templates par défaut ne peuvent pas être modifiés et vous demandera si vous souhaitez en cloner un. Cliquez sur l’option Create a new custom Template.
-
Un nouveau menu appelé Clone template apparaîtra, remplissez les valeurs suivantes, et lorsque vous aurez terminé, cliquez sur le bouton Clone.
-
Cela vous amènera à la page Details du template où nous pourrons personnaliser certaines options. Commencez par trouver le CPU et la Mémoire près du bas de la page, et cliquez sur l’icône en forme de crayon pour les modifier.
-
Une nouvelle fenêtre apparaîtra où vous pourrez modifier la quantité de CPU et de Mémoire. Pour notre template personnalisé, réglez la valeur des CPUs à 2, et la Mémoire à 4 GiB, puis cliquez sur le bouton Save.
-
Ensuite, cliquez sur l’onglet Scripts en haut, et dans la section appelée Cloud-init, cliquez sur le bouton Edit.
-
Lorsque le dialogue Cloud-init s’ouvre, cliquez sur le bouton radio Configure via: Script puis remplacez le YAML par le snippet YAML fourni. Cliquez sur save et apply.
userData: |- #cloud-config user: centos password: ${CLOUD_USER_PASSWORD} chpasswd: { expire: False } packages: - mariadb-server runcmd: - systemctl enable mariadb - systemctl start mariadb -
Lorsque le dialogue Cloud-init s’ouvre, cliquez sur le bouton radio Configure via: Script puis remplacez le YAML par le snippet YAML suivant.
-
Maintenant, cliquez sur l’élément Catalog dans le menu de gauche, sélectionnez l’option Template catalog, suivie de User templates. Vous devriez voir le template que vous avez créé disponible sous forme de tuile.
-
Cliquez sur la tuile et l’écran de démarrage de la VM s’affichera. Cliquez sur le bouton Quick create VirtualMachine.
-
Lorsque la machine virtuelle démarre , vous pouvez voir sur la page Overview qu’elle a été créée à partir de notre template, et qu’elle dispose des ressources supplémentaires que nous avons définies. Nous devons juste vérifier qu’elle a bien installé MariaDB pour nous.
-
Cliquez sur l’onglet Console en haut et utilisez les Guest login credentials qui sont fournis ainsi que les boutons Copy et Paste to console pour vous connecter à la console de la machine virtuelle.
-
Une fois connecté à la machine virtuelle, exécutez la commande suivante pour tester l’installation de MariaDB.
sudo mysql -u root -
Appuyez sur Ctrl-D deux fois pour vous log out de la VM.
Créer un Template de VM Windows
Dans cette partie de notre lab, nous installerons Microsoft Windows Server 2019 en utilisant un ISO hébergé sur un serveur web. Cela représente une façon d’installer un système d’exploitation sur une machine virtuelle qui tire parti de la capacité à sourcer des disques depuis de nombreux emplacements, y compris un serveur web, un object storage, ou d’autres persistent volumes dans le cluster.
Ce processus peut être rationalisé après l’installation initiale du système d’exploitation en créant un root disk cloné à partir d’une machine virtuelle préparée avec un script sysprep pour l’utiliser avec d’autres templates.
-
Dans le menu de gauche, naviguez vers Catalog, et cliquez sur l’onglet Template catalog en haut a gauche.
-
Tapez le mot win dans la barre de recherche, ou faites défiler vers le bas jusqu’à ce que vous trouviez la tuile Microsoft Windows Server 2019 VM.
-
Un dialogue apparaîtra montrant la configuration par défaut liée au template.
Remarquez qu’il n’y a initialement aucune option pour quick create cette VM car il n’y a pas de boot source fournie. Nous devons personnaliser la VM pour qu’elle corresponde à nos besoins. -
In this dialog:
-
Spécifiez le nom win-sysprep
-
Cochez la checkbox (case à cocher) Boot from CD
-
Choisissez URL (creates PVC) dans le menu déroulant
-
Spécifiez l'image URL : https://catalog-item-assets.s3.us-east-2.amazonaws.com/qcow_images/Windows2019.iso
-
Réduisez la taille du disque CD à 5 GiB
-
Gardez la Disk source à Blank et la taille définie à la valeur par défaut 60 GiB
-
Assurez-vous que la checkbox Mount Windows drivers disk est cochée. Ceci est nécessaire pour installer les systèmes Windows, et fournira les drivers pour VirtIO.
-
-
Une fois les options remplies, nous voulons cliquer sur le bouton Customize VirtualMachine en bas pour continuer à configurer notre Template.
-
Sur l’écran Customize and create VirtualMachine, cliquez sur le crayon d’édition à côté de l’option Boot mode.
-
Lorsque le menu Boot mode apparaît, sélectionnez le boot mode BIOS dans le menu drop-down et cliquez sur le bouton Save.
-
Maintenant, cliquez sur l’onglet Scripts, puis scrollez vers le bas jusqu’à la section Sysprep et cliquez sur le bouton Edit.
-
Une nouvelle fenêtre apparaîtra pour vous permettre de créer des actions Sysprep pour votre nouveau template.
-
Copiez et collez le bloc de code suivant dans la section autounattend.xml :
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemas-microsoft-com:unattend"> <settings pass="windowsPE"> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <DiskConfiguration> <Disk wcm:action="add"> <CreatePartitions> <CreatePartition wcm:action="add"> <Order>1</Order> <Extend>true</Extend> <Type>Primary</Type> </CreatePartition> </CreatePartitions> <ModifyPartitions> <ModifyPartition wcm:action="add"> <Active>true</Active> <Format>NTFS</Format> <Label>System</Label> <Order>1</Order> <PartitionID>1</PartitionID> </ModifyPartition> </ModifyPartitions> <DiskID>0</DiskID> <WillWipeDisk>true</WillWipeDisk> </Disk> </DiskConfiguration> <ImageInstall> <OSImage> <InstallFrom> <MetaData wcm:action="add"> <Key>/IMAGE/NAME</Key> <Value>Windows Server 2019 SERVERSTANDARD</Value> </MetaData> </InstallFrom> <InstallTo> <DiskID>0</DiskID> <PartitionID>1</PartitionID> </InstallTo> </OSImage> </ImageInstall> <UserData> <AcceptEula>true</AcceptEula> <FullName>Administrator</FullName> <Organization>My Organization</Organization> </UserData> <EnableFirewall>false</EnableFirewall> </component> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <SetupUILanguage> <UILanguage>en-US</UILanguage> </SetupUILanguage> <InputLocale>en-US</InputLocale> <SystemLocale>en-US</SystemLocale> <UILanguage>en-US</UILanguage> <UserLocale>en-US</UserLocale> </component> </settings> <settings pass="offlineServicing"> <component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <EnableLUA>false</EnableLUA> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <AutoLogon> <Password> <Value>R3dh4t1!</Value> <PlainText>true</PlainText> </Password> <Enabled>true</Enabled> <LogonCount>999</LogonCount> <Username>Administrator</Username> </AutoLogon> <OOBE> <HideEULAPage>true</HideEULAPage> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <NetworkLocation>Work</NetworkLocation> <ProtectYourPC>3</ProtectYourPC> <SkipMachineOOBE>true</SkipMachineOOBE> </OOBE> <UserAccounts> <LocalAccounts> <LocalAccount wcm:action="add"> <Description>Local Administrator Account</Description> <DisplayName>Administrator</DisplayName> <Group>Administrators</Group> <Name>Administrator</Name> </LocalAccount> </LocalAccounts> </UserAccounts> <TimeZone>Eastern Standard Time</TimeZone> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <InputLocale>en-US</InputLocale> <SystemLocale>en-US</SystemLocale> <UILanguage>en-US</UILanguage> <UserLocale>en-US</UserLocale> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <AutoLogon> <Password> <Value>R3dh4t1!</Value> <PlainText>true</PlainText> </Password> <Enabled>true</Enabled> <LogonCount>999</LogonCount> <Username>Administrator</Username> </AutoLogon> <OOBE> <HideEULAPage>true</HideEULAPage> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <NetworkLocation>Work</NetworkLocation> <ProtectYourPC>3</ProtectYourPC> <SkipMachineOOBE>true</SkipMachineOOBE> </OOBE> <UserAccounts> <LocalAccounts> <LocalAccount wcm:action="add"> <Description>Local Administrator Account</Description> <DisplayName>Administrator</DisplayName> <Group>Administrators</Group> <Name>Administrator</Name> </LocalAccount> </LocalAccounts> </UserAccounts> <TimeZone>Eastern Standard Time</TimeZone> </component> </settings> </unattend> -
Une fois le code collé, cliquez sur le bouton Save dans le dialogue.
-
Avec le Sysprep en place, cliquez sur le bouton Create VirtualMachine en bas de l’écran.
-
La Machine Virtuelle démarrera le processus de provisioning en téléchargeant l’image ISO, en configurant et en démarrant l’instance.
-
Ce processus peut prendre quelques minutes car il doit télécharger l’image ISO de boot. Vous pouvez vérifier la progression du téléchargement en cliquant sur l’onglet Diagnostics.
-
Après quelques instants, la machine virtuelle démarrera, et le statut passera à Running. Cliquez sur l’onglet Console pour voir le processus d’installation autoattend :
-
Une fois le processus d’installation de la VM terminé (le provisioning prendra 3-5 minutes, le démarrage et la configuration prendront environ 10 minutes), éteignez-la avec le bouton Stop.
-
Une fois la machine éteinte, nous voulons faire un clone du root volume que nous pourrons utiliser pour de futures installations basées sur des templates Windows, sans avoir à repasser par le processus de personnalisation à chaque fois.
-
Dans le menu de gauche, cliquez sur Storage puis PersistentVolumeClaims pour voir une liste des PVCs disponibles dans le namespace projet-X.
-
Trouvez le PVC win-sysprep créé avec notre installation, et en utilisant le menu à trois points sur la droite, sélectionnez Clone PVC.
-
Dans le menu qui apparaît, remplissez les options suivantes, puis cliquez sur le bouton Clone :
-
Une fois cela sauvegardé, vous pouvez l’utiliser pour créer rapidement de futures VMs Windows.
-
Retournez à l’élément de menu Catalog, et utilisez ce PVC cloné comme boot source pour quick-create de nouvelles machines virtuelles en sélectionnant l’option clone PVC comme Disk source, et en sélectionnant le PVC Windows-2k19-Sysprep-Template comme PVC name à cloner, et cliquez sur le bouton Customize VirtualMachine pour configurer le boot mode BIOS au lieu d'UEFI.
-
Configurez le BIOS et appuyez sur Create VirtualMachine
-
Dans quelques instants, la nouvelle machine virtuelle Windows Server 2019 démarrera à partir de notre PVC cloné.
Introduction aux Instance Types
Afin de simplifier le processus de déploiement des machines virtuelles, à partir d’OpenShift 4.14, le mécanisme de configuration par défaut a été modifié pour mettre l’accent sur l’utilisation des Instance Types. Un instance type est un objet réutilisable où vous pouvez définir des ressources et des caractéristiques à appliquer à une nouvelle VM. Vous pouvez définir des instance types personnalisés ou utiliser la variété incluse lors de l’installation d’OpenShift Virtualization lors du provisioning de votre propre VM. Cela ressemble beaucoup plus à ce que les utilisateurs expérimentent lors de l’utilisation d’un catalogue en self-service chez les cloud providers.
Cette section explore le provisioning d’une VM à l’aide d’un instance type.
-
Pour commencer, cliquez sur Catalog dans le menu de gauche. Vous verrez que l’élément de catalogue par défaut est InstanceType.
-
La première étape lors de l’utilisation d’un instance type est de sélectionner un volume à partir duquel démarrer. Similaires aux templates qui fournissent des boot sources, ces boot sources sont disponibles pour les invités provisionnés avec un InstanceType. Vous pouvez voir les volumes inclus en sélectionnant le project openshift-virtualization-os-images, ou vous pouvez uploader les vôtres avec le bouton Add volume.
-
Cliquez sur le volume de boot rhel9 pour le sélectionner comme type de volume à partir duquel démarrer. La sélection sera indiquée par une petite ligne bleue verticale à gauche du nom de l’image et le nom lui-même passant en police grasse.
-
Ensuite, vous pouvez sélectionner l'instance type que vous souhaitez utiliser. Il existe des instance types fournis par Red Hat par défaut, ou vous pouvez créer les vôtres pour votre cas d’utilisation spécifique. Si vous survolez un instance type fourni, vous pouvez voir une description de l’utilisation prévue.
-
Les instance types fournis par Red Hat sont destinés aux utilisations suivantes :
-
N series: Conçue pour les workloads DPDK intensifs en réseau, comme les VNFs.
-
O series: Instance type spécialisé d’usage général avec le memory overcommit préconfiguré.
-
CX series: Conçue pour les workloads intensifs en compute en demandant des CPUs dédiés supplémentaires pour le function offload additionnel.
-
U series: L'instance type le plus généraliste ou "universel".
-
M series: Conçue pour les workloads intensifs en mémoire.
-
-
-
Cliquez sur la tuile U series pour voir une dropdown list (liste déroulante) des ressources définies pour les instance types généraux. L’option par défaut ici est medium: 1 CPUs, 4 GiB Memory. Sélectionnez-la. Encore une fois, la sélection sera indiquée par une ligne bleue et une mise en gras de la police pour l'instance type.
-
La dernière section à compléter lors du provisioning à l’aide d’un instance type est similaire à la section des templates. Vous devez fournir un nom pour la machine virtuelle, et sélectionner la storage class à utiliser pour un disque de stockage. Par défaut, un nom sera généré pour la VM, et la storage class par défaut sera sélectionnée. Lorsque vous êtes satisfait, cliquez sur le bouton Create VirtualMachine.
-
Vous serez dirigé vers la page overview de la machine virtuelle, et verrez que la VM provisionnée à l’aide d’un instance type est maintenant opérationnelle.
Cleanup
Pour économiser des ressources pour le prochain lab, veuillez arrêter toutes les VMs que vous avez créées dans ce module.
-
Naviguez vers la persona Virtualization dans le menu de gauche, puis cliquez sur Virtual Machines.
-
Si des VMs affichent le statut Running, mettez en surbrillance la VM dans la colonne centrale arborescente, et sélectionnez le bouton Stop ou l’option dans le menu dropdown Actions.
Toutes les VMs devraient maintenant être à l’état Stopped.
Résumé
Dans cette section, nous avons appris à cloner et à personnaliser un template existant pour en créer un qui peut être utilisé pour des workloads spécifiques comme les bases de données. Nous avons également appris à configurer l’un des templates Windows existants qui n’a pas de boot source, et d’automatiser son processus d’installation, afin que nous puissions créer de futurs déploiements facilement en clonant le PVC d’installation qui a été créé avec cette VM. Nous avons également introduit comment utiliser les instance types pour personnaliser davantage nos machines virtuelles pour des workloads spécifiques pour une expérience plus proche du cloud.






































