Home - acieroid/newsome GitHub Wiki

Idées

Système de déploiement de services sous FreeBSD.

  • Une jail par service et une jail maître accessible par les admin, qui met en place les jails des services. Chaque service fournit un script/fichier de conf qui décrit: ses dépendances (packages à installer, versions, ports utilisés, espace nécessaire, base de donnée à utiliser), comment se lancer, ...
  • Un nginx/serveur web custom sur la jail maître dispatch les requêtes sur les services correspondant
  • Sécurité : SSL (slt), une partition chiffrée par service (ZFS)
  • Déploiement « facile »: idéalement un script shell addservice <servicedescription>, éventuellement un service web
  • Informations « faciles »: savoir si un service est down, quelle place il prends, quelle charge processeur, etc.
  • OS Cible : FreeBSD (jails) et dans un second temps, Linux (LXC)
  • Éviter VMs, jails sont plus économiques
  • Distribution facile (pouvoir spawner des jails sur d'autres machines, avoir plusieurs points d'entrée)
  • Dépendances entre services (eg. http & mysql); duplication des services (redondance)

Architecture générale d'awesom

Machines/jails

  • host: machine hôte, qui ne possède que le minimal
  • master: jail maître, accessible par les admins, avec le script addservice, et qui spawn des jails (dans elle même, jails hiérarchiques)
  • slaves: jails esclaves, paramétrisées par: un nom de service, une IP locale, une description du service

Sécurité

  • SSL: avec slt
  • Chiffrement: idéalement, chaque jail devrait être chiffrée avec sa propre clé. À voir si c'est faisable, et si c'est mettable en place facilement. Ça risque d'être problématique à combiner avec par exemple les màj automatiques. Pas vraiment nécessaire dans un premier temps.
  • Audits: (semi-)automatiquement mettre à jour les ports affectés par des alertes de sécurité. Ça risque de poser un éventuel problème de downtime si la màj se passe mal (est-ce que ça serait possible de répliquer la jail le temps de la màj ?)

À faire (idée)

  • Architecture
  • Format de description des services
  • Scripts
  • Sécurité

À faire (incrémental)

  1. Liste des services existants: ici
  2. Format de description des services: ici
  3. Définition de l'architecture générale

Interesting software

  • slt: plusieurs certificats SSL pour le même port/IP
  • salt: déploiement automatisé (compatible avec FreeBSD (jails, pkgng, ports, services)
  • docker: créer facilement des VM légères sous Linux
  • ZFS: jail quotas & crypto
  • FreeBSD From Scratch: automation de l'install d'une FreeBSD