====== Utiliser une image VMDK avec Gandi Serveur ====== Vous pouvez utiliser des images systèmes personnalisées pour vos serveurs au lieu d'une image officielle de Gandi. Dans ce tutoriel, vous suivrez toutes les étapes pour utiliser une image de machine virtuelle dans le format VMDK (Virtual Machine Disk) avec les serveurs Gandi Cloud. Nous allons créer une image Ubuntu en utilisant VirtualBox sur un ordinateur personnel, mais vous pouvez utiliser une image VMDK créée ou obtenue avec d'autres outils aussi. Au final, vous serez en mesure de reproduire des clones de votre propre image en une minute avec une seule commande sur les serveurs Gandi Cloud. ===== Aperçu ===== Les VPS et serveurs Cloud sont vraiment des machines virtuelles (virtual machine/VM), tout comme ceux que vous pouvez exécuter sur votre propre ordinateur. Ils sont simplement utilisés à une grande échelle. Bien qu'il y ait différentes technologie de virtualisation, il y a suffisamment de formats standards, d'architectures et d'outils pour assurer leur portabilité. C'est exactement ce que vous allez apprendre avec ce tutoriel. Vous apprendrez comment utiliser une machine virtuelle que vous avez créé sur votre ordinateur et la mettre sur Gandi Cloud. Une fois là, vous serez en mesure de l'utiliser comme une image source pour créer de nouveaux serveurs, au lieu d'utiliser l'une des images officielles Gandi, et la configuration des serveurs après qu'ils soit créés sur le ''cloud''. Votre image de la machine virtuelle peut être un système ''vanilla'' ou il peut être entièrement personnalisé, par exemple pour contenir la dernière version de votre application Web en cours. L'idée est que vous serez alors en mesure de **reproduire des serveurs qui sont prêts à fonctionner rapidement sur Gandi Cloud**, en utilisant une copie de votre image. ===== Prérequis ===== Pour compléter ce tutoriel, vous avez besoin: * de crédits sur votre compte d'hébergement Gandi * VirtualBox installé sur votre ordinateur * Un client SSH sur installé sur votre ordinateur * Gandi CLI installé sur votre ordinateur (optionnnel, mais recommandé) Vous pouvez compléter ce tutoriel sans utiliser Gandi CLI. Toutes les tâches de gestion de serveur peuvent être fait à partir du site Web. ===== Étape 1: Téléchargez une image système ===== La plate-forme Cloud peut exécuter un système qui comprend les bibliothèques ''virtio'' et supporte les évenements ''ACPI'' (_lire plus à ce sujet ici_). Dans ce tutoriel, nous allons utiliser un serveur Ubuntu. Vous pouvez télécharger l'image iso 64 bit de la dernière version ''Long Term Support'' (LTS) sur le site officiel : http://www.ubuntu.com/download/server ===== Étape 2: Créer une machine virtuelle avec l'image système ===== Dans VirtualBox, créez une nouvelle VM Linux Ubuntu 64 bit. Choisissez le VMDK type pour le disque dur. Donnez-lui les propriétés suivantes: - Disque dur dynamique - 3 Go d'espace disque est suffisant pour une image de base. Vous aurez besoin de transférer le fichier VMDK chez Gandi, donc gardez le aussi petit que vous pouvez :) Utilisez l'image iso 'Ubuntu Server' pour commencer l'installation du système sur votre disque de la VM. ===== Étape 3: Lancez la VM et installer le système ===== Procédez au lancement de l'installation de Ubuntu Serveur. Vous pouvez utiliser les partitions par défaut, sans Logical Volume Manager (LVM), l'écriture sur le disque entier. Installez le chargeur de démarrage GRUB et validez l'installation sur le 'Master Boot Record' (MBR). Créez un utilisateur (par exemple : ubuntu) et son mot de passe. ===== Etape 4: Configuration du système ===== Une fois l'installation terminée, vous aurez besoin de faire un petit ajustement à la configuration de Grub, pour rendre possible le démarrage du serveur sur Gandi Cloud. Modifiez le fichier de configuration '/etc/default/grub' et modifiez les paramètres suivants : GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash" GRUB_CMDLINE_LINUX = "console = ttyS0" Ensuite, assurez-vous de lancer `sudo update-grub` et redémarrez votre VM. En option, vous pouvez ajouter les miroirs Ubuntu Gandi comme source du système de paquets. Ceci permettra des téléchargements plus rapides et vous donnera accès au paquet ''gandi-hosting-vm2''. # cat < /etc/apt/sources/list deb http://mirrors.gandi.net/ubuntu trusty main universe multiverse deb http://mirrors.gandi.net/ubuntu trusty-updates main universe multiverse deb http://mirrors.gandi.net/ubuntu trusty-security main universe multiverse deb http://mirrors.gandi.net/ubuntu trusty-backports main universe multiverse deb http://mirrors.gandi.net/ubuntu trusty-proposed main universe multiverse EOF # echo "deb http://mirrors.gandi.net/gandi/ubuntu trusty main" > /etc/apt/sources.list.d/gandi.list Vos paramètres réseaux doivent être laissés tel quels. Par défaut Ubuntu utilise DHCP sur l'interface ''eth0'', qui permettra à vos serveurs de se faire attribuer une adresse IP par notre plate-forme. Vous pouvez en savoir plus sur _comment notre plateforme fonctionne_ et optimiser davantages vos paramètres. Maintenant il est temps de s'occuper de la configuration qui est spécifique à votre image. Est-ce que vous souhaitez exécuter une application web ? Un serveur de messagerie ? Un répartiteur de charge ? Enfin, rappelez-vous d'installer le serveur OpenSSH si vous en avez besoin. $ sudo apt-get install ssh Une fois votre système complétement configuré, arrêtez votre VM et procédez aux réglages du Cloud. ===== Étape 5: Créer le serveur de build et un disque vide ===== Pour préparer l'image du système sur Gandi Cloud, vous allez créer un serveur ''build''. Ce serveur de ''build'' sera utilisé pour transférer et installer l'image sur un disque vierge. Il n'a pas besoin d'être rapide et/ou puissant. Vous devez seulement vous assurer de la présence d'un espace-disque suffisamment grand pour contenir le fichier VMDK et sa version brute (format "raw"), qui sera aussi grand que vous l'avez défini dans VirtualBox. Si vous avez suivi les recommandations et utilisé l'option dynamique de la taille du disque, le fichier VMDK pourrait être plus petit que l'image brute. Vous serez en mesure de créer plus tard des serveurs facilement et rapidement en utilisant votre image. Dans cet exemple, nous allons nommer le serveur temporaire ''builder'' et puis le créer dans notre centre de données (''datacenter'') de Bissen au Luxembourg. Vous pouvez répéter la procédure pour tous les autres ''datacenters''. $ gandi vm create --hostname builder --size 12288 --cores 1 --memory 512 --datacenter LU-BI1 Une fois que le serveur est créé, vous pouvez de suite créer le disque vide où vous allez installer le système. C'est le disque qui servira d'"image de base" et qui sera cloné lors de la création de nouveaux serveurs. Le disque est nommé ''ubuntu_img'' et attaché à ''builder''. Veuillez vous assurer que le disque a un espace de stockage suffisant pour contenir votre système et la ou les applications exécutées. $ gandi disk create --name ubuntu_img --size 6144 --datacenter LU-BI1 --vm builder ===== Etape 6: Télécharger le fichier image ===== Vous pouvez télécharger l'image sur le serveur de ''build''. Commencez par obtenir son adresse IP: $ gandi vm info builder | grep ip Nous allons transférer le fichier d'image VMDK vers le serveur de ''build'' dans le répertoire de l'utilisateur ''root''. Assurez-vous d'adapter l'emplacement de l'image locale dans la commande ci-dessous: $ scp /chemin/vers/votre/image/locale/Ubuntu.vmdk root@{ip}:~/. Assurez-vous de remplacer ''{ip}'' avec l'adresse IP obtenue avec la commande précédente. S'il s'agit une adresse IPV6, souvenez-vous de l'utiliser ainsi: root@\[2001:...\]:~/. Le transfert peut prendre un certain temps en fonction de la taille du fichier VMDK et de la vitesse de votre connexion internet. ===== Étape 7: Installez l'image ===== Une fois le transfert terminé, vous pouvez accéder au serveur de ''build'' et installer l'image système. Etablissez une connexion SSH pour pouvoir executer les commandes nécessaires. $ gandi vm ssh builder Vous pouvez utiliser ''qemu'' pour convertir le fichier Ubuntu.vmdk exporté depuis VirtualBox vers un fichier image brute. Vous pourrez ensuite utiliser ''pv'' pour copier cette image sur le disque ''ubuntu_img''vous avez déjà créé et rattaché au serveur de build. Notez que le disque a été monté automatiquement sur votre système de fichiers. Cependant, nous voulons écrire le fichier image brute directement sur le périphérique, vous aurez donc besoin de démonter le disque avant de le copier. # apt-get install qemu-kvm pv # qemu-img convert Ubuntu.vmdk -O raw disk.img # umount /srv/ubuntu_img # pv < disk.img > /dev/sdc Le périphérique est généralement situé sur ''/dev/sdc'' dans ce scénario et monté sur ''/srv/ubuntu_img'', mais vous pouvez exécuter la command ''df -h'' pour en être certain. Cette dernière étape peut également être réalisée avec le commande ''dd''. Nous avons utilisé ''pv'' simplement pour obtenir une barre de progression, car la copie peut prendre quelques minutes. Vous pouvez quitter le serveur une fois que le processus est terminé. Vous n'en aurez pas besoin de nouveau et vous pourrez bientôt le supprimer. # exit ===== Etape 8: Convertir le disque en disque système ===== Votre image système est maintenant installée sur le disque ''ubuntu_img''. Détachez-le du serveur de build et convertissez le disque en un disque système. Utilisez le kernel ''raw'' pour démarrer à partir du Grub de votre image. $ gandi disk detach ubuntu_img $ gandi disk update ubuntu_img --kernel raw ''ubuntu_img'' peut maintenant être utilisé comme source pour créer de nouveaux serveurs, au même titre que les images officielles Gandi. Vous pouvez supprimer le serveur ''builder'' dont vous n'aurez plus l'utilité. $ gandi vm delete builder ===== Etape 9: Créer un groupe de nouveaux serveurs en utilisant la nouvelle image système ===== Vous êtes désormais en mesure de créer de nouveaux serveurs et de sélectionner ''ubuntu_img'' comme source de disque système. Il suffit d'ajouter l'option ''--image ubuntu_img'' à la commande ''gandi vm create''. $ gandi vm create --hostname ubuntu0 --image ubuntu_img [--login --password] $ gandi vm create --hostname ubuntu1 --image ubuntu_img $ gandi vm create --hostname ubuntu2 --image ubuntu_img Si vous avez installé le serveur ssh, vous serez en mesure de vous connecter de cette manière : $ gandi vm ssh ubuntu0 --login ubuntu ===== Et ensuite ? ===== Vous pouvez personnaliser davantage la machine virtuelle pour l'adapter au mieux à vos besoins et à la plate-forme Gandi. - Activation de la connexion avec une clé SSH au lieu du mot de passe - Configuration de l'application ''aptitude' pour une utilisation avec les miroirs de Gandi : téléchargements plus rapides - Téléchargement du paquet ''gandi-hosting-vm2'' pour profiter de toutes les fonctionnalités de la plate-forme de Gandi - Attachement des serveurs à un répartiteur de charge (Web Accelerator) via ''Gandi CLI''