Documentation

La mise en jauge consiste à recouvrir de terre les racines d'une plante ou d'un arbre pour lui permettre d'attendre une plantation définitive.

Présentation

Aperçu

Jauge est un espace ou rézine entrepose et teste l'ensemble de la configuration de son infrastructure. L'objectif est multiple :

  • permettre aux membres de rézine de manipuler et tester la configuration sans casser la prod.
  • permettre à quiconque d'obtenir la conf utilisée par rézine.

La configuration est gérée par puppet. Jauge contient donc l'ensemble des manifests et modules nécessaires au fonctionnement de Rézine. Les tests sont effectués dans des machines virtuelles créées et provisionnées par vagrant.

Démarrer rapidement

Récupérer jauge :

git clone git://atelier.gresille.org/rezine/jauge jauge.git
cd jauge.git
git submodule update --init --recursive

ou

git clone --recursive git://atelier.gresille.org/rezine/jauge.git

Vagrant a besoin d'une image de base pour générer les machines virtuelles. Nous diffusons cette image via bitTorrent : vagrant-debian-wheezy-jauge-v3.box.torrent. Nous en sommes à la v4, dont l'empreinte sha1 est 6052b9e5202c138da665dc7d3a8bc64317a2e51b (sha1sum vagrant-debian-wheezy.box).

Pour ajouter l'image à vagrant :

vagrant box add vagrant-debian-wheezy-jauge vagrant-debian-wheezy.box

Démarrer toutes les machines virtuelles. Les machines seront démarrées et provisionnées selon les manifests et modules récupérés sur le dépot

vagrant up

Quelques commandes

Démarrer les machines virtuelles phloeme et houppier (l'ordre a une importance)

vagrant up phloeme houppier

Accéder à la machine houppier

vagrant ssh houppier

Provisionner la machine houppier (après modification de la configuration puppet par exemple)

vagrant provision houppier

Éteindre l'ensemble des machines virtuelles

vagrant halt

Supprimer toutes les machines virtuelles

vagrant destroy

Structure du dépot

  • Jauge // Un dépot pour les controler tous
    • modules
      • module 1 // Un dépot par module
      • module 2
    • manifests
      • \*.pp
      • local/\*.pp // configuration locale (ignorée par git)
      • local/readme.pp // exemple de configuration locale
    • Vagrantfile

Découpage des machines & et du réseau

Ensemble des fonctionalités

  • gw
  • resolver dns
  • si
  • radius
  • dns rezine.org, puppetmaster, smtp
  • lns
  • tunnels chiffrés

Principales dépendances fonctionnelles

  • `*` => puppetmaster
  • `*` => resolver dns
  • `*` => gw
  • radius => si
  • lns => radius
  • tunnels => radius

Machines effectives et réseaux associés

Schéma des machines

                         
            +---------- Grenode -----------+
            |                              |
            |                              |
            |      +--- Collecte ---+      |
            |      |                |      |
            |      |                |      |
         +---------------+       +---------------+
         | PHLOEME       |-------| XYLEME        |
         | gw/lns/tunnel |       | gw/lns/tunnel |
         +---------------+       +---------------+
               |                        |        
               +----+---------------+---+
                    |               |
         +---------------+       +------------+
         | HOUPPIER      |       | CAMBIUM    |
         | outils/radius |       | si         |
         +---------------+       +------------+

Schéma réseau

      PHLOEME       XYLEME       HOUPPIER   CAMBIUM

      eth3          eth3                                     eth3             Grenode
    --X-------------x----------------------------------------X--------------- 10.255.8.0/24

      eth4          eth4                                               eth4   Collecte
    --X-------------X--------------------------------------------------X----- 10.255.9.0/24

      eth2          eth2                                                      ADSL Membres
    --X-------------X-------------------------------------------------------- 10.255.7.0/24

      eth1          eth1         eth1       eth1                              Rézine infra
    --X-------------X------------X----------X-------------------------------- 10.255.6.0/24

      eth0          eth0         eth0       eth0             eth0      eth0   Test
    --X-------------X------------X----------X----------------X---------X----- 10.0.2.0/24
                                                             ESTRAN    LUCKY

                                                             (ip)      (l2tp)

                                                             M-VPN     M-ADSL

Pour les des tests nous auront besoin d'autres machines dans l'environnement du FAI, il s'agit de ESTRAN (passerelle de rézine), LUCKY (machine de l'opérateur de collecte ADSL), M-VPN (client pour les tunnels chiffrés), M-ADSL (client pour l'adsl).

Remarques sur la redondance

Si on souhaite redonder les lns ou les passerelles, il va falloir trouver un moyen de gérer automatiquement la topologie du réseau quand une passerelle tombe. Pour cela, il est possible de :

  • heartbeat/ldirector ou CARP pour avoir une seule IP sur les 2 GW/LNS/TUNNEL
  • faire du routage dynamique sur toutes les machines de Rézine (ospf, rip,…). Ça a l'avantage qu'il n'y a pas besoin d'une IP partagée.

Conf puppet

Configuration locale

Voir fichier manifests/local/readme.pp

Quelques liens sur puppet

vagrant-debian-wheezy.box.torrent (25,3 ko) olb  , 16/02/2013 17:27

vagrant-debian-wheezy-jauge-v3.box.torrent - Torrent box vagrant (36,6 ko) Nima Nima, 28/05/2013 19:28