API OVHcloud et installation d'un OS
Objectif
Pour de nombreux cas d'usage, il peut s'avérer intéressant d'automatiser l'installation ou la réinstallation d'un système d'exploitation de vos serveurs dédiés à l'aide de l'API OVHcloud.
Prérequis
- Un serveur dédié dans votre compte OVHcloud
- Avoir accès à l'API OVHcloud
Une nouvelle installation effacera l'intégralité des données présentes sur le serveur.
En pratique
Compatibilité OS
Connectez-vous sur https://api.ovh.com/ puis rendez-vous dans la section /dedicated/server.
Pour lister tous vos serveurs dédiés :
Vous pouvez lister les OS compatibles pour un serveur donné en utilisant l'appel suivant :
Regardez la liste retournée sous la clef ovh : il s'agit de la liste des OS du catalogue OVHcloud que vous pouvez installer.
Informations détaillées sur les OS
En allant dans la section /dedicated/installationTemplate, vous pouvez afficher les détails d'un OS en particulier :
Vous y trouverez des informations pertinentes comme par exemple :
| Attribut | Description |
|---|---|
| distribution | Nom de l'OS |
| description | Nom officiel d'affichage de l'OS |
| endOfInstall | Date de fin de disponibilité de l'OS dans le catalogue des OS OVHcloud¹ |
| usage,category,family | Usage, catégorie, et famille d'OS |
| project/os | Informations de l'OS sur la gouvernance, la version, les notes de version et l'URL du projet |
| project/usage | Idem que project/os, mais sur la couche logicielle si applicable |
| license/os | Informations de l'OS sur la licence : URL du contrat de licence et type de licence |
| license/usage | Idem que license/os, mais sur la couche logicielle si applicable |
| filesystems | Liste des systèmes de fichiers compatibles |
| softRaidOnlyMirroring,lvmReady | Compatibilité ou non avec les raids matériels, logiciels et le LVM² |
| inputs | Liste des questions spécifiques de l'OS (voir explication ci-dessous) |
¹ Les clients n'utilisant pas les images du catalogue OVHcloud (installation via une image personnalisée (BYOI/BYOLinux), installation par le réseau, ou manuellement avec l'IPMI) ne sont pas concernés par cette limitation.
² Pour plus d'informations, reportez-vous à la page personnaliser le partitionnement.
Si vous avez besoin d'obtenir toutes ces informations pour tous les OS disponibles dans le catalogue en un seul appel, nous vous recommandons d'utiliser plutôt l'appel /dedicated/installationTemplate/templateInfos ci-dessous.
Questions spécifiques des OS
Certains OS peuvent avoir une liste de questions spécifiques. Si c'est le cas, la clef inputs contient une liste de questions.
Exemple de valeurs pour la clef inputs pour Debian 12 (Bookworm) :
Exemple de valeurs pour la clef inputs pour Windows Server 2022 Standard (Core) :
Chaque question a les attributs suivants :
| Attribut | Description |
|---|---|
| default | Si cette question n'obtient pas de réponse, la valeur par défaut sera utilisée |
| mandatory | Si cette question est obligatoire¹ |
| type | Le type de valeur attendue dans la réponse |
| name | Le nom de la question qui permet d'identifier la question (en anglais uniquement) |
| description | La description de la question (en anglais uniquement) |
| enum | Les valeurs possibles (uniquement applicable si le type est enum) |
¹ Si une question obligatoire ne possédant pas de valeur par défaut est laissée sans réponse, alors l'API retournera une erreur.
Lancer et suivre la demande de réinstallation
Lorsque vous avez rassemblé toutes les informations nécessaires, vous pouvez lancer la réinstallation de l'OS, en utilisant l'appel suivant :
Avec les paramètres suivants :
| Paramètre | Valeur | Requis |
|---|---|---|
| serviceName | Le nom de votre serveur | ✅ |
| operatingSystem | Le nom de l'OS à installer | ✅ |
| customizations | Personnalisation de la réinstallation OS | ⚠️¹ |
| storage | Configuration du stockage de la réinstallation OS | ❌ |
¹ Spécifique au système d'exploitation, certaines personnalisations peuvent être requises dans certains cas.
customizations contient une hash avec les réponses aux questions spécifiques à l'OS : la clé de la hash doit contenir le nom (name) de la question et sa valeur doit contenir la réponse à la question, dans le format qui correspond au type requis.
storage contient la configuration liée aux disques & RAID matériels, partitions, RAID logiciels, LVM, ZFS, etc. Voir API OVHcloud et Stockage pour plus de détails.
Exemple d'un payload pour installer Linux
Ce payload permet d'installer Debian 12 (Bookworm) avec une clé SSH publique et un script bash de post-installation.
Même si le script de post-installation 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 script bash de post-installation en clair avec l'exemple ci-dessus :
Pour les OS UNIX/Linux, vous pouvez fournir des scripts dans le language de programmation de votre choix (sous réserve que l'environnement d'exécution soit installé sur l'OS cible), à condition de mettre le shebang approprié.
Exemple d'un payload pour installer Windows
Ce payload permet d'installer Windows Server 2022 Standard (Core) en français avec un script PowerShell de post-installation.
Même si le script de post-installation 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 Powershell suivante :
Voici le script PowerShell de post-installation en clair avec l'exemple ci-dessus :
Comme vous pouvez le constater, le script PowerShell pour Windows est similaire à l'exemple ci-dessus de script bash pour Linux.
Pour les OS Windows, vous pouvez fournir des scripts PowerShell ou batch. Si vous souhaitez fournir un script batch, vous devez le préciser en spécifiant la valeur cmd à la clé postInstallationScriptExtension dans le payload customizations.
Lors de l'exécution du script de post-installation Windows, les fichiers suivants persistent :
- Le script lui-même :
c:\ovhupd\script\custrun.ps1(ouc:\ovhupd\script\custrun.cmdsi script batch). - Le fichier de logs du script:
c:\ovhupd\script\customerscriptlog.txt.
Le script Windows de post-installation est exécuté avec le compte local Administrator. Vous pouvez terminer votre script de post-installation avec la commande shutdown /l afin de fermer la session Windows, bien que le compte local Administrator soit verrouillé et ne soit pas accessible à distance (via une connexion RDP).
Exemple de retour
123456789 correspond à l'identifiant de la tâche de réinstallation de l'OS. Vous pouvez suivre l'état d'avancement global de la tâche à l'aide de l'appel suivant :
Vous pouvez aussi avoir un état détaillé de chaque étape de la réinstallation grâce à l'appel suivant :
Changer le chemin du bootloader efi
Une valeur de bootloader efi est mise par défaut lorsque vous installez à partir d'un template OVHcloud, mais vous avez la possibilité de la modifier.
Vous pouvez récupérer le chemin par défaut à l'aide de cet appel :
Et vous pouvez le modifier grace à l'appel suivant :
Aller plus loin
Premiers pas avec un serveur dédié
Premiers pas avec un serveur dédié Kimsufi, So You Start ou Rise
Bring Your Own Linux (BYOLinux)
Échangez avec notre communauté d'utilisateurs.