Le Raspberry PI est un nano ordinateur de la taille d'une carte de crédit que l'on peut brancher à un écran est utilisé comme un ordinateur standard. Sa petite taille, et son prix intéressant fait du Raspberry PI un produit idéal afin de tester différentes choses, et notamment la création d'un serveur Web chez soi. Évidemment, pour sa taille il ne faut pas s'attendre à des performances incroyables, mais pour mettre en ligne des projets à montrer au client ou expérimenter avec Linux, c'est largement suffisant.
Même si dans la suite de l'article on ne parlera que du Raspberry PI, il est important de noter qu'il existe de multiples variantes de ce nano ordinateur. En effet, beaucoup de personnes ont décidé de faire des forks du Raspberry pi en proposant des configurations différentes suivant les besoins (par exemple le Banana Pi), je ne me lancerai pas ici dans une comparaison de ces différentes configurations, mais n'hésitez pas à faire quelques recherches avant de choisir votre nouveau petit compagnon.
Avant de nous lancer dans des cas d'utilisation il est important de comprendre comment fonctionne un Raspberry pi. Le Raspberry pi ne dispose pas d'un disque dur interne (cela augmenterait grandement sa taille) et on stockera les données sur une carte SD. Par défaut, le Raspberry pi, est nu, comprendre par la qu'il est vendu sans accessoires. Pour pouvoir l'utiliser vous devrez donc avoir
Si vous êtes un petit peu feignant, il existe des kits déjà tout fait intégrant ces différents matériels.
Le premier problème que l'on rencontre est donc l'installation d'un système d'exploitation. Heureusement pour nous cette opération est relativement facile grâce à l'utilisation de la carte SD. La première étape sera donc de préparer la carte micro SD en y installant un système d'exploitation. On peut installer différentes distributions, la plus connue étant Raspbian (Debian pour RPi) que l'on peut télécharger directement depuis le site Internet de Raspberry pi. Une fois l'image téléchargée, vous pourrez l'installer sur votre carte micro SD en utilisant le logiciel Win32DiskImager
Une fois la carte micro SD préparée, il vous suffira de l'insérer dans votre Raspberry pi pour faire fonctionner automatiquement le système. Suivant la distribution que vous avez choisi vous devriez tomber sur l'écran de configuration de votre Raspberry pi (vous pourrez accéder à cet écran plus tard en tapant la commande sudo raspi-config
).
La première chose que vous allez vouloir configurer est l'augmentation de l'espace allouée système, en effet à l'étape de préparation de l'image sur la carte SD, seule une petite partie de la carte a été allouée. En choisissant l'option Expend filesystem
Vous étendrez le système d'exploitation à toute la carte micro SD. Vous pouvez aussi en profiter pour gérer les paramètres d'internationalisation et configurer correctement le fuseau horaire de votre Raspberry pi.
Enfin, vous devrez changer le mot de passe utilisateur pour des raisons évidentes de sécurité (surtout si plus tard vous comptez laisser l'accès SSH ouvert depuis l'extérieur). L'accès SSH s'active d'ailleurs dans les options avancées (8. Advanced Options). Une fois cet accès configuré vous n'avez plus besoin d'écran. Vous pourrez vous connecter en SSH depuis un autre ordinateur sur votre réseau local (le port utilisé pour SSH étant souvent bloqué par le pare-feu de votre box Internet vous ne pourrez pas y accéder depuis l'extérieur)
Avant de vouloir aller plus loin il est important de donner à notre Raspberry pi une IP fixe afin de pouvoir s'y connecter facilement depuis le réseau local. En effet, par défaut le Raspberry pi va changer d'IP à chaque connexion ce qui peut rapidement s'avérer pénible. Cette configuration peut se faire de 2 façons.
/etc/network/interfaces
et en remplaçant la ligne Iface eth0 inet dhcp par :iface eth0 inet static
address 192.168.0.x
netmask 255.255.255.0
gateway 192.168.0.254
Faites alors bien attention à ne pas attribuer une IP déjà prise sur votre réseau. Une fois ces modifications effectuées, il vous faudra redémarrer le système.
sudo apt-get update && sudo apt-get upgrade –y && sudo reboot
La question que l'on peut se poser, c'est quelle utilisation faire d'un Raspberry pi. Même si on peut y installer une distribution capable d'afficher un bureau les performances sont loin d'être optimales pour une utilisation quotidienne. En revanche, c'est un moyen idéal de s'essayer à la configuration d'un serveur et de tester de nouvelles technologies fonctionnant sur Linux sans forcément avoir à faire le grand saut.
Un cas d'utilisation intéressant pour le Raspberry pi, et l'utilisation en tant que serveur Web. Évidemment, pour des raisons de performance, nous n'allons pas héberger de sites à gros trafic, mais le Raspberry pi peut faire office d'environnement de recette (pour héberger les sites temporairement pour les montrer aux clients). Pour cela il vous suffit d'installer apache, PHP et MySQL :
sudo apt-get update
sudo apt-get install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 php5-mcrypt
Par défaut, je préfère installer apache pendant le développement, car il me permet de manipuler la configuration via des fichiers htaccess, Mais si vous êtes plus à l'aise avec nginx rien ne vous empêche de l'utiliser. De la même façon j'installe PHP en tant que module apache pour éviter d'avoir à faire trop de configuration. Après avoir installé ses différents composants vous devriez voir une page Web s'afficher lorsque vous tapez l'adresse IP locale de votre Raspberry pi avec le fameux message it works
. Vous pourrez alors placer vos projets dans le dossier /var/www
pour les rendre visible ou faire un lien symbolique vers le dossier contenant vos projets.
Si vous essayez d'accéder aux Raspberry pi depuis l'extérieur, en tapant votre adresse IP, vous n'obtiendrez rien. En effet, la plupart des fournisseurs d'accès Internet fournissent une box équipée d'un pare-feu et le port 80 est bloqué, vous devrez alors configurer ce pare-feu afin de laisser le port 80 ouvert et le rediriger vers votre Raspberry pi (la configuration dépend du FAI).
Un autre cas d'utilisation intéressant est la mise en place d'un serveur pour versionner ses différents projets. Si vous ne souhaitez pas l'interface visuelle pour gérer vos différents dépôts il vous suffit de configurer correctement vos différents accès SSH, le seul prérequis sera alors l'installation de Git.
sudo apt-get install git
Ceci étant dit, ce n'est pas très pratique si on souhaite travailler à plusieurs. Dans ce cas-là on pourra utiliser Gogs qui nous permettra d'héberger un service git très simplement avec très peu de configuration. Pour faire fonctionner ce service vous aurez besoin d'une base de données MySQL ainsi que du langage go, la configuration étant un petit peu longue je vous renvoie vers l'article original.
Par défaut le stockage de la carte SD peut s'avérer relativement limité, quand j'expérimente avec le système il m'arrive assez souvent de tout péter et du coup je préfère séparer les fichiers sur un espace de stockage externe comme une clé USB ou un disque dur externe. Si vous le souhaitez vous pouvez monter des périphérique de stockages supplémentaires :
sudo blkid -o list # Pour trouver le périphérique non monté
sudo mkdir /mnt/usbdrive
sudo mount /dev/sda2 /mnt/usbdrive
En revanche si votre système de stockage est en NTFS la configuration est un peu plus complexe car vous devrez au préalable installer des drivers pour que linux puisse prendre en charge ce format (mais ce n'est pas idéal car vous ne pourrez pas faire de liens symboliques ou gérer correctement les permissions sur une partition NTFS). Le plus simple est de formater votre partition en FAT32 pour qu'elle reste lisible par les autres système d'exploitation et supportée par le Raspberry pi.
Le Raspberry pi est un très bon moyen d'expérimenter de nouvelles choses et de découvrir un petit peu plus en profondeur l'univers de Linux. Donc si vous êtes intéressés par ce système d'exploitation et que voulez en apprendre plus sur la configuration d'un serveur ou sur l'utilisation des lignes de commande c'est un bon moyen de se faire la main à moindre coût. Si vous avez des exemples d'utilisation en plus de ceux présentés ici n'hésitez pas à poster un commentaire.