Construire sa CMDB
A quoi cela pourrait bien servir ?
Les raisons d'une ou plusieures CMDB
Il y a de nombreuses raisons possibles, mais voici les plus vraisemblables :
- Il s'agit d'une base de données humainement lisibles.
- Qui permet d'organiser son infra, son organisation, son réseau etc...
- Est un Coeur de données que d'autres applications peuvent utiliser.
La définition de "CMDB"
CMDB est l'abréviation de base de données de gestion des configurations, un fichier qui précise les relations entre le matériel, les logiciels et les réseaux utilisés par un service informatique. Plus exactement, le terme "CMDB", ou Configuration Management DataBase".
Quel logiciel ?
En fait, il serait possible d'utiliser Excel pour faire ça. Mais il lui manque quelque chose d'important : L'usage User Friendly. Pour moi, créer une CMDB est long, parfois "chiand" et ne devrait pas l'être. Alors, il faut pour éviter ce problème, se tourner vers les applications auto hébergées.
Directus.IO
Le Site Web
Le Compose des Familles
Celui ci créé (volontairement) trois instances différentes. Si vous n'en voulez qu'une, retirez les deux autres en faisant attentions à la syntaxe et l'indentation. Bien que je conseille d'avoir une instance bac a sable (sandbox) pour tester les fonctions.
version: "3"
services:
prd1-directus:
image: directus/directus:latest
user: root
ports:
- 8055:8055
volumes:
- ${DATA_DIR_PRD1}/2-database:/directus/database
- ${DATA_DIR_PRD1}/2-uploads:/directus/uploads
- ${DATA_DIR_PRD1}/2-extensions:/directus/extensions
environment:
SECRET: ${SECRET_KEY}
ADMIN_EMAIL: ${ADMIN_USER}
ADMIN_PASSWORD: ${ADMIN_PASS}
DB_CLIENT: sqlite3
DB_FILENAME: /directus/database/data.db
WEBSOCKETS_ENABLED: "true"
dev1-directus:
image: directus/directus:latest
user: root
ports:
- 8155:8055
volumes:
- ${DATA_DIR_DEV1}/2-database:/directus/database
- ${DATA_DIR_DEV1}/2-uploads:/directus/uploads
- ${DATA_DIR_DEV1}/2-extensions:/directus/extensions
environment:
SECRET: ${SECRET_KEY}
ADMIN_EMAIL: ${ADMIN_USER}
ADMIN_PASSWORD: ${ADMIN_PASS}
DB_CLIENT: sqlite3
DB_FILENAME: /directus/database/data.db
WEBSOCKETS_ENABLED: "true"
sandbox:
image: directus/directus:latest
user: root
ports:
- 8255:8055
volumes:
- ${DATA_DIR_SANDBOX}/2-database:/directus/database
- ${DATA_DIR_SANDBOX}/2-uploads:/directus/uploads
- ${DATA_DIR_SANDBOX}/2-extensions:/directus/extensions
environment:
SECRET: ${SECRET_KEY}
ADMIN_EMAIL: ${ADMIN_USER}
ADMIN_PASSWORD: ${ADMIN_PASS}
DB_CLIENT: sqlite3
DB_FILENAME: /directus/database/data.db
WEBSOCKETS_ENABLED: "true"
Le ficher d'environnement (.env)
# STOCKAGE
DATA_DIR_PRD1=/data/store/apps/cmdb-next-instances/prod-1-principal
DATA_DIR_DEV1=/data/store/apps/cmdb-next-instances/dev-1-principal
DATA_DIR_SANDBOX=/data/store/apps/cmdb-next-instances/sandbox
## IDENTIFICATIONS
[email protected]
ADMIN_PASS=
SECRET_KEY=
Générer les clés ADMIN_PASS et SECRET_KEY
apt update
apt install pwgen -y
echo "ADMIN_PASS=$(pwgen 64 1)"
echo "SECRET_KEY=$(pwgen 32 1)"
Les ajouter ou mettre à jour les variables dans l'.env
Vous pouvez évidemment changer les emplacements de stockage. Ceux indiqués correspondent aux recommandations Tyleo.
Vous pouvez changer le login admin, mais il faut un format mail.
Sécurité
Le Compose autorise l'accès par Root 0 car les droits sont assez difficile a gérer pour plusieures instances, vous pouvez si vous ne voulez pas laisser ça comme ça, définir le user avec chown -Rv 1000:1000 [DataDir]
et remplacer user: root
par user: "1000:1000"
ou avec un autre identifiant, évidemment.