Articles

Créer une image Docker de MongoDB pour Raspberry

Image
Comme déjà cité dans un précédent article, je me suis abondamment appuyé sur l'ouvrage de Jean-Philippe GOUIGOUX pour découvrir Docker. Malheureusement, les exemples cités ne fonctionne pas lorsque Docker est installé sur un Raspberry Pi. Le présent article reproduit l'exercice de création d'une image MongoDB adapté à l'architecture ARMv7 du Raspberry en utilisant comme image de base, l'image de Rasbian Stretch créée dans l'article intitulé " Créer une image Docker de Raspbian Stretch (v9) ", celle-ci étant dotée des utilitaires nécessaires à l'exercice. Il va y avoir trois étages de travail dans cet exercices : Les opérations à exécuter dans la machine hôte repérées par le prompt pi@Cluster01. Les opérations à exécuter dans le container repérées par le prompt root@ContMongoDB colorées en bleu. Les opération à exécuter dans le client MongoDB, lui-même lancé dans le container, colorées en orange. De plus, pour améliorer la lisibilités des...

Mettre à l'heure le Raspberry Pi

Installer les utilitaires NTP Le principe de NTP est de s'appuyer sur un pool de serveur NTP qui permettent de synchroniser les serveurs à partir l'heure exacte. Pour utiliser ce concept, les utilitaires NTP doivent être présents sur le serveur à mettre à l'heure. Si ce n'est pas le cas, il faut les y installer. L'installation des utilitaires NTP sur Rasbian se fait comme pour tous les composants : avec la commande apt-get . Et, pour générer de défaut de dépendance, on fera précéder la commande apt-get install par l'invocation de la commande apt-get update suivie de la commande apt-get upgrade . pi@Raspi04:~ $ sudo apt-get update . . . pi@Raspi04:~ $ sudo apt-get upgrade -y . . . pi@Raspi04:~ $ sudo apt-get install ntp ntpdate . . . pi@Raspi04:~ $ Configurer NTP La configuration de NTP se fait dans le fichier /etc/ntp.conf que l'on peut modifier avec l'utilitaire nano . Par défaut, les serveurs ci-dessous sont interrogés. Mais o...

Créer une image Docker de Raspbian Stretch (v9)

Image
Dans l'article intitulé " Comment choisir la version Rasbian du container de base pour docker ? ", nous avions vu comment instancier une image Raspbian Stretch. Cette image qui constitue un base stable de Rasbian est totalement dépourvue des utilitaires standards qu'on utilise habituellement avec le Raspberry comme l'éditeur nano ou la commande ifconfig pour connaitre les informations réseau du container. Le présent article décrit les opérations à effectuer pour créer une images de Raspbian Stretch dotée des utilitaires nécessaires. Cette image sera utilisée comme base pour tous les containers décrits sur ce blog. Dans ce qui va suivre, certaines opérations seront effectuées dans le container en activité, d'autres seront effectuées sur la machine hôte. Pour les distinguer, les commandes exécutées dans le container seront de couleur bleue et légèrement indentées par rapport aux commandes exécutées sur la machine hôte. Il sera aussi possible de les dist...

Comment choisir la version Rasbian du container de base pour docker ?

Image
Lorsque j'ai commencé à construire mes propres images docker , j'ai été quelque peu désemparé quant au container de base à utiliser. M'étant basé sur l’excellent ouvrage de Jean-Philippe Gouigoux pour appréhender les concepts relatifs de micro-services, je me suis retrouvé confronté à de multiples difficultés pour reproduire les exemples présentés du fait d'une incompatibilité des architectures. En effet, mon objectif était de faire fonctionner docker sur un cluster de Raspberry Pi. Le présent article présente quelque astuces pour instancier des images de base compatibles avec Rasbian. Caractéristiques techniques du Raspberry Pi Deux choses sont importantes à déterminer pour choisir la bonne image de base : Connaitre la version du processeur utilisée. Connaitre la version de Rasbian utilisée. Version du processeur du Raspberry Pi Au long de l'évolution des Raspberry Pi, le processeur utilisé a varié en suivant l'évolution des technologies. Par ail...

Installer docker sur Raspberry Pi

Image
Dans une série d'articles sur le ClusterHat, il a été présenté comment créer un super serveur Web utilisant trois Pi Zero en équilibrage de charge et un Pi Zero pour la base de données MySQL. La configuration décrite alors s'appuyait sur l'architecture physique du cluster en dédiant un Pi pour chaque fonction. Mais l'intérêt principal d'un cluster est de pouvoir embarquer plusieurs applications ou plusieurs services mobilisant des ressources de taille variable sans trop avoir à se préoccuper de leur localisation physique. C'est cette fonction que permet docker . Installation de docker L'installation de docker doit être effectuée sur tous les serveurs du cluster, y compris sur le contrôleur du cluster (ici le Raspberry Pi 3 servant de base au ClusterHAT). Afin de simplifier l'installation de docker , Docker fournit sur son site web ( get.docker.com ), un script bash permettant de l'installer en une seule ligne de commande : pi@Cluster0...

Installer un module PHP supplémentaire

Image
Il existe de nombreuses extensions disponibles pou PHP. Mais celle-ci ne sont pas forcément installées par défaut. Aussi est il nécessaire de pouvoir les installer postérieurement à l'installation principale du serveur PHP comme décrite dans l'article intitulé " Créer un serveur PHP" . L'installation d'une extension PHP se fait en deux temps : d'abord il faut installer l'extension sous Rasbian, puis ensuite modifier le fichier php.ini pour configurer cette extension. Exemple d'installation d'une extension : gd  Parmi les extensions disponibles, l'une des plus intéressantes et des plus amusantes à utiliser est l'extension gd (Graphic Draw). Cette extension permet de générer et de manipuler des images par programmation. La documentation de cette extension est disponible à l'adresse : http://php.net/manual/fr/book.image.php . Installation de l'extension gd sous Rasbian L'installation de gd sous Rasbian se fait de...

Affinité de session et PHP

Image
Dans l'article intitulé " L'affinité de session  avec ClusterHAT ", nous avons vu comment configurer HaProxy pour implémenter l'affinité de session. C'est à dire, à maintenir un cookie de session valable tout au long de la navigation sur le site dans le cas où plusieurs serveurs différents peuvent répondre en équilibrage de charge. Lorsque l'internaute  arrive sur la première page du site, HaProxy, tel qu'il est configuré crée un cookie nommé CLUSTER auquel il donne la valeur Z1 , Z2 ou Z3 en fonction du serveur qui répond. Cela permet d'implémenter l'afinité de session. Or, de son coté, PHP a créé un cookie de session nommé PHPSESSID auquel est associée un objet session manipulé en PHP par la variable globale $_SESSION . Or, ces deux cookies ont le même rôle. L'objet du présent article est d'utiliser le cookies de PHP pour implémenter l'affinité de session. Description du problème Afin de mettre en évidence le problème nou...