Installation automatisée (answer file)¶
Objectif : installer ou réinstaller un nœud Proxmox VE 9 sans intervention, à partir d'un fichier de réponses answer.toml et de l'outil proxmox-auto-install-assistant. Résultat : des nœuds identiques (disques, réseau, fuseau, clés SSH), installés en quelques minutes, y compris pour reconstruire un nœud en panne.
Principe¶
flowchart LR
A[answer.toml] --> B[proxmox-auto-install-assistant prepare-iso]
I[ISO PVE 9.x officielle] --> B
B --> C[ISO préparée]
C -->|boot IPMI ou USB| D[pve03 : installeur automatique]
D -->|lit la réponse : ISO, partition ou HTTP| E[Installation]
E -->|option : webhook POST JSON| F[Outil d'inventaire]
Méthode (--fetch-from) |
Où est answer.toml |
Usage |
|---|---|---|
iso |
Intégré à l'ISO | Un nœud ou des nœuds identiques ; le plus simple |
partition |
À la racine d'une clé USB étiquetée PROXMOX-AIS |
Une ISO générique, une clé par nœud |
http |
Fourni par un serveur HTTPS selon l'identité de la machine | Parc important, une réponse par adresse MAC ou numéro de série |
En mode http, l'URL est intégrée à l'ISO (--url) ou découverte par l'option DHCP 250 ou l'enregistrement DNS TXT proxmox-auto-installer.<domaine>. L'empreinte du certificat suit la même logique (option DHCP 251, TXT proxmox-auto-installer-cert-fingerprint.<domaine>). L'installeur envoie au serveur les informations de la machine (affichables avec proxmox-auto-install-assistant system-info).
Avant de toucher la prod
- L'installation efface les disques cibles. Vérifier qu'aucun disque de données (OSD Ceph, pool ZFS
tank) ne correspond au filtre ou à la liste de disques. - Pour une réinstallation dans un cluster : nœud retiré proprement au préalable, voir Ajouter, retirer, réinstaller un nœud (opération MSP).
- ISO officielle PVE 9.x téléchargée et somme SHA256 vérifiée.
- Accès console IPMI pour suivre la première installation.
- Fichier
answer.tomlvalidé et testé d'abord sur une VM de lab.
Étapes¶
1. Installer l'outil sur un poste Debian ou un nœud existant¶
Le paquet provient des dépôts Proxmox VE (déjà configurés sur un nœud PVE).
2. Identifier disques et cartes réseau de la machine cible¶
Depuis la machine cible démarrée sur l'ISO (shell de debug) ou une machine identique :
proxmox-auto-install-assistant device-info -t disk
proxmox-auto-install-assistant device-match disk ID_MODEL='SAMSUNG*MZ7L3*'
3. Écrire answer.toml¶
Exemple pour pve03, boot ZFS en miroir sur deux SSD, IP fixe :
[global]
keyboard = "fr"
country = "fr"
fqdn = "pve03.corp.local"
mailto = "infra@corp.local"
timezone = "Europe/Paris"
root-password-hashed = "$6$...." # généré avec : openssl passwd -6
root-ssh-keys = ["ssh-ed25519 AAAA... equipe-infra", "ssh-ed25519 AAAA... msp"]
reboot-on-error = false
[network]
source = "from-answer"
cidr = "10.10.0.13/24"
dns = "10.10.0.1"
gateway = "10.10.0.254"
filter.ID_NET_NAME_MAC = "*3cecef1a2b3c"
[disk-setup]
filesystem = "zfs"
zfs.raid = "raid1"
disk-list = ["sda", "sdb"]
# alternative plus robuste : filter.ID_MODEL = "SAMSUNG*MZ7L3240*" (ne pas combiner avec disk-list)
Depuis PVE 9.0, les clés s'écrivent en kebab-case (root-password-hashed) ; l'ancienne forme snake_case est dépréciée. Sections optionnelles : [post-installation-webhook] (envoi d'un JSON décrivant la machine à la fin de l'installation) et [first-boot] (script exécuté au premier démarrage, par exemple pour configurer les dépôts deb822).
4. Préparer l'ISO selon la méthode¶
Puis créer sur une seconde clé une partition étiquetée PROXMOX-AIS contenant answer.toml à la racine.
proxmox-auto-install-assistant inspect-iso <iso> affiche ensuite comment une ISO a été préparée.
5. Démarrer la machine sur l'ISO¶
Monter l'ISO via IPMI (média virtuel) ou la copier sur USB (dd if=... of=/dev/sdX bs=1M conv=fdatasync). L'entrée Automated Installation est sélectionnée automatiquement après un délai.
Vérifications
pveversion # pve-manager/9.x...
zpool status rpool # mirror-0 avec les deux disques attendus, ONLINE
ip -br a show vmbr0 # 10.10.0.13/24
timedatectl | grep "Time zone" # Europe/Paris
Connexion SSH par clé fonctionnelle, GUI joignable sur https://pve03.corp.local:8006.
Rollback
L'installation est destructive : pas de retour arrière sur les disques effacés. En cas d'erreur de configuration, corriger answer.toml et relancer l'installation. Si un disque de données a été effacé par erreur : arrêter tout, ticket P1, restauration depuis PBS.
Pièges vus en support
- Filtre de disque trop large (
filter.ID_MODEL = "*") : les disques OSD ou le pool de données sont écrasés. - Noms
sda/sdbqui changent d'un démarrage à l'autre : préférer un filtre sur modèle ou numéro de série. - Mot de passe root en clair dans un
answer.tomlversionné : utiliserroot-password-hashed. - ISO préparée en mode
httpavec un jeton d'authentification : il est stocké en clair dans l'ISO. Ne pas laisser traîner l'ISO. - Nœud réinstallé puis rejoint au cluster sans nettoyage de l'ancienne entrée : conflit Corosync. Toujours passer par le MSP.
Quand ouvrir un ticket iTop
Réinstallation d'un nœud de cluster en production, ajout au cluster, configuration Ceph après installation : à confier au MSP (P3 planifié, P2 si nœud en panne). Industrialisation avec serveur HTTP de réponses : demande P4.
Pour aller plus loin¶
- Installer PVE : ISO, ZFS RAID1 boot, IPMI, post-install
- Documentation officielle : Automated Installation (wiki)