Bring Your Own Linux (BYOLinux)
Objectif
La fonctionnalité Bring Your Own Linux (BYOLinux) vous permet de déployer des images Linux cloudready directement sur votre serveur dédié. Vous pouvez ainsi utiliser le service bare metal comme ressource pour vos déploiements.
Que signifie cloudready ?
La norme cloudready signifie généralement être agnostique de l’infrastructure sur laquelle l’image est déployée. En plus des prérequis et limitations mentionnés ci-dessous, vous devez vous assurer que l'image (téléchargée ou générée) répond correctement à la définition des attentes techniques d'une image cloudready.
Ce guide vous explique comment utiliser Bring Your Own Linux (BYOLinux) sur votre serveur dédié OVHcloud.
Prérequis
- Un serveur dédié dans votre compte OVHcloud
- Être connecté à l'espace client OVHcloud (pour la méthode de déploiement via l'espace client de ce guide)
- Avoir accès à l'API OVHcloud (pour la méthode de déploiement via l'API de ce guide)
- Votre image doit être inférieure à la RAM du serveur moins 3 Gio
- Un script
/root/.ovh/make_image_bootable.shexécutable, qui installera ou configurera le bootloader, par exemple GRUB. Ce script ne doit pas modifier l'ordre de boot NVRAM (par exemple, utilisezgrub-install --no-nvram). Pour plus d'informations, consultez notre guide « Comprendre le processus de démarrage des serveurs dédiés ».
Tout comme une installation OS classique, une nouvelle installation par BYOLinux effacera l'intégralité des données présentes sur le serveur.
En pratique
Limites techniques :
Certaines limites techniques sont liées à l’utilisation de produits physiques comme les serveurs dédiés. Voici une liste non exhaustive à garder à l'esprit lors de la préparation de votre déploiement :
- Type de démarrage : UEFI ou legacy (en fonction du type de démarrage de votre serveur)
- Format de l'image : qcow2
- Une seule partition dans l'image qcow2
- Système de fichiers de la partition : ext4, XFS ou BTRFS (sans sous-volumes)
Méthodes de déploiement :
- Déploiement via l'espace client : vous permet de déployer simplement votre image depuis l'espace client OVHcloud.
- Déploiement via API : vous pouvez utiliser l’API OVHcloud pour intégrer des images dans vos propres scripts afin d’automatiser les déploiements.
Déploiement de votre image via l’espace client
Connectez-vous à l'espace client OVHcloud et rendez-vous dans la section Bare Metal Cloud puis sélectionnez votre serveur sous Serveurs dédiés.
Dans l'onglet Informations générales, cliquez sur le bouton ... à côté de « Système (OS) » puis cliquez sur Installer.

À l'étape suivante, sélectionnez Personnalisé dans le menu puis Bring Your Own Linux - byolinux et cliquez sur Suivant.

Vous allez être redirigé vers la page de configuration. Assurez-vous que l'URL de votre image est au bon format. Remplissez le reste des champs obligatoires de cette page. Une fois que vous avez confirmé que les informations sont correctes, cliquez sur Confirmer.
Vous trouverez plus de détails sur les options dans la section « options de déploiement » ci-dessous.
Pour plus d'informations et des exemples sur ConfigDrive de Cloud-Init, consultez la documentation officielle sur cette page.

Déploiement de votre image via l'API
Connectez-vous sur https://api.ovh.com/ puis rendez-vous dans la section /dedicated/server.
Le contenu de la requête API de Bring Your Own Linux (BYOLinux) doit être similaire au fichier JSON suivant :
Dans la section customizations, seul le champ imageURL est obligatoire.
Dans l'exemple ci-dessus, la valeur de imageCheckSum a été masquée, car elle change régulièrement à chaque reconstruction de l’image cible.
Même si le configDrive user data peut être envoyé à l'API en clair directement en échappant les bons caractères, il est recommandé d'envoyer à l'API le script encodé en base64 en utilisant par exemple la commande UNIX/Linux suivante :
Voici le configDrive user data en clair avec l'exemple ci-dessus :
Une fois les champs complétés, démarrez le déploiement en cliquant sur Execute.
Options de déploiement
| Champ | Description | Obligatoire |
|---|---|---|
| customizations/hostname | Le hostname | ❌ |
| customizations/sshKey | La clé publique SSH | ❌ |
| customizations/imageURL | L'URL de votre image Linux | ✅ |
| customizations/imageCheckSum | Checksum de votre image | ❌ |
| customizations/imageCheckSumType | Type de checksum de votre image (md5, sha1, sha256, sha512) | ❌ (sauf si checksum fourni) |
| customizations/configDriveUserData | Contenu de votre fichier configDrive¹ | ❌ |
| customizations/configDriveMetadata | Métadonnées Cloud-Init personnalisées | ❌ |
| customizations/httpHeaders?Key | Clé des en-têtes HTTP | ❌² |
| customizations/httpHeaders?Value | Valeur des en-têtes HTTP | ❌² |
| userMetadata/efiBootloaderPath | Le chemin du bootloader EFI | ✅³ |
¹ Il peut s'agir d'un #cloud-config ou d'un script. Sa représentation JSON doit être sur une seule ligne avec \n pour les retours à la ligne, car les chaînes JSON ne peuvent pas contenir de retours à la ligne littéraux.
² À utiliser uniquement si vous avez besoin d'en-têtes HTTP, tels que Basic Auth
³ Le chemin du bootloader EFI est utilisé par iPXE pour démarrer votre système d'exploitation. Pour plus d'informations, consultez notre guide « Comprendre le processus de démarrage des serveurs dédiés ». Exemples :
Les chemins ci-dessous utilisent l'échappement JSON : \\ représente un seul antislash. Par exemple, \\efi\\debian\\grubx64.efi correspond au chemin \efi\debian\grubx64.efi.
| Système d'exploitation | efiBootloaderPath |
|---|---|
| Debian | \\efi\\debian\\grubx64.efi |
| Ubuntu | \\efi\\ubuntu\\grubx64.efi |
| Windows | \\efi\\microsoft\\boot\\bootmgfw.efi |
| FreeBSD | \\efi\\FreeBSD\\loader.efi |
| Alma | \\efi\\almalinux\\shimx64.efi |
| Arch Linux | \\efi\\arch\\grubx64.efi |
| Gentoo | \\efi\\boot\\bootx64.efi |
La partition ConfigDrive est utilisée par cloud-init lors du premier démarrage du serveur afin d'appliquer vos configurations. Vous pouvez choisir d'utiliser la partition par défaut ou une partition personnalisée (en utilisant configDriveUserData).
Les erreurs clients fréquentes
Le tableau suivant donne un aperçu des erreurs clients les plus connues et de la manière de les corriger.
| Message d'erreur | Détails | Solution(s) |
|---|---|---|
| Please provide checkSum AND checkSumType or none of them | Vous avez précisé l'un des 2 champs parmi : imageCheckSum et imageCheckSumType. | Précisez les 2 valeurs ou aucune d'entre elles. |
image provided format is x which does not match expected qcow2 format | Peu importe l'extension du fichier, son format réel doit être qcow2. | Convertissez votre image au format qcow2. |
image provided has a size of n bytes which is larger than device of m bytes | L'image spécifiée a une taille supérieure à celle du disque choisi pour l'installation. | - Si votre serveur possède plusieurs grappes de disques, vous pouvez réessayer une installation sur une autre grappe de disques à l'aide de l'argument diskgroupid.- Vous devez réduire la taille de votre image. |
| Could not download, qcow2 image is too big to download in memory. | Il n'y a pas assez d'espace en RAM pour télécharger l'image. | Réduisez la taille de votre image. |
Could not download image: <message d'erreur> | Impossible de télécharger l'image depuis imageURL. | Vérifiez qu'un téléchargement avec curl depuis votre serveur en rescue fonctionne. Si des en-têtes HTTP sont requis, vous devez les spécifier à l'aide des paramètres httpHeaders. |
Bad checkSumType for downloaded file, got : n while expecting m. | Le checksum est incorrect. | - Assurez-vous de spécifier le bon checksum - Vérifiez qu'un téléchargement avec curl depuis votre serveur en rescue fonctionne. |
Voir la section « erreurs clients fréquentes » de la page API OVHcloud et Stockage pour les erreurs spécifiques au partitionnement.
Aller plus loin
BYOLinux sur GitHub - Exemples et documentation approfondie
API OVHcloud et installation d'un OS
Comparaison entre Bring Your Own Image (BYOI) et Bring Your Own Linux (BYOLinux)
Comprendre le processus de démarrage des serveurs dédiés
Échangez avec notre communauté d'utilisateurs.