ADD MAJ backup

master
Alexandre LUCAZEAU 2022-12-15 17:25:33 +01:00
parent 4ecaa82ef2
commit 465716f46c
No known key found for this signature in database
GPG Key ID: 3C8ADB07A8217BD3
2 changed files with 116 additions and 8 deletions

View File

@ -1,7 +1,7 @@
---
Date: 2022-10-13
Author: Alexandre LUCAZEAU
Title: Nixos faire une image pour Proxmox
Title: "Nixos : faire une image pour Proxmox"
Slug:
categories: Nixos
Tags:
@ -9,22 +9,69 @@ Tags:
- 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
Ajouter --configuration filename.nix pour ajouter des choses à l'image
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
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/
Créer une VM à partir de l'image
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 : clooud-init peut être activé via : services.cloud-init.network.enable = true;
o
resize2fs /dev/vda1
parted /dev/vda
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

View File

@ -0,0 +1,61 @@
---
date: 2022-12-15
author: Alexandre LUCAZEAU
title: Faire ses sauvegardes dans un storage boxe de chez Hetzner
tags:
- nixos
- restic
- sftp
- storage boxes
- hetzner
- oneprovider
categories :
- nixos
draft: false
description : "Faire ses sauvegardes dans un storage boxe de chez Hetzner"
---
En juillet j'ai fais un article sur la mise en place de sauvegardes via **restic** et **restic server**.
Les sauvegardes fonctionnaient à merveille. Le serveur était un petit dédié à base d'atom et 1To d'espace disque que je louais chez OneProvider. Il s'agissait en réalité d'une petite dedibox.
L'OS était donc **nixos** et cette semaine j'ai voulu la passer en version 22.11
La montée de version s'est bien passée, j'ai juste eu besoin de corriger la configuration de **caddy**. Suite à cette mise à jour majeur, j'ai fait un reboot et .... rien.
Le serveur n'a jamais redémarré, et rien via l'ipmi. Je contact le support et quelques heures après on m'annonce que le serveur est mort et qu'ils n'ont pas de machines de secours.
On me propose un remboursement, soit. Le plus étrange c'est que j'ai eu exactement la même chose à l'automne avec un autre petit serveur à 5€/mois.
C'est pas un drame, mais la pratique commerciale est un peu fumeuse. Le vrai problème c'est que j'avais plus de sauvegarde :/
Après une recherche, je découvre l'offre de Hetzner pour des **storages boxes**. Le tarif est top (compter 3.84€/mois) pour un espace de stockage de 1To.
Le processus de souscription est simple, accessible à tous et en 5 minutes l'espace de stockage est dispo. Il est accessible de plein des manières, comme du borg backup en version 1.2, du ssh et du webdav.
Pour le sftp (ou ssh) il faut changer le port par défaut, pour le port 23. La doc est très bien faite.
Que faire alors pour changer ma configuration et faire des sauvegardes, toujours via restic ?
La première étape c'est de copier votre clé ssh sur le **storage boxe** pour avoir une connexion sans mdp :
cat .ssh/id_ed25519.pub | ssh -p23 u3297xx@u3297xx.your-storagebox.de install-ssh-key
Puis dans le **configuration.nix** on ajoute la configuration de connexion pour le **/etc/ssh/ssh_config**
programs.ssh.extraConfig = "Host u3297xx.your-storagebox.de\n Hostname u3297xx.your-storagebox.de\n Port 23\n user u3297xx\n IdentityFile /home/alexandre/.ssh/id_ed25519";
Seconde étape la configuration de restic, ou l'on passe d'un localbackup à un remote, soit :
remotebackup = {
initialize = true; # crée le repo s'il existe pas
passwordFile = "/run/restic_pass"; # mot de passe pour accéder au repo, voir article précédent
paths = [ "/var/lib/nextcloud/data/" "/var/backup/postgresql" ]; # ce que nous allons sauvegarder
repository = "sftp:u329746@u329746.your-storagebox.de:/home/Nextcloud"; # ou se fait la sauvegarde, ici dans un dossier Nextcloud sur le storage boxe
# Configuration de la périodicité des sauvegardes, cela cré un timer
timerConfig = {
OnCalendar = "02:05";
RandomizedDelaySec = "5h";
};
};
Un petit `sudo nixos-rebuild switch` après et la sauvegarde est de nouveau opérationnelle, enjoy :-)