Aller au contenu

Commandes Just

Les commandes ci-dessous sont toutes exécutées avec just 🡕.

Utilisation
just <commande> <arguments>

Chaque commande est préfixée d’une icône indiquant son contexte d’utilisation :

  • 💠 Commun : disponible dans le projet comme dans le framework.
  • 🔆 Framework : spécifique au framework DNF amont (dnf/).
  • ✳️ Projet : spécifique au projet consommateur (mon réseau).

Ces commandes travaillent sur tous les dépôts du projet (par défaut src/*/, dnf, doc, et la racine). L’alias court est g.

Exécute n’importe quelle commande git sur un ou tous les projets.

Fenêtre de terminal
just git "log --oneline -5" # derniers commits de tous projets
just git "status" dnf # git status sur dnf/ seulement
just git "remote -v" # remotes de tous les projets

add -A + commit -m sur un ou tous les projets. Si le message est identique au dernier commit, la recette amende au lieu de créer un nouveau commit.

Fenêtre de terminal
just commit "fix(net): update dns config"
just commit "fix(net): update dns config" dnf # dnf/ seulement

Ajoute les modifications en cours au dernier commit (--no-edit, --allow-empty).

Fenêtre de terminal
just amend

Affiche le statut git d’un ou tous les projets.

Fenêtre de terminal
just status

Affiche le diff git d’un ou tous les projets.

Fenêtre de terminal
just diff

Vérifie la présence d’une branche amont et de commits en avance avant de pousser.

Fenêtre de terminal
just push

Tire les dernières modifications d’un ou tous les projets.

Fenêtre de terminal
just pull

Affiche le dernier message de commit de tous les projets, formaté et aligné.

Fenêtre de terminal
just git-last-log

Affiche la liste des dépôts sur lesquels les commandes git itèrent.

Fenêtre de terminal
just git-show-repos

Met à jour les entrées flake de dnf/ puis de la racine. Si le dernier commit de dnf/ est déjà un update(flake):, il l’amende.

Fenêtre de terminal
just update-flake

Synchronise flake.lock avec le HEAD local de dnf/ (co-développement).

Fenêtre de terminal
just update-dnf

Ces commandes aident à maintenir le code, générer les fichiers déclaratifs et travailler sur le générateur Rust.

Lance nix develop -c zsh pour obtenir un shell avec les outils du projet.

Fenêtre de terminal
just develop

Exécute la chaîne complète : fixcheckgenerateformat_fix_fs_permissions.

Fenêtre de terminal
just clean

Lance treefmt sur tous les fichiers avec la config partagée du framework.

Fenêtre de terminal
just format

Corrige automatiquement les problèmes détectés par statix.

Fenêtre de terminal
just fix

Régénère les default.nix des dossiers de modules ainsi que les fichiers var/generated/*.nix depuis etc/config.yaml.

Fenêtre de terminal
just generate

Construit le binaire du générateur (src/generator/).

Fenêtre de terminal
just gen-build

Lance les tests unitaires du générateur.

Fenêtre de terminal
just gen-test

Enchaîne cleanamendapply-local (ou apply-verbose <hôte>).

Fenêtre de terminal
just cat # applique en local
just cat myserver # applique sur myserver

Lancez ces vérifications avant de déployer pour détecter les régressions.

Lance deadnix récursivement sur tous les fichiers *.nix.

Fenêtre de terminal
just check

Lance nix flake check en filtrant les avertissements connus des outputs non standards de DNF (colmena, colmenaHive, homeManagerModules, libTests).

Fenêtre de terminal
just check-flake

Analyse statique du code Nix avec statix.

Fenêtre de terminal
just check-statix

Enchaîne les tests unitaires DNF, la vérification du flake DNF et la vérification du flake réseau.

Fenêtre de terminal
just check-all

Lance nix-unit sur .#libTests.

Fenêtre de terminal
just unit-tests

Lance les scénarios de test NixOS (NixOS Test Driver).

ArgumentEffet
(vide)Liste les scénarios disponibles
allExécute tous les scénarios (nix flake check)
fullRégénère les fixtures puis exécute tout
<nom>Exécute un scénario nommé
Fenêtre de terminal
just simulate # lister
just simulate all # tout exécuter
just simulate modules-node-console-git

Lance le driver interactif d’un scénario (REPL Python).

Fenêtre de terminal
just simulate-debug modules-node-console-git

Gère les fixtures de test : génération, vérification d’absence de dérive, régénération des clés et secrets jetables.

ActionEffet
generateRégénère var/generated/ pour tous les espaces de test
checkVérifie l’absence de dérive sans modifier l’arbre
gen-secretsRégénère les clés et secrets de test (jetables)
Fenêtre de terminal
just fixtures check

L’installation d’un nouvel hôte suit un enchaînement précis.

Formate les disques via disko et installe NixOS via nixos-anywhere.

Fenêtre de terminal
just install myserver
just install myserver nixos 10.0.0.5 # IP personnalisée
just install myserver do=test # VM test uniquement

Chaîne complète : install + attente reboot + configure + apply + gc + reboot.

Fenêtre de terminal
just full-install myserver

Formate un périphérique USB avec disko et installe NixOS dessus.

Fenêtre de terminal
just install-key myusbhost

Enchaîne copy-idcopy-hwpush-key.

Fenêtre de terminal
just configure myserver

Copie la clé publique de l’utilisateur nix vers l’hôte cible.

Fenêtre de terminal
just copy-id myserver

Exécute nixos-generate-config --show-hardware-config à distance et sauvegarde le résultat dans usr/machines/<hôte>/hardware-configuration.nix.

Fenêtre de terminal
just copy-hw myserver

Transfère la clé age /etc/sops/age/infra.key vers l’hôte cible.

Fenêtre de terminal
just push-key myserver

Configure la machine d’administration : clés SSH, clés age SOPS, .sops.yaml, secrets par défaut, clé de signature Harmonia.

Fenêtre de terminal
just configure-admin-host

Construit l’image ISO du framework pour l’architecture donnée.

Fenêtre de terminal
just build-iso # x86_64-linux (défaut)
just build-iso "aarch64-linux"

L’outil de déploiement est colmena 🡕. Toutes les commandes d’application rafraîchissent d’abord le verrou DNF via update-dnf.

Déploie la configuration sur une ou plusieurs cibles.

ParamètreDescription
cibleNom d’hôte, motif ('*'), liste (a,b), tag colmena (@server)
actionswitch (défaut), boot, test, build
Fenêtre de terminal
just apply @all # tous les hôtes
just apply myserver # switch (défaut)
just apply myserver boot # boot
just apply 'db-*' # tous les hôtes commençant par db-

Idem apply avec --verbose --show-trace.

Fenêtre de terminal
just apply-verbose myserver

Applique la configuration sur la machine courante.

Fenêtre de terminal
just apply-local

Active le mode maintenance Alertmanager avant d’appliquer, le désactive après.

Fenêtre de terminal
just apply-silenced myserver

Ces commandes permettent d’interagir avec les hôtes du parc : maintenance, redémarrage, nettoyage et réparation du boot.

Ouvre une session SSH interactive en tant que nix@<hôte>.

Fenêtre de terminal
just enter myserver

Redémarre l’hôte via colmena exec.

Fenêtre de terminal
just reboot myserver
just reboot 'web-*' # tous les web-*

Arrête (poweroff) l’hôte via colmena exec.

Fenêtre de terminal
just halt myserver

Exécute nix-collect-garbage -d puis switch-to-configuration boot sur l’hôte.

Fenêtre de terminal
just gc myserver

Réinstalle le bootloader avec NIXOS_INSTALL_BOOTLOADER=1.

Fenêtre de terminal
just fix-boot myserver

Supprime .zshrc.bkp sur l’hôte cible.

Fenêtre de terminal
just fix-zsh myserver

Les mots de passe et clés sont chiffrés avec SOPS. Ces commandes les gèrent sans manipuler les fichiers chiffrés à la main.

Ouvre usr/secrets/secrets.yaml dans vim (via l’utilisateur nix).

Fenêtre de terminal
just sops

Définit le mot de passe par défaut des postes DNF (chiffré SOPS, hashé bcrypt).

Fenêtre de terminal
just passwd-default

Met à jour le mot de passe d’un utilisateur spécifique.

Fenêtre de terminal
just passwd darkone

Génère un mot de passe REST par hôte et un mot de passe de dépôt par zone.

Fenêtre de terminal
just passwd-restic

Rotation de la clé age /etc/sops/age/infra.key en 3 étapes avec vérifications d’intégrité.

ÉtapeAction
initGénère une nouvelle clé, conserve l’ancienne, rechiffre les secrets
push-keysPousse la clé combinée (nouvelle + ancienne) vers tous les hôtes
finalizeVérifie que tous les hôtes ont la nouvelle clé, supprime l’ancienne
Fenêtre de terminal
just rotate init
just rotate push-keys
just rotate finalize

Ces commandes couvrent des fonctionnalités spécifiques : provisionnement du bot d’alertes Matrix et gestion de la réplication Kanidm.

Crée ou rafraîchit le bot Matrix, le secret webhook et les salons d’alertes et d’incidents depuis la section network.matrix de config.yaml.

Fenêtre de terminal
just configure-alert-bot

Collecte les certificats de réplication Kanidm de tous les nœuds du parc vers usr/secrets/replication/.

Fenêtre de terminal
just idm-sync-certs

Analyse la santé de la réplication Kanidm sans rien modifier. Prend le nœud supplier (HCS) et la liste des consumers (gateways, séparés par des virgules).

Fenêtre de terminal
just idm-fix-replica hcs agate,gw

AliasCommande
aapply
alapply-local
avapply-verbose
cclean
ddevelop
eenter
ggit
amendgit-amend
commitgit-commit
diffgit-diff
pullgit-pull
pushgit-push
statusgit-status