Proxmox : Template Oraclelinux9 avec Cloud-Init

Proxmox : Template Oraclelinux9 avec Cloud-Init

Table of Contents

Cette procédure va permettre de créer un template de VM Oraclelinux 9 pour Proxmox avec Cloud-Init.

L'intérêt sera de cloner ce template, puis de pouvoir se connecter directement en ssh au 1er démarrage de la VM. Le nom d'hôte, l'adressage ip, la(es) clef(s) ssh seront configurés à l'initialisation de la VM grâce à cloud-init.

Ce template pourra éventuellement être utilisé par la suite avec une solution telle que Terraform / OpenTofu.

Création du template

  • Se connecter sur un shell root de l'hôte Proxmox pvehost :
ssh root@pvehost
  • Télécharger la dernière image cloud d'Oracle Linux :
wget https://yum.oracle.com/templates/OracleLinux/OL9/u4/x86_64/OL9U4_x86_64-kvm-b234.qcow2
  • Installer libguestfs-tools si nécessaire et ajouter qemu-guest-agent à l'image cloud précédemment téléchargée :
apt install -y libguestfs-tools
virt-customize -a OL9U4_x86_64-kvm-b234.qcow2 --install qemu-guest-agent
  • Créer une VM avec l'ID 666 qui sera le template :
qm create 666 --name oraclelinux9-cloudinit --net0 virtio,bridge=vmbr1 --scsihw virtio-scsi-single

virtio-scsi-single va permettre d'activer le paramètre "iothread" pour une meilleure gestion des inputs ouputs dans ce cas.

Elle sera nommée oraclelinux9-cloudinit et la 1ère carte réseau sera rattachée au vmbr1 du serveur Proxmox.

  • Ajouter un nouveau disque dur importé depuis l'image cloud :
qm set 666 --scsi0 local:0,iothread=1,backup=off,format=qcow2,import-from=/root/OL9U4_x86_64-kvm-b234.qcow2
  • Définir le disque dur en 1er boot sur la VM :
qm set 666 --boot order=scsi0
  • Définir le nombre de coeurs et la mémoire RAM de la VM :
qm set 666 --cpu host --cores 2 --memory 4096
  • Attacher un disque Cloud-Init à la VM :
qm set 666 --ide2 local:cloudinit
qm set 666 --agent enabled=1
  • Ajuster les paramètres dans les options Cloud-Init qui figureront dans le template (si nécessaire) :

image-20240531214220236

Ces options sont disponibles dans la WebUI du serveur Proxmox au niveau de la VM.

Plus de détails ici https://pve.proxmox.com/wiki/Cloud-Init_Support sur les différents paramétrages.

  • Convertir la VM en template :
qm template 666

Utilisation du template

  • Cloner entièrement le template en VM.

image-20240531214417948

  • Ajuster les paramètres Cloud-Init de la VM si nécessaire.
  • Démarrer la VM et récupérer l'IP (si nécessaire) :

image-20240531222714404

  • Se connecter en SSH sur la VM avec la clef ssh renseignée dans cloud-init :
julien@mypc:~$ ssh -i .ssh/demo admin@172.16.20.23
...
[admin@ol9-cloudinit ~]$ sudo -l
Matching Defaults entries for admin on ol9-cloudinit:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY
    HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User admin may run the following commands on ol9-cloudinit:
    (ALL) NOPASSWD: ALL
Les commentaires sont fermés.