PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Pierre-Alain Bandinelli : Installation et paramétrage d'un serveur avec conteneurs LXC chez Online.net/Dedibox

dimanche 10 novembre 2013 à 07:19

Nous allons décrire ici l'installation et la paramétrage d'un serveur dédié chez Online.net (offres Dedibox). La description de l'installation ne sera peut-être pas exhaustive et se concentrera sur les points clés, ceux qui par exemple ont été bloquants lors de notre déploiement.

Au niveau des technologies utilisées...

Nous allons déployer une version Debian stable (7.x à l'écriture de ces lignes) avec LVM2 (pour le découpage de l'espace disque) étant entendu que le RAID est géré matériellement et ne demande pas de paramétrage au niveau du système. La technologie LXC (LinuX Containers) sera utilisée pour séparer les servicse dans plusieurs conteneurs indépendants.

Pour le réseau, chaque conteneur disposera de sa propre IPv6 et sera donc accessible directement. En IPv4 en revanche, on déploiera un réseau local IPv4 avec un NAT pour répartir le trafic sur les différents conteneurs.

Paramétrage du réseau IPv6 chez Online.net

Chez Online.net, un bloc /48 est attribué avec chaque serveur dédié. Pour gérer l'IPv6 sur le serveur, il faudra installer le client Dibbler (un client DHCPv6) :

aptitude install dibbler-client

puis modifier la clé DUID dans le fichier /var/lib/dibbler/client-duid pour insérer celle attribuée par Online.net dans l'interface d'administration du système. Enfin, on modifiera le fichier de configuration /etc/dibbler/client.conf tel que suit :

log-level 7
iface br0 {
    pd
    option dns-server
    option domain
}

On modifie alors le fichier /etc/network/interfaces pour contenir les éléments suivants :

auto br0
iface br0 inet static
    address 88.123.123.123
    netmask 255.255.255.0
    gateway 88.123.123.1
    bridge_ports eth0

iface eth0 inet6 static
    address 2001:abcd:abcd:abcd::
    netmask 56

Vous aurez bien sûr pris le soin de remplacer 2001:abcd:abcd:abcd:: par l'adresse IPv6 correspondant au bloc /56 que vous avez décidé d'attribuer à votre serveur dédié. Et remplacer 88.123.123.123 par l'adresse IPv4 qui vous a été attribuée (et spécifier la passerelle correspondante).

Ce paramétrage correspond à la mise en place d'un pont réseau (bridge) ce qui permettra à toutes les machines virtuelles de communiquer entre elles et de partager les communications réseau.

On redémarre alors le réseau :

/etc/init.d/networking restart

(si vous êtes connecté en SSH, il faudra peut-être se reconnecter en utiliser les nouvelles adresses spécifiées - pour forcer la connexion SSH en IPv6 il faudra utiliser ssh -6 et ssh -4 pour forcer l'IPv4)

puis on redémarre Dibbler par les commandes habituelles :

/etc/init.d/dibbler-client stop 
/etc/init.d/dibbler-client start

Une fois les conteneurs en place, nous reviendrons sur ce paramétrage pour y apporter quelques légères modifications.

Création de volumes virtuels avec LVM pour héberger les conteneurs

Chaque conteneur sera contenu dans un espace logique géré par LVM. Cela permettra notamment une manipulation aisée pour le redimensionnements, les sauvegardes...

Lors de l'installation initiale, nous avons donc pris le soin de garder une grosse partition /dev/sdaX non utilisée - c'est elle que nous allons déclarer comme volume physique pour LVM.

Il faut d'abord s'assurer que /dev/sdaX n'est pas mentionné dans /etc/fstab et le cas échéant commenter la ligne correspondante.

Puis on crée le volume physique :

pvcreate /dev/sdaX
vgcreate vg /dev/sdaX

et 2 volumes logiques de 50 Go :

lvcreate -n Nom1 -L 50g vg
lvcreate -n Nom2 -L 50g vg
mkfs.ext4 /dev/vf/Nom1
mkfs.ext4 /dev/vf/Nom2

Installation de LXC et déploiement du premier conteneur

aptitude install lxc lxc lxctl bridge-utils debootstrap unzip

installera les éléments nécessaires. Puis on modifiera /etc/fstab pour contenir :

cgroup        /sys/fs/cgroup        cgroup        defaults    0    0

La commande lxc-checkconfig permet de vérifier si tout est paré et donné des aides pour la résolution d'éventuels problèmes. Une fois que tous les paramètres de lxc-checkconfig sont au vert, on se lance pour de vrai !

A noter que le template Debian 7 inclus par défaut pour LXC dans Debian 7 est défectueux (cf. 'The Debian 7 template is broken' in [https://wiki.debian.org/LXC |https://wiki.debian.org/LXC] et la solution proposée ici par Rob van der Hoeven). Les lignes ci-dessous correspondent à la solution proposée par Rob.

On déploie un template fonctionnel :

cd /usr/share/lxc/templates/
wget http://freedomboxblog.nl/wp-content/uploads/lxc-debian-wheezy.gz
gzip -d lxc-debian-wheezy.gz
chmod u+x lxc-debian-wheezy

et on lance la création du premier conteneur :

lxc-create -n myfirstcontainer -t debian-wheezy

On déplace alors le conteneur dans le premier disque logique LVM que nous avions créé précédement :

cd /var/lib/lxc/
mv myfirstcontainer myfirstcontainer-tmp
mkdir myfirstcontainer
mount /dev/vg/Nom1 myfirstcontainer
cd myfirstcontainer-tmp
cp -R * ../myfirstcontainer/
cd ..
rm -Rf myfirstcontainer-tmp

et on paramètre le conteneur comme suit dans /var/lib/lxc/myfirstcontainer/config :

lxc.utsname = container1
lxc.network.type = veth
lxc.network.veth.pair = vethcontainer1
lxc.network.flags = up
lxc.network.link = br0
lxc.network.ipv4 = 192.168.0.101/24  #on attribue une adresse IPv4 de réseau local
lxc.network.ipv4.gateway = 192.168.0.1  #la passerelle, nous allons attribuer cette adresse ensuite à l'hôte physique
lxc.network.hwaddr = 00:11:D0:14:84:BE  #attention, à modifer par une valeur aléatoire si vous installez plusieurs machines pour qu'il n'y ait pas collision !
lxc.network.ipv6 = 2001:abcd:abcd:abcd::101/56  #une adresse appartenant au bloc /56 attribué au serveur dédié

et on modifie les paramétrages réseau au sein du conteneur dans /var/lib/lxc/myfirstcontainer/rootfs/etc/network/interfaces :

auto eth0
iface eth0 inet static
    address 192.168.0.101

iface eth0 inet6 static
    address 2001:abcd:abcd:abcd::101
    netmask 56
    post-up ip -6 route add default via 2001:abcd:abcd:abcd::

Sur la machine hôte, on modifie alors les paramètres tel que suit :

iface vethcontainer1 no-config
ip addr add 192.168.0.1 dev br0
ip route add 192.168.0.0/16 dev br0
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
ip -6 route add 2001:abcd:abcd:abcd::101 dev br0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.forwarding = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.accept_ra = 2

et sysctl -p pour prendre en compte ces paramétrages.

Si la connectivité IPv6 disparaît, alors il faudra se reconnecter en IPv4 et lancer les commandes suivantes :

ip -6 route add aa:bb:cc:dd:ee::/64 dev br0
ip -6 route add default via aa:bb:cc:dd:ee::1 dev br0
/etc/init.d/dibbler-client stop
/etc/init.d/dibbler-client start

en remplaçant aa:bb:cc:dd:ee::1 par l'adresse de la passerelle IPv6 (cette adresse est normalement communiquée par les Router Advertisements).

Tout semble alors prêt pour le démarrage du conteneur !

Lancement du conteneur

lxc-start -d -n myfirstcontainer

et on peut alors s'y connecter en console via :

lxc-console -n myfirstcontainer

Par défaut, le mot de passe root est root (c'est le paramétrage par défaut du template que nous avons utilisé - il va de soi que nous allons rapidement modifier ce paramétrage).

Pour quitter la console LXC, il faudra faire Ctrl+a puis d.

Dans le conteneur, on pourra vérifier que :

Si tout fonctionne comme attendu, on peut alors poursuivre l'installation du système. On pourra par exemple :

Exemple de configuration iptables sur l'hôte physique

#!/bin/bash
IPTABLES='/sbin/iptables';

CT1_HOST="192.168.0.101";
CT2_HOST="192.168.0.102";
MONITORING_ONLINE="88.190.254.18";
LAN="192.168.0.0/24";
WAN_IFACE="br0";
WAN_IP="88.123.123.123";
# Flushing tables
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
# Define default policy
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -A INPUT -j ACCEPT -d $LAN;
$IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# Temporary - SSH access open to all IPs on port 22 but Fail2ban is working.$
$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 22
# Opens to ping from online monitoring
$IPTABLES -A INPUT -j ACCEPT -p icmp -s $MONITORING_ONLINE

# Accepts connection to ports 80 and 443
$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 80
$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 443

# Rediriger le port 123 vers le container 1
$IPTABLES -t nat -A PREROUTING -p tcp --dport 123 -d $WAN_IP -j DNAT --to-destination $CT2_HOST:123

# Rediriger un port 456 vers le container 2
$IPTABLES -t nat -A PREROUTING -p tcp --dport 456 -d $WAN_IP -j DNAT --to-destination $PAB2_HOST:456

# Activating masquerade FROM local network
$IPTABLES -t nat -A POSTROUTING -o $WAN_IFACE -s $LAN -j MASQUERADE

Exemple de configuration de pound sur l'hôte physique

User		"www-data"
Group		"www-data"
RootJail	"/chroot/pound"

## Logging: (goes to syslog by default)
##	0	no logging
##	1	normal
##	2	extended
##	3	Apache-style (common log format)
LogFacility local0
LogLevel 1

## check backend every X secs:
Alive		180

## use hardware-accelleration card supported by openssl(1):
#SSLEngine	""

# poundctl control socket
Control "/var/run/pound/poundctl.socket"

ListenHTTP
	Address 88.123.123.123
	Port	80

	## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
	xHTTP		2

        #Les services à envoyer sur le premier conteneur
	Service
		HeadRequire "Host: .*(domaine1.fr|domaine2.fr|domaine3.fr).*"
		BackEnd
			Address	192.168.0.101
			Port	8080
		End
	End

        #Les services à envoyer sur le second conteneur
        Service
                HeadRequire "Host: .*(domaine4.fr|domaine5.fr).*"
                BackEnd
                        Address 192.168.0.102
                        Port    8080
                End
        End

End

ListenHTTPS
        Address 88.123.123.123
        Port    443
	Cert    "/path/to/certificate/pound.pem"

	HeadRemove "X-Forwarded-Proto"
        AddHeader "X-Forwarded-Proto: https"

        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
        xHTTP           2

        #Les services à envoyer sur le premier conteneur
	Service
		HeadRequire "Host: .*(domaine1.fr|domaine2.fr|domaine3.fr).*"
		BackEnd
			Address	192.168.0.101
			Port	8080
		End
	End

        #Les services à envoyer sur le second conteneur
        Service
                HeadRequire "Host: .*(domaine4.fr|domaine5.fr).*"
                BackEnd
                        Address 192.168.0.102
                        Port    8080
                End
        End

End

Gravatar de Pierre-Alain Bandinelli
Original post of Pierre-Alain Bandinelli.Votez pour ce billet sur Planet Libre.

OLPC France : OLPC France et les Mundurucus

vendredi 8 novembre 2013 à 21:53

Les Mundurucus sont une tribu indigène d’Amazonie vivant dans l’état de Para’ au Brésil. L’une des particularités des Mundurucus est qu’ils disposent d’un vocabulaire limité pour désigner les nombres et n’ont donc aucun moyen d’exprimer des quantités exactes. Ils sont tout à fait capables de faire des calculs approximatifs mais ne savent pas réaliser de calcul exacts (arithmétique exacte).

Bien que la plupart des Mundurucus ne reçoivent pas d’instructions à l’école, la communauté Mundurucu a récemment exprimé son souhait de développer l’éducation. Ainsi, la FUNAI (Fondation National des Indiens du Brésil) accompagne les représentants de la communauté Munduru dans un projet éducatif ayant pour objectif de développer un enseignement des mathématiques qui soit compatible avec leur culture.

Pierre Pica présente le XO

Pierre Pica (ci-dessus), chercheur au CNRS, linguiste spécialisé dans le domaine de la syntaxe comparative travaille depuis de nombreuses années avec les Mundurucus. Cette année, avec les équipes de Stanislas Dehaene, psychologue cognitif et neuroscientifique, il a lancé une expérimentation permettant de tester les approches d’apprentissages de l’arithmétique.

Ce programme qui s’étalera sur plusieurs mois consiste à tester sur une population Mundurucu (enfants et adultes) différentes méthodes d’apprentissage afin de voir celle qui est la plus adaptée pour leur apprendre les mathématiques: utilisation de la langue et de symboles (tel que Plus et Moins), boulier, arithmétique approximative, … C’est l’ordinateur XO qui a été choisi pour réaliser l’expérience grâce à sa capacité à fonctionner en environnement difficile et à son adéquation à l’usage par des enfants.

Les équipes de Stanislas Dehaene ont ainsi développées différentes activités pour Sugar permettant à la fois de tester les connaissances et d’accompagner l’apprentissage. On voit par exemple sur la capture d’écran suivante les méthodes qui seront utilisées pour chaque groupe de test. Les résultats obtenus à la fin de l’étude permettront d’identifier la méthode la plus efficace.

Activité de test pour les méthodes d'apprentissage

Au-delà de l’étude sur les Mundurucus, les travaux de l’équipe pourraient être utiles pour accompagner les enfants souffrant de dyscalculie, un trouble d’apprentissage des Mathématiques touchant 3 à 7% des enfants en France.

OLPC France s’est associé à l’équipe de Pierre Pica en apportant sa connaissance des problématiques logistiques de déploiement du XO et ses compétences techniques sur Sugar.

OLPC France a ainsi mis 10 ordinateurs XO à la disposition de l’équipe de Pierre Pica et préparé une version spécifique de Sugar embarquant les activités propres à l’expérimentation (voir capture ci-dessous) et un ensemble de ressources éducatives en Portugais. En effet, les ordinateurs XO ont pour vocation, à l’issu de l’expérience, d’être utilisé par la FUNAI pour son projet éducatif.

L'image Sugar réalisé par OLPC France

Dans cet optique, OLPC France a aussi validé que le XO pouvait supporter l’alphabet phonétique SIL utilisé aujourd’hui par les Mundurucus pour écrire leur langue (uniquement orale à l’origine). La capture d’écran suivant montre ainsi un extrait de texte Mundurucu réalisé avec l’activité Ecrire de Sugar.

Ecrire en Mundurucu

Nous ne manquerons pas de vous donner des nouvelles régulièrement de ce beau projet à travers ce blog.

Gravatar de OLPC France
Original post of OLPC France.Votez pour ce billet sur Planet Libre.

dada : Il est temps de revenir sous Firefox

vendredi 8 novembre 2013 à 20:42

Google vient d'annoncer qu'il allait se mettre à contrôler l'intégralité des extensions disponibles pour Chrome. A la bonne heure.

Firefox_New_Logo.png

Dans cet article de Numerama, ils parlent de la conséquence que cela peut avoir sur AdBlock, extension permettant de bloquer les publicités. C'est sans doute la future première victime de la nouvelle politique de Google.

Qu'est-ce qui empêcherait Google de faire sauter l'extension de blocage de publicité la plus populaire de la toile ? Absolument rien, surtout quand celle-ci s'attaque directement au nerf de la guerre de Google : les revenus publicitaires.

On dirait clairement que Google se met à copier Apple, tout comme Microsoft qui unifie son WIndows Phone Store et son Windows Store. Tout se centralise pour mieux emprisonner le consommateur dans son écosystème en lui laissant une fausse illusion de choix. Une fausse impression offerte par le loisir qu'a l’utilisateur d'installer les extensions de son choix. Choix qu'il ne sait pas être faussé.

On peut encore se tourner vers cet autre article de Numerama qui raconte comment le mode de vie américain qui moi, petit français, trouve souvent ridicule, influe sur le consommateur sans que celui-ci en soit vraiment conscient.

Alors, vous, libriste, je vous invite cordialement à revenir de Chrome à Firefox et à faire passer le message autour de vous. Il sera assez simple de convaincre vos amis de passer sous Firefox dès qu'ils auront sous les yeux une page web pourrie par les publicités.

Utilisez Firefox, utilisez du libre !

Gravatar de dada
Original post of dada.Votez pour ce billet sur Planet Libre.

Articles similaires

Framablog : Geektionnerd : TVA sur les eBooks

vendredi 8 novembre 2013 à 15:46

Geektionnerd - Simon Gee Giraudot - CC by-sa

Geektionnerd - Simon Gee Giraudot - CC by-sa

Source :

Crédit : Simon Gee Giraudot (Creative Commons By-Sa)

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

alterlibriste : Podcasting : Parole de Tux

vendredi 8 novembre 2013 à 15:43

Après avoir parlé des podcasts issus d’émissions radio plus ou moins locales, j’aimerais aborder les quelques podcasts francophones sur le libre.

Pour cela, il va falloir sortir de France car j’aurais aimé pouvoir vous parler de En Flux Libre qui s’était inspiré de l’Echo des Gnous et a officié pendant une douzaine d’épisodes jusqu’à l’été 2012 et puis plus rien.

Première étape en Belgique où une bande de joyeux lurons, j’ai nommé Captain Posix, Bubulle et Tolrek, nous invitent une fois par mois dans la cuisine de la famille Posix pour déguster des bières et discuter de logiciels libres mais pas que.
Débuté en mars 2012, Parole de Tux garde le cap pour bientôt commencer une 3ème saison d’émissions.

Le programme de l’émission est généralement le suivant :

Au début, le podcast durait une bonne heure mais il atteint maintenant facilement 3 à 4h ; de quoi bien occuper votre temps d’écoute disponible.

Si les sujets abordés sont relativement sérieux, les 3 compères ne se prennent pas la tête et n’hésitent pas à s’envoyer des vannes et si vous écoutez le podcast dans les transports en communs, vos voisins vous prendront peut-être pour un fou lorsque vous éclaterez de rire ; je vous aurai prévenu.

Voici le flux rss pour ne pas louper d’épisode ou retrouver tous les précédents, de quoi s’occuper un bon moment.

Gravatar de alterlibriste
Original post of alterlibriste.Votez pour ce billet sur Planet Libre.

Articles similaires