78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
---
|
|
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
|