Add: workflow update nixos
This commit is contained in:
parent
edb115213e
commit
309138f880
2 changed files with 111 additions and 0 deletions
58
content/posts/workflow-update-nixos-en.md
Normal file
58
content/posts/workflow-update-nixos-en.md
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
+++
|
||||||
|
date = '2025-10-13T00:00:01+02:00'
|
||||||
|
draft = false
|
||||||
|
title = 'NixOs update workflow'
|
||||||
|
+++
|
||||||
|
|
||||||
|
I update my NixOS systems once a week, on Sundays.
|
||||||
|
Gone are the days of frantic updates on Arch Linux for a package that changes twice a day!
|
||||||
|
|
||||||
|
I start on my desktop machine by updating the repositories and freezing the versions in Git.
|
||||||
|
It’s my anchor point — the one that validates a successful update.
|
||||||
|
|
||||||
|
```
|
||||||
|
nix flake update
|
||||||
|
git add flake.lock
|
||||||
|
git commit -m "FLAKE: update"
|
||||||
|
git push origin master
|
||||||
|
```
|
||||||
|
|
||||||
|
Then I update the desktop itself, with a bit of cleanup.
|
||||||
|
I keep eight days of generations, which means I always have a complete, stable version from the previous week.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin --show-trace --keep-going
|
||||||
|
nix-collect-garbage --delete-older-than 8d
|
||||||
|
sudo nix-collect-garbage --delete-older-than 8d
|
||||||
|
```
|
||||||
|
Next comes the server.
|
||||||
|
I start by pulling the flake update, then rebuild:
|
||||||
|
|
||||||
|
```
|
||||||
|
ssh dunoz@terre-neuvas
|
||||||
|
cd nixos-config
|
||||||
|
git pull
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#terre-neuvas --show-trace --keep-going
|
||||||
|
nix-collect-garbage --delete-older-than 8d
|
||||||
|
sudo nix-collect-garbage --delete-older-than 8d
|
||||||
|
```
|
||||||
|
|
||||||
|
## And if it breaks?
|
||||||
|
|
||||||
|
If an update goes wrong, I simply revert to the previous flake version on the desktop.
|
||||||
|
|
||||||
|
```
|
||||||
|
git revert HEAD
|
||||||
|
git push origin master
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin
|
||||||
|
```
|
||||||
|
|
||||||
|
Then on then server:
|
||||||
|
|
||||||
|
```
|
||||||
|
git pull
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin
|
||||||
|
```
|
||||||
|
|
||||||
|
I could use rollback, but that would create a mismatch between the Git repository and the machines — something I don’t want.
|
||||||
|
The Git repo is the sanctuary, the one that governs everything.
|
||||||
53
content/posts/workflow-update-nixos-fr.md
Normal file
53
content/posts/workflow-update-nixos-fr.md
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
+++
|
||||||
|
date = '2025-10-13T00:00:01+02:00'
|
||||||
|
draft = false
|
||||||
|
title = 'Workflow de mise à jour'
|
||||||
|
+++
|
||||||
|
|
||||||
|
Je met mes système NixOs à jour une fois par semaine, le dimanche. Fini le temps des mises à jour effrénées sous Archlinux pour un paquet 2 fois par jour !
|
||||||
|
Je commence sur ma machine desktop par mettre à jour les dépot et à figer les versions dans le git. C'est mon point d'ancrage, celui qui validera une mise à jour aboutie.
|
||||||
|
|
||||||
|
```
|
||||||
|
nix flake update
|
||||||
|
git add flake.lock
|
||||||
|
git commit -m "FLAKE: update"
|
||||||
|
git push origin master
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensuite je met à jour ma machine desktop avec un peu de nettoyage. Je le fait à 8 jours, si bien que je suis sur d'avoir la génération complète de la semaine dernière.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin --show-trace --keep-going
|
||||||
|
nix-collect-garbage --delete-older-than 8d
|
||||||
|
sudo nix-collect-garbage --delete-older-than 8d
|
||||||
|
```
|
||||||
|
Et je passe au serveur. Je commence par récupérer la version du flake et je met à jour :
|
||||||
|
|
||||||
|
```
|
||||||
|
ssh dunoz@terre-neuvas
|
||||||
|
cd nixos-config
|
||||||
|
git pull
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#terre-neuvas --show-trace --keep-going
|
||||||
|
nix-collect-garbage --delete-older-than 8d
|
||||||
|
sudo nix-collect-garbage --delete-older-than 8d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Et si ça pète ?
|
||||||
|
|
||||||
|
En cas de soucis de mise à jour, je reviens à l'ancienne version du flake sur la machine desktop.
|
||||||
|
|
||||||
|
```
|
||||||
|
git revert HEAD
|
||||||
|
git push origin master
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin
|
||||||
|
```
|
||||||
|
|
||||||
|
Et sur la machine serveur
|
||||||
|
|
||||||
|
```
|
||||||
|
git pull
|
||||||
|
sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin
|
||||||
|
```
|
||||||
|
|
||||||
|
Je pourrai rollback, mais dans ce cas, il y aurai une dissonance entre depot git et machines, ce que je ne souhaite pas.
|
||||||
|
Le depot git est le sanctuaire, celui qui régit tout.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue