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
- modules
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