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:

  1. Disque dur dynamique
  2. 3 Go d'espace disque est suffisant pour une image de base.

<Note> Vous aurez besoin de transférer le fichier VMDK chez Gandi, donc gardez le aussi petit que vous pouvez :) </ note>

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 <<EOF  > /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_imgvous 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 <user> --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.

  1. Activation de la connexion avec une clé SSH au lieu du mot de passe
  2. 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''
Dernière modification: le 11/07/2016 à 13:49 par Alexandre L. (Gandi)