Installer une CMDb

by Tyleo Dv. Delaware

Installer une CMDb
Logiciel de CMDb et de Base de Données Visuelle avec Statistiques et une API REST integrée. Ah, aussi, oui j'allais oublier... c'est 100% Gratuit, Open Source et Dockerisé.

Share

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 :

  1. Il s'agit d'une base de données humainement lisibles.
  2. Qui permet d'organiser son infra, son organisation, son réseau etc...
  3. 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

https://directus.io/

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
ADMIN_USER=admin@domain.com
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.