--- Date: 2022-10-13 Author: Alexandre LUCAZEAU Title: "Nixos : faire une image pour Proxmox" Slug: categories: Nixos Tags: - nixos - virtualisation - nixos-option --- L'objectif de ce post est d'avoir une doc sur la génération d'un template de VM pour Proxmox. Nous allons voir toutes les étape pour générer un fichier de VM Nixos, l'inclure dans Proxmox, le personnaliser et le transformer en template réutilisable. # Créer une image à intégrer à Proxmox La première étape consite à créer sur son poste un image de VM au format **Proxmox** nix --extra-experimental-features nix-command --extra-experimental-features flakes run github:nix-community/nixos-generators -- --format proxmox Cette commande va générer un fichier dans le store de nix. Elle est extremement basique. Elle démarre et il y a un simple compte root sans mot de passe. Copier l'image générée sur le proxmox : scp /nix/store/6c6n1lrdc30mk6fd9d5rbhiyba8inm0c-proxmox-nixos-22.05.3010.dd1f4d98244/vzdump-qemu-nixos-22.05.3010.dd1f4d98244.vma.zst root@192.168.10.112:/var/lib/vz/dump/ Maintenant que l'image est sur notre Proxmox on peut la supprimer : nix --extra-experimental-features nix-command store gc # Transformer un fichier image en template dans Proxmox Maintenant que notre image est sur notre serveur Proxmox, nous allons créer une VM : qmrestore /var/lib/vz/dump/vzdump-qemu-nixos-22.05.3010.dd1f4d98244.vma.zst 101 --unique true Note : cloud-init peut être activé via : services.cloud-init.network.enable = true; A partir de là, nous pourrions transformer cette VM en template, mais comme il est trop basique, on va la modifier. Vous pouvez la démarrer. Lorsque la VM sera démarrée, le seul moyen d'y accéder c'est via la console, car le compte root ne possède pas de mot de passe. Perso je suis pas fan de la console série, donc je défini un mot de passe à root, puis je me connecte à la VM en SSH. On supprimera le mot de passe plus tard. ## Customisation de la VM Comme vous l'aurez remarqué, la VM ne possède pas de dossier */etc/nixos* c'est brut. On va le générer : nixos-generate-config Attention par defaut ssh est désactivé. J'ai un dépôt avec une config de "base", comme les packets que j'aime retrouver sur une VM ou simplement mon compte utilisateur : nix-shell -p git --run git clone https://git.atlanticaweb.fr/alexandre/nixos-template-PX.git Après avoir apporté vos configurations de base, on fait le ménage et on éteint la VM: rm -rf nixos-template-PX passwrd -d root nix-collect-garbage -d poweroff ## Transformation de la VM Maintenant que notre modèle est terminé, on peut le transformer en template et supprimer l'image dans **/var/lib/vz/dump/** ## Nouvelle VM Le disque par défaut fait que 2Go, ci-dessous les commandes, pour rappel, pour l'agrandir (après avoir configuré la nouvelle VM et lui avoir attribué un disque plus grand): parted /dev/vda resizepart 1 100% quit resize2fs /dev/vda1