2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00
2026-03-15 19:58:46 +01:00

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

  • cli
  • server
  • desktop
  • devel

Les profils sont definis dans profiles/ et peuvent etre listes avec :

./run.sh --list-profiles

Roles disponibles

Le depot contient actuellement les roles suivants :

  • base
  • codium
  • desktop
  • devel
  • docker
  • firewall
  • server
  • zram

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 role
  • repo.sh : ajout de depots / cles APT
  • install.sh : installation specifique
  • config.sh : configuration systeme
  • run.sh : actions finales du role
  • l10n.packages : mappings de paquets localises
  • rules.<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 :

  1. options CLI (--profile, --lang, --config)
  2. variables d'environnement (NETBIAN_PROFILE, NETBIAN_LANG, NETBIAN_CONFIG_FILE)
  3. fichier de configuration cible
  4. absence de valeur -> erreur si profile reste 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.*.list definissent les ouvertures UFW.
  • Validation stricte : les roles, manifests et le fichier de configuration sont verifies avant execution.
  • Resume de run : roles.sh imprime un recapitulatif des roles, etapes executees, sautees et en echec.
  • Precedence explicite : la resolution de la configuration est documentee et stable.

Particularites importantes

  • run.sh exige les droits root.
  • Le projet verifie qu'il tourne sur Debian 13.
  • Un test reseau HTTP est effectue avant provisioning en utilisant curl puis wget.
  • Le role firewall applique des regles ufw a partir de fichiers declaratifs.
  • Le role server ecrit une configuration SSH dediee puis tente de recharger ssh / sshd si le service existe.
  • Le role codium installe VSCodium, ses extensions et la configuration utilisateur si un utilisateur cible est detecte.
  • Les paquets localises eventuels sont ajoutes a partir de la variable lang de 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 executed compte les etapes ayant effectue une action.
  • Steps skipped compte les etapes entierement conformes ou sautees par l'orchestrateur.
  • Skip events compte tous les messages [SKIP] emis pendant l'execution.
Description
No description provided
Readme 44 KiB
Languages
Shell 100%