Utiliser votre propre cloud-init lors de l'installation de votre VPS
Lors de l'installation ou de la réinstallation de votre VPS, vous pouvez fournir votre propre fichier cloud-init. Votre VPS l'exécute lui-même au premier démarrage : il installe vos paquets, crée vos utilisateurs et exécute vos commandes. Vous n'avez besoin ni d'API ni de terminal.
1. Ouvrir le champ
- Connectez-vous à Mon WebOké, allez dans Mes produits et cliquez sur votre VPS.
- Nouveau VPS : vous voyez le bloc Installez votre VPS. Réinstallation : choisissez l'onglet Avancé et, sous Réinstaller, cliquez sur Réinstaller....
- Choisissez le système d'exploitation et saisissez le mot de passe root ainsi que, le cas échéant, votre clé SSH.
- Sous la clé SSH, cliquez sur cloud-init personnalisé et collez votre fichier dans le champ.
- Cliquez sur le bouton d'installation ou sur Tout effacer et réinstaller.
2. Que peut contenir le fichier ?
- Un fichier commençant par
#cloud-config(paramètres en YAML) ou un script commençant par#!.#cloud-boothooket## template: jinjafonctionnent également. - 256 KB maximum, et uniquement du texte (UTF-8).
- En YAML, l'indentation se fait avec des espaces, jamais avec des tabulations.
- Le réseau (IPv4 et IPv6) est géré par WebOké. Un network-config personnalisé n'est pas pris en compte.
3. Un exemple
Ce fichier installe htop et fail2ban, crée l'utilisateur anna avec une clé SSH et sudo, puis exécute une commande :
#cloud-config
hostname: web1
fqdn: web1.example.com
package_update: true
packages:
- htop
- fail2ban
users:
- default
- name: anna
shell: /bin/bash
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
- ssh-ed25519 AAAAC3Nza... anna@laptop
runcmd:
- timedatectl set-timezone Europe/Amsterdam
Remplacez la clé par votre propre clé publique. Cet exemple est destiné à Debian et Ubuntu : sur AlmaLinux et Rocky Linux, installez htop et fail2ban via runcmd, après dnf install -y epel-release.
4. Qu'est-ce qui est prioritaire ?
WebOké transmet lui-même le nom d'hôte, le mot de passe root (sous forme de hash) et votre clé SSH. Votre fichier est fusionné avec ces données. Si vous définissez vous-même users, password, chpasswd ou ssh_authorized_keys, ce sont vos valeurs qui priment.
ssh_authorized_keys ou password au niveau supérieur, ils remplacent la clé et le mot de passe du formulaire. Ajoutez-y alors aussi la clé avec laquelle vous souhaitez vous connecter. Dans users, laissez la ligne - default en premier.5. Vérifier que tout a fonctionné
cloud-init s'exécute une seule fois, au premier démarrage de votre VPS. Connectez-vous ensuite et vérifiez :
cloud-init status --longaffichestatus: donesi tout a réussi, ouerroravec l'erreur.- La sortie de vos paquets, commandes et scripts se trouve dans
/var/log/cloud-init-output.log. Les détails se trouvent dans/var/log/cloud-init.log. - Avec
sudo cloud-init schema --system, vous vérifiez votre fichier. Si le YAML n'est pas correct, cloud-init ignore certaines parties.
Bon à savoir
- Cela fonctionne avec tous les systèmes d'exploitation de la liste : Ubuntu 24.04 et 26.04, Debian 12 et 13, AlmaLinux 9 et 10 et Rocky Linux 9 et 10.
- Votre fichier est transmis de manière chiffrée et n'est pas conservé dans l'historique des tâches de votre VPS. N'y placez toutefois aucun secret dont vous n'avez pas besoin.
- Un VPS est non géré (unmanaged). Le support n'apporte pas d'aide sur le contenu de votre cloud-init. Toutes les possibilités sont décrites sur docs.cloud-init.io.
Explications détaillées avec davantage d'exemples : cloud-init personnalisé : configurer automatiquement votre VPS au premier démarrage dans le manuel VPS.
Voir aussi : Associer votre propre ISO ou réinstaller votre VPS et Se connecter à votre VPS avec SSH (et créer une clé SSH).
