This repository has been archived on 2025-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
content_atlanticaweb.fr/post/Nixos/nixos-proxmox.md

78 lines
3.0 KiB
Markdown
Raw Normal View History

2022-10-13 19:29:39 +00:00
---
Date: 2022-10-13
Author: Alexandre LUCAZEAU
2022-12-15 16:25:33 +00:00
Title: "Nixos : faire une image pour Proxmox"
2022-10-13 19:29:39 +00:00
Slug:
categories: Nixos
Tags:
- nixos
- virtualisation
- nixos-option
---
2022-12-15 16:25:33 +00:00
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.
2022-10-13 19:29:39 +00:00
# Créer une image à intégrer à Proxmox
2022-12-15 16:25:33 +00:00
La première étape consite à créer sur son poste un image de VM au format **Proxmox**
2022-10-13 19:29:39 +00:00
nix --extra-experimental-features nix-command --extra-experimental-features flakes run github:nix-community/nixos-generators -- --format proxmox
2022-12-15 16:25:33 +00:00
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.
2022-10-13 19:29:39 +00:00
2022-12-15 16:25:33 +00:00
Copier l'image générée sur le proxmox :
2022-10-13 19:29:39 +00:00
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/
2022-12-15 16:25:33 +00:00
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 :
2022-10-13 19:29:39 +00:00
qmrestore /var/lib/vz/dump/vzdump-qemu-nixos-22.05.3010.dd1f4d98244.vma.zst 101 --unique true
2022-12-15 16:25:33 +00:00
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