NETbian
NETbian est un outil de provisioning pour Debian 13 base sur une architecture profiles + roles.
Chaque profil compose une suite de roles fonctionnels. Un role regroupe au meme endroit :
- ses paquets
- sa configuration APT eventuelle
- ses actions d'installation
- sa configuration systeme
- ses actions finales eventuelles
Le projet est pense pour rester idempotent : un second passage doit converger vers l'etat attendu au lieu de casser la machine.
Profils disponibles
cliserverdesktopdevel
Les profils sont definis dans profiles/ et peuvent etre listes avec :
./run.sh --list-profiles
Roles disponibles
Le depot contient actuellement les roles suivants :
basecodiumdesktopdeveldockerfirewallserverzram
Ils peuvent etre listes avec :
./run.sh --list-roles
Structure du depot
netbian/
├── run.sh
├── roles.sh
├── lib.sh
├── profiles/
│ ├── cli.sh
│ ├── desktop.sh
│ ├── devel.sh
│ └── server.sh
├── roles/
│ ├── base/
│ ├── codium/
│ ├── desktop/
│ ├── devel/
│ ├── docker/
│ ├── firewall/
│ ├── server/
│ └── zram/
└── config/
Convention d'un role
Un role peut contenir les fichiers suivants :
packages.list: paquets du rolerepo.sh: ajout de depots / cles APTinstall.sh: installation specifiqueconfig.sh: configuration systemerun.sh: actions finales du rolel10n.packages: mappings de paquets localisesrules.<suffix>.list: regles declaratives UFW pour le role firewall
Tous ces fichiers sont optionnels. Le moteur execute uniquement ceux qui existent.
Profils fournis
cli
Provisioning minimal en ligne de commande :
ROLE_ORDER=(base zram)
server
Machine orientee services :
ROLE_ORDER=(base firewall server zram docker)
desktop
Poste utilisateur graphique :
ROLE_ORDER=(base desktop firewall zram)
devel
Poste de developpement :
ROLE_ORDER=(base desktop firewall zram docker codium devel)
Installation
git clone https://git.netig.net/netig/netbian.git
cd netbian
sudo ./run.sh --profile devel
Utilisation
Usage: run.sh [options]
Options:
-p, --profile <server|desktop|devel|cli> Profile to install (required)
-l, --lang <code> Language code if translations are needed (e.g. fr, es, de)
--config <path> Config file path (default: /etc/netbian.conf)
--list-profiles List available profiles and exit
--list-roles List available roles and exit
-h, --help Show this help
Exemples :
sudo ./run.sh --profile server
sudo ./run.sh --profile devel --lang fr
sudo ./run.sh --config /root/netbian.conf --profile desktop
NETBIAN_PROFILE=server sudo -E ./run.sh
./run.sh --list-profiles
./run.sh --list-roles
Configuration
run.sh lit et met a jour un fichier de configuration shell simple, par defaut :
/etc/netbian.conf
Variables gerees actuellement :
profile=devel
lang=fr
Priorite de resolution :
- options CLI (
--profile,--lang,--config) - variables d'environnement (
NETBIAN_PROFILE,NETBIAN_LANG,NETBIAN_CONFIG_FILE) - fichier de configuration cible
- absence de valeur -> erreur si
profilereste non defini
Le meme chemin de configuration est ensuite reutilise par roles.sh.
Logs d'execution
NETbian utilise des logs simples pour le moteur d'orchestration :
[RUN]: etape lancee[OK]: etape executee avec succes[SKIP]: etat deja conforme ou etape vide[INFO]: information de progression[WARN]: situation non bloquante
Les scripts de roles peuvent aussi ecrire leurs propres messages metier, mais la recommandation est d'utiliser les helpers centralises pour garder des traces homogenes.
Choix d'architecture pour un niveau infra mature
- Firewall centralise : seules les listes
roles/firewall/rules.*.listdefinissent les ouvertures UFW. - Validation stricte : les roles, manifests et le fichier de configuration sont verifies avant execution.
- Resume de run :
roles.shimprime un recapitulatif des roles, etapes executees, sautees et en echec. - Precedence explicite : la resolution de la configuration est documentee et stable.
Particularites importantes
run.shexige les droitsroot.- Le projet verifie qu'il tourne sur Debian 13.
- Un test reseau HTTP est effectue avant provisioning en utilisant
curlpuiswget. - Le role
firewallapplique des reglesufwa partir de fichiers declaratifs. - Le role
serverecrit une configuration SSH dediee puis tente de rechargerssh/sshdsi le service existe. - Le role
codiuminstalle VSCodium, ses extensions et la configuration utilisateur si un utilisateur cible est detecte. - Les paquets localises eventuels sont ajoutes a partir de la variable
langde la configuration active.
Validation rapide
Avant livraison, au minimum :
bash -n run.sh roles.sh lib.sh roles/*/*.sh profiles/*.sh
./run.sh --list-profiles
./run.sh --list-roles
Pour une validation production complete, il reste recommande de tester le provisioning sur une Debian 13 fraiche pour verifier le comportement reel des roles et des services.
Resume d execution
Steps executedcompte les etapes ayant effectue une action.Steps skippedcompte les etapes entierement conformes ou sautees par l'orchestrateur.Skip eventscompte tous les messages[SKIP]emis pendant l'execution.