hcornet eec19fbf9d
Terraform - plan / plan (push) Successful in 13s
config vm
2026-09-16 10:27:07 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:25:03 +02:00
2026-09-16 10:20:58 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:27:07 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00
2026-09-16 10:16:01 +02:00

terraform-proxmox-serveur-ubuntu-24-04

Crée sur le nœud Proxmox pve une VM Ubuntu Server 24.04 LTS réduite au strict nécessaire, durcie par cloud-init, et prête à être reprise par Ansible.

Jumeau du dépôt terraform-proxmox-serveur-debian-12 : même structure, mêmes conventions, même CI/CD. Seules la distribution et les quelques points où elle diffère de Debian ont changé.

Ce que le code met en place

Point Choix retenu
Système Ubuntu Server 24.04 LTS cloudimg (image officielle Canonical)
Comptes comptes unix sans mot de passe, sudo NOPASSWD absent, clé publique uniquement
root joignable en SSH par clé seulement, mot de passe réservé à su - et à la console
sudo neutralisé par dpkg-statoverride (voir COMPTES.md)
Services exposés 22/tcp et ICMP uniquement, et seulement depuis ssh_allowed_cidrs
Pare-feu nftables, politique drop en entrée et en transit, avec /etc/nftables.d/ pour les ajouts d'Ansible
Mises à jour unattended-upgrades activé
Agent qemu-guest-agent

Le compte ubuntu livré par l'image n'est jamais créé, et son fichier sudoers est retiré.

Une VM par fichier

Un fichier vms/<nom>.tfvars et un espace de travail Terraform par machine, chacune avec son propre état. Tout est décrit dans VMS.md.

Attention aux collisions avec le dépôt Debian, qui gère déjà la VM 120 en 10.0.5.20 : vm_id, vm_hostname et vm_ipv4_address doivent être uniques sur l'infrastructure, et rien ne le vérifie automatiquement.

Prérequis

Identiques à ceux du dépôt Debian, et déjà en place sur votre nœud :

  1. jeton d'API Proxmox avec VM.*, Datastore.*, Sys.Audit et SDN.Use ;
  2. accès SSH au nœud, le dépôt du snippet cloud-init ne passant pas par l'API ;
  3. contenu snippets et import activés sur le stockage local ;
  4. adresse IP exclue de la plage DHCP d'OPNsense.

La CI et les secrets sont décrits dans CICD.md.

Après l'apply

terraform apply produit la VM démarrée, qui exécute cloud-init pendant 3 à 6 minutes, et generated/<nom>-inventory.yml pour Ansible.

ssh [email protected] "cloud-init status --wait; command -v sudo || echo 'sudo absent'; sudo -n true 2>&1 | head -1"

sudo existe toujours en tant que fichier, mais son exécution est refusée à tout le monde. C'est la seconde commande qui le vérifie.

Points d'attention

  • cloud-init ne rejoue rien. Modifier le template après création ne change pas une VM existante. Pour repartir propre : destroy puis apply.
  • Extension de l'image. Canonical publie son image cloud en .img alors qu'il s'agit d'un qcow2. Le contenu import de Proxmox n'accepte pas cette extension : le fichier est donc renommé en .qcow2 au téléchargement, sans conversion.
  • Clés d'hôte. Chaque recréation en change : prévoir ssh-keygen -R <ip>.
S
Description
Installation d'un serveur Ubuntu sur proxmox
Readme
56 KiB
0 Stars 3 Watchers 0 Forks
Languages
HCL 87.7%
Shell 12.3%