diff --git a/.gitignore b/.gitignore index 77b0ef3..dce6236 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,13 @@ # === Données réelles — gardées en local, jamais publiées === # Base CMDB (inventaire + mot de passe bind LDAP) -CMDB/cmdb.db -CMDB/cmdb.db.ver -CMDB/cmdb.db.tmp +cmdb/cmdb.db +cmdb/cmdb.db.ver +cmdb/cmdb.db.tmp # Snapshots horodatés de la base (copies des données réelles) -CMDB/snapshots/ +cmdb/snapshots/ # Certificats générés (contiennent des clés privées) -GENERATEUR_CERTIFICATES/LISTS_ALL_CERT/ +cert-generator/LISTS_ALL_CERT/ # === Environnement / build === .venv/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1838380 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "cmdb"] + path = cmdb + url = ssh://git@git.thehackdes.com/TheHackdes/Noctame.git + branch = dev diff --git a/CMDB/__pycache__/cmdb_server.cpython-313.pyc b/CMDB/__pycache__/cmdb_server.cpython-313.pyc deleted file mode 100644 index 3d8c12e..0000000 Binary files a/CMDB/__pycache__/cmdb_server.cpython-313.pyc and /dev/null differ diff --git a/CMDB/__pycache__/cmdb_server.cpython-314.pyc b/CMDB/__pycache__/cmdb_server.cpython-314.pyc deleted file mode 100644 index 36bf750..0000000 Binary files a/CMDB/__pycache__/cmdb_server.cpython-314.pyc and /dev/null differ diff --git a/CMDB/cmdb.html b/CMDB/cmdb.html deleted file mode 100644 index 085ef68..0000000 --- a/CMDB/cmdb.html +++ /dev/null @@ -1,4055 +0,0 @@ - - - - - -CMDB — Admin - - - - - - - -
- -
-

Dashboard

Vue d'ensemble de l'infrastructure

-
-
-

Répartition

-
-
-
Physique / Virtuel
-
-
-
-
Adressage IP
-
-
-
-
-
-

Machines par statut

-
-
-
-

Systèmes d'exploitation

-
-
-
-

Occupation des baies

-
-
-
- - -
-
-

Réseaux

Cliquez sur un réseau pour voir ses IPs

- -
-
-
- - -
-
-

Machines

Cliquez sur un nom pour ouvrir la fiche détaillée

- -
-
- - - - - - - -
-
- Types : -
-
-
-
- - -
-
-
- - -
-
-

Informations manquantes

Champs vides ou incomplets détectés dans l'inventaire

-
-
- - -
-
-
- - -
-
-

Préférences

Types de machine, catalogue OS et réglages de base

-
- -
-

Général

-
-
-
-
-
- -
-
-

Sauvegardes (snapshots)

- -
-
-
Copies horodatées de la base sur le serveur (dossier snapshots/). - Un snapshot automatique est créé après une modification, au plus une fois par heure. La restauration remplace la base - actuelle et crée d'abord un snapshot de sécurité de l'état courant.
-
- -
-
-

Import / Export CSV

-
- - - -
-
-
Exporte l'inventaire (machines, réseaux, IP/MAC, salles/baies) en un fichier CSV — une ligne par IP. - À l'import, les réseaux, salles, baies et machines existants sont mis à jour par correspondance de nom, - les nouveaux sont créés ; les IP d'une machine importée remplacent les siennes. Utile pour sauvegarder ou - migrer les données hors de la base.
-
- -
-
-

Types de machine

- -
-
-
« Virtuel » = hébergé sur une autre machine. « Rackable » = peut occuper des U dans une baie. « User » = permet d'assigner un utilisateur (laptop, optiplex…).
-
- -
-
-

Statuts de machine

- -
-
-
- -
-
-

Lien vers ticket

- -
-
-
Lien + modèle de description à copier pour créer un ticket (ex : changement de configuration switch). {name} est remplacé par le nom de la machine.
-
- -
-
-

Catalogue OS

- -
-
-
- -
-

Active Directory (recherche d'utilisateurs)

-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Recommandé : lancer python3 cmdb_server.py (remplace python -m http.server) — - il sert la page sur http://127.0.0.1:8000 et interroge l'AD directement, aucun connecteur à configurer. - Prérequis : pip install ldap3. Si la page est ouverte en file://, utilisez le connecteur séparé ci-dessous. - Le mot de passe bind est stocké dans la base locale.
-
- - - -
-
-
- - -
-
-
-
-
-
-
-
-
- -
-

Modèles de serveur

-
- - - -
-
-
- -
-

CPU

-
- - - - -
-
-
Sur un serveur : choisir le CPU + nombre de sockets → total de cores calculé automatiquement.
-
-
-
- -
- - -
- -
- - - - diff --git a/CMDB/cmdb_server.py b/CMDB/cmdb_server.py deleted file mode 100644 index 4b3baa1..0000000 --- a/CMDB/cmdb_server.py +++ /dev/null @@ -1,482 +0,0 @@ -#!/usr/bin/env python3 -"""Serveur CMDB : sert cmdb.html, la base partagée et la recherche AD. - -Remplace `python -m http.server` ET le connecteur séparé : - pip install ldap3 - python3 cmdb_server.py # http://0.0.0.0:8000 - python3 cmdb_server.py 8080 # port custom - -Endpoints : - GET /db → base SQLite (bytes) + entête X-DB-Version - GET /db/version → {"version": n} (poll léger) - POST /db → écrit la base ; entête X-Base-Version pour la - concurrence optimiste (409 si obsolète) - POST /ldap/search → recherche annuaire (config envoyée par la page) - -La base est un vrai fichier `cmdb.db` partagé : plusieurs personnes -peuvent l'utiliser en même temps, avec détection de conflit. -""" -import json -import os -import re -import ssl -import sys -import threading -import time -from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer -from urllib.parse import urlparse, parse_qs - -PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8000 - -HERE = os.path.dirname(os.path.abspath(__file__)) -DB_PATH = os.path.join(HERE, 'cmdb.db') -VER_PATH = DB_PATH + '.ver' -DB_LOCK = threading.Lock() - - -def db_version(): - try: - with open(VER_PATH) as f: - return int(f.read().strip() or 0) - except (OSError, ValueError): - return 1 if os.path.exists(DB_PATH) else 0 - - -def db_bytes(): - try: - with open(DB_PATH, 'rb') as f: - return f.read() - except OSError: - return b'' - - -def db_write(data): - """Écrit la base atomiquement et incrémente la version. Renvoie la version.""" - with DB_LOCK: - ver = db_version() + 1 - tmp = DB_PATH + '.tmp' - with open(tmp, 'wb') as f: - f.write(data) - os.replace(tmp, DB_PATH) - with open(VER_PATH, 'w') as f: - f.write(str(ver)) - return ver - - -# --------------------------------------------------------------------------- -# Snapshots : copies horodatées de la base dans snapshots/. -# - « auto » : créées après une écriture, au plus 1/heure, rétention 72. -# - « manuel » : créées à la demande (bouton), rétention 100, label libre. -# Restaurer un snapshot crée d'abord un snapshot de sécurité de l'état courant. -# --------------------------------------------------------------------------- -SNAP_DIR = os.path.join(HERE, 'snapshots') -# nom : cmdb---v[-