specification/configuration.md

8.5 KiB

| Configuration |

Types de données

Différents type de données

Voici les différents types de données :

  • données système : le système d'exploitation mais également les différentes applications et la configuration par défaut. Généralement installés depuis une distribution.
  • données de configuration : les personnalisations (issue des recettes fait par les contributeurs en suivant les configurations utilisateurs)
  • données temporaire :
    • illimité : conservées jusqu'au redémarrage de la machine. Par exemple cache squid, cache base de donnée, ...
    • limité dans le temps : données temporaires qui seront supprimés au démarrage ou si elles sont perimées. Par exemple : session, copie de fichier avant traitement, ...
    • la SWAP
  • données utilisateurs : données produits par l'utilisateur.

Les disques

Il existe trois types de disques :

  • le disque système qui contiendra les données systèmes
  • le disque de configuration qui comprendra les données de configuration
  • le disque de données qui comprendra les données temporaires et les données utilisateurs

Dans ces disques, il peut y avoir des partitions séparées.

La mutabilité des données

Les données système sont immuables. Les données de configuration sont immuables. Les données temporaires sont mutables. Les données utilisateurs sont mutables.

Approvisionnement

Toutes les données immuables sont approvisionnées, reproductible et non modifiable. Les données mutables peuvent être approvisionnées pour les initialiser. Les répertoires temporaires mutables n'ont pas vocation a être provisionnés.

Les données mutables peuvent être facilement réinitialisé par l'administrateur et re approvisionnées.

Mise à jour

  • des données systèmes d'une machine physique :
    • la machine doit passer dans un état mutable pour les données systèmes
    • la mise à jour système (notamment de la distribution) est effectuée
    • la machine est redémarré
  • des données systèmes d'une machine virtuelle :
    • l'image est regénéré (pas de mise à jour)
    • mise à disposition
    • la machine est redémarré
  • des données immuables de configuration :
    • regénéré
    • mise à disposition
    • la machine est redémarré
  • des données mutables utilisateurs : peuvent être mise à jour si nécessaire
  • des données mutables temporaires : ne sont pas mise à jour, elles sont réinitialisés par un redémarrage.

Les recettes

Il existe deux grandes familles de recette :

  • les recettes pour construire les données systèmes :
    • pour mettre à disposition un système de base par système d'exploitation et par version
    • pour installer les paquets spécifiques au service, les fichiers, script a exécuter, ...
  • les recettes pour construire les données de configuration et approvisionnées les données mutables :
    • les fichiers de configuration
    • activation de service, ...
    • le nécessaire pour faire les différents approvisionnement et mises à jour

Sauvegardes

Seules les données mutables sont sauvegardées.

Elles peuvent être sauvegardées :

  • directement
  • après extraction

Taille

La taille des disques de données est définit par le contributeur dans une recette et n'est pas modifiable par l'administrateur.

Seule les partitions mutables sont redimensionnable (il est possible de les augmenter). C'est le contributeur qui décide de les augmenter.

La taille des données système ne doivent pas dépasser idéalement les 500 Mo.

Différents composants

Description de l'infrastructure

La description de l'infrastructure se fait par les administrateurs suivant les droits. L'infrastructure est décrit via la ligne de commande.

L'infrastructure se défini avec les objets suivant :

  • le cluster de virtualisation
  • des noeuds de calculs
  • des sites
  • des zones
  • des services

Génération des données de configuration

FIXME description de la partie Rougail

Installation du système

Les données du système sont installés de façon automatique. L'installation se fait en suivant les recettes mis à diposition par les contributeurs.

Les recettes sont spécifiques à la distribution.

Le système installé est ensuite mis à disposition dans le disque prévu à cette effet. Ce disque est générique et peut servir pour plusieurs service de même type.

Personnalisation des fichiers de configuration

Les fichiers de configuration sont générés à partir des recettes fournis par les contributeurs et la configuration défini par l'administrateur.

L'administrateur prépare la configuration via la ligne de commande.

L'administrateur peut faire des modèles de serveurs contenant les valeurs par défaut des différents serveurs hérité de ce serveur modèles. Le multi-héritage et l'héritage multiple est possible.

L'administrateur commence par faire un "brouillon" de configuration qu'il devra valider lorsqu'il sera satisfait. C'est cette configuration qui sera utilisée pour générer les fichiers de configuration.

Ces fichiers de configuration sont ensuite mis à disposition dans le disque prévu à cette effet.

Approvisionnement et mise à jour des données mutables

L'approvisionnement et la mise à jour se fait via des procédures prévus dans la recette et dans les fichiers de configuration suivant les besoins du service.

Fournisseur

FIXME décrire le fonctionnement de factory

Fournisseur d'identité

PKI

  • SSL

L'ensemble des certificats doivent être signé par une autorité de certification centralisée.

Il est nécessaire de gérer 2 types d'autorités :

  • une autorité extérieur pour que les services soient valide avec des acteurs hors de la plateforme
  • une autorité interne

Aucun certificat généré sur la machine ne doit être utilisé.

  • SSH

Les clé SSH sont signés par une autorité géré par l'usine d'infrastructure.

Cette signature :

  • n'a une validité que d'une journée
  • autorise la connexion au serveur via un compte nominatif

Les secrets

Différents mots de passe :

  • pour se connecter aux différents machines via root (mode secours)
  • un mot de passe par administrateur pour se connecté sur une machine
  • pour se connecter en lecture ou en écriture sur les différents services

Outil de l'administrateur

L'administrateur peut piloter l'infrastructure via une ligne de commande unique.

L'utilisateur doit avoir une ouvrir une session d'administration pour avoir accès aux différentes fonctionnalités de la plateforme.

Les droits d'accès sont validé par la plateforme.

Sécurisation de l'infrastructure

Réseau d'administration

Un réseau d'administration est mis en place.

Les administrateurs doivent être physiquement sur ce réseau pour faire des tâches d'administration sur les machines.

Ce réseau n'est pas routable. Seul les tâches d'adminitration y sont autorisés.

Tout le traffic sur ce réseau doit être considéré comme illégitime et doit générer une alerte.

Connexion sur un interpreteur de commande

Il y a deux type de connexion sur un interpréteur de commande :

  • automatisée : les connexions se font via SSH avec un compte générique autorisé sur l'ensemble des machines. Ce compte peut devenir root sans mot de passe
  • manuelle :
    • il faut que l'utilisateur ait les droits
    • les droits utilisateurs sont définit dans les données de configuration
    • la connexion est autorisé via SSH
    • la connexion est autorisé via TTY
    • le compte nécessite un mot de passe pour devenir root
    • les connexions SSH sont valide sans passer par le mécanisme TOFU
    • le répertoire de connexion est temporaire et créé à la connexion, aucune donnée utilisateur dans ce répertoire ne sera conservé
  • mode secours : il existe un mode secours où l'utilisateur peut se connecter en root via TTY. Ce mode n'est a utilisé qu'en dernier recours et doit être justifié. Une alerte doit être remontée.

L'ensemble des connexions se font via le réseau administratif.