Blog

  • Bientôt un cluster Raspberry de 4 nodes

    Bientôt un cluster Raspberry de 4 nodes

    Depuis quelques temps, j’ai envie de pouvoir jouer avec Docker, Ansible et Kubernetes . Je sais cela peut paraître bizarre voire étrange… mais bon….
    Pour réaliser ce projet, j’ai choisi de créer à la maison un cluster de Raspberry Pi 4. Un moyen simple et pas trop onéreux (en comparaison d’un cluster classique).

    Pour ce faire, j’ai commandé un peu de matériels à gauche et à droite…Les seuls choses qui me manque pour l’instant ce sont les Pi4 (ils sont en chemin…).

    A première vue il faut :

  • un petit nouveau à la maison : Raspberry Pi 400

    un petit nouveau à la maison : Raspberry Pi 400

    Voici quelques semaines, un Raspberry Pi400 est arrivé à la maison….

    Doté d’un processeur quadricœur 64 bits à 1,8GHz, d’un réseau sans fil, de la possibilité de connecter 2 écrans, de la lecture de vidéos 4K, le Raspberry Pi 400 est un ordinateur, intégré dans un clavier compact.Le Raspberry Pi 400 sera idéal comme machine d’appoint pour surfer sur le web, créer et éditer des documents, regarder des vidéos, et apprendre à programmer en utilisant l’environnement de bureau de Raspberry Pi OS.

  • Comment trouver automatiquement tous les Raspberry’s sur le réseau ?

    Comment trouver automatiquement tous les Raspberry’s sur le réseau ?

    Une adresse MAC (Medium Access Control ou contrôle d’accès au support) est un « numéro de série » unique affecté à chaque matériel du réseau Ethernet destiné à l’identifier dans un réseau. Cette adresse unique est attribuée par le fabricant à la fabrication du matériel.

    Chaque fabricant est également identifié d’une manière unique. La liste des identifiants est mise à jour régulièrement et est disponible sur le web.

    En utilisant une combinaison de commandes très simples, on peut donc déterminer le(s) fabricant(s) d’un élément réseau connecté à votre réseau !

    Récupération des identifiants utilisés dans les adresses MAC :

    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 
    

    Exemple :

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | tail 
    <VendorMapping mac_prefix="FC:F7:7B" vendor_name="Huawei Device Co., Ltd."/>
    <VendorMapping mac_prefix="FC:F8:AE" vendor_name="Intel Corporate"/>
    <VendorMapping mac_prefix="FC:F8:B7" vendor_name="TRONTEQ Electronic"/>
    <VendorMapping mac_prefix="FC:FA:F7" vendor_name="Shanghai Baud Data Communication Co.,Ltd."/>
    <VendorMapping mac_prefix="FC:FB:FB" vendor_name="Cisco Systems, Inc"/>
    <VendorMapping mac_prefix="FC:FC:48" vendor_name="Apple, Inc."/>
    <VendorMapping mac_prefix="FC:FE:77" vendor_name="Hitachi Reftechno, Inc."/>
    <VendorMapping mac_prefix="FC:FE:C2" vendor_name="Invensys Controls UK Limited"/>
    <VendorMapping mac_prefix="FC:FF:AA" vendor_name="IEEE Registration Authority"/>
    </MacAddressVendorMappings>
    youarewelcom@myhost : ~/Raspberry >

    Extraire uniquement les lignes pour Raspberry  :

    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry

    Exemple:

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry
    <VendorMapping mac_prefix="3A:35:41" vendor_name="Raspberry Pi (Trading) Ltd"/>
    <VendorMapping mac_prefix="B8:27:EB" vendor_name="Raspberry Pi Foundation"/>
    <VendorMapping mac_prefix="DC:A6:32" vendor_name="Raspberry Pi Trading Ltd"/>
    <VendorMapping mac_prefix="E4:5F:01" vendor_name="Raspberry Pi Trading Ltd"/>
    youarewelcom@myhost : ~/Raspberry >

    Récupérer les listes des périphériques réseau :

    La commande « nmap » permet d’explorer une réseau et de trouver les différents périphériques connectés au réseau.

    youarewelcom@myhost : ~/Raspberry > sudo nmap -sP 192.168.0.0/24 | head
    Starting Nmap 7.91 ( https://nmap.org ) at 2021-04-03 15:42 CEST
    Nmap scan report for xxxxxxxxx (192.168.0.1)
    Host is up (0.0059s latency).
    MAC Address: D4:5D:64:0E:C9:98 (Asustek Computer)
    Nmap scan report for yyyyyyyyy (192.168.0.15)
    Host is up (0.34s latency).
    MAC Address: 14:88:E6:80:20:67 (Unknown)
    Nmap scan report for zzzzzzzz (192.168.0.18)
    Host is up (0.24s latency).
    MAC Address: 0A:B2:56:90:50:8A (Unknown)
    youarewelcom@myhost : ~/Raspberry >

    Il suffit d’utiliser cet utilitaire combiné à quelques commandes pour obtenir de manière simple l’ensemble des Raspberry’s présent sur le réseau :

    # Retrieve the MAC Addresses prefixes for Raspberry
    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt
    
    # Scan the network to find the different devices (IP and MAC Address)
    nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'

    Exemple d’une manière de déterminer le hostname, l’ip et l’adresse MAC des Raspberry’s sur le réseau 192.168.0.0/24 :

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml\?download\=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt
    youarewelcom@myhost : ~/Raspberry > sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'
    192.168.0.200 DC:A6:32:E6:FB:7C
    192.168.0.201 E4:5F:01:04:38:61
    192.168.0.202 E4:5F:01:04:37:17
    192.168.0.203 E4:5F:01:04:38:55
    192.168.0.204 E4:5F:01:04:38:0D
    youarewelcom@myhost : ~/Raspberry >

    Si vous avez un DNS ou que vous avez adapté votre ‘/etc/hosts’, vous obtiendrez :

    youarewelcom@myhost : ~/Raspberry >  sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'
    pi4node000 192.168.0.200 DC:A6:32:E6:FB:7C
    pi4node001 192.168.0.201 E4:5F:01:04:38:61
    pi4node002 192.168.0.202 E4:5F:01:04:37:17
    pi4node003 192.168.0.203 E4:5F:01:04:38:55
    pi4node004 192.168.0.204 E4:5F:01:04:38:0D
    youarewelcom@myhost : ~/Raspberry >

    Cela sera très utile pour ansible

  • Comment migrer un site wordpress vers un nouvel host ?

    Comment migrer un site wordpress vers un nouvel host ?

    Sur le host actuel (OLD-SRV) :

    Extraire le contenu de la base de données WordPress :

    Allez dans le répertoire contenant votre site web and récupéré le contenu de votre base de données WordPress via WP-CLI

    cd /var/www/mydomain.tld/htdocs
    wp db export --allow-root

    Remarque : Si WP-CLI n »est pas installé sur votre serveur, exécutez les commandes suivantes :

    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp

    Sur le nouvel host (NEW-SRV) :

    Transférer les fichiers de votre host actuel (OLD-SRV) vers votre nouveau host (NEW-SRV)

    Pour migrer les files de votre host actuel vers votre nouveau serveur, nous utiliserons rsync car c’est rapide and secure (fichiers transférés via SSH). Vous pouvez, bien sûr, configurer un « password-less » SSH Login entre les deux hosts.
    Voici les commandes à exécuter pour copier les fichiers de votre host actuel (OLD-SRV) vers le nouveau (NEW-SRV):

    rsync -avzh --progress --ignore-existing \
    root@OLD-SRV:/var/www/mydomain.tld/htdocs/ \
    /var/www/mydomain.tld/htdocs/

    Ne gardez pas le fichier ‘wp-config.php’

    Le fichier « wp-config.php » contient principalement les paramètres de votre base de données. Vu que sur le nouvel host, vous n’avez probablement pas les même paramètre, il est préférable de renommer le fichier « wp-config.php » afin de permettre l’importation des données dans votre nouvelle base de données.

    Exemple de commande à éxécuter pour renommer le ‘wp-config.php’ :

    mv /var/www/mydomain.tld/htdocs/wp-config.php /var/www/mydomain.tld/wp-config.php.bak

    Restauration de la base de données du host actuel sur le nouvel host (NEW-SRV)

    Nous allons utilisé WP-CLI pour importer facilement la base de données que nous avions transféré dans une étape précédente.

    cd /var/www/mydomain.tld/htdocs
    wp db import my_domain_tld-2020-08-21-XX44z4.sql --allow-root
    rm mydomain_co-2020-08-21-XX44z4.sql
  • Qu’est-ce que le web hosting ?

    Qu’est-ce que le web hosting ?

    Souvent on entend les termes « WEB HOSTING » ou « HEBERGEUR », qu’est-ce qui se cache derrière ces termes ?

    En fait, pour avoir un site web il faut que ce site soit enregistré quelque part ! C’est ce que l’on appelle l’hébegement. Ce service d’hébergement est généralement réalisé par une société spécialisée. En effet votre site doit être accessible mais lorsque votre . Il en existe des centaines (en étant gentil). Hélas toutes ne se valent pas loin de là !

    Avant d’aller plus loin, il faut aussi comprendre qu’il y a différentes manières de « stocker »/ »héberger » votre site web en fonction de vos besoins.

    Voici les principaux types de hosting :

    • Self hosting / Votre propre hébergement
    • Shared hosting / Hébergement mutualisé
    • Virtual Personal Server (VPS) / Serveur virtuel
    • Dedicated server / Serveur dédié

    Je ne parlerai pas du « self hosting » car cela ne s’applique que très de personnes. En effet avec ce genre d’hébergement, il faut absolument tout gérer soi-même (de l’alimentation à la gestion du serveur en passant part le réseau et le service 7 jours sur 7 et 24 heures sur 24).

    Shared hosting / Hébergement mutualisé

    Le principe est relativement simple : différents sites web appartenant à différentes personnes partagent le même serveur. Tous les sites hébergés sur ce serveur partage les mêmes ressources. Chacun partage les mêmes ressources mais chacun chez soi… Vous avez exclusivement accès à vos fichiers, vos données et vos sites. Pour donner une image, c’est un appartement dans un gratte-ciel avec chaque pièce utilisée par quelqu’un de différent.

    Dedicated server / Serveur dédié

    Vous disposez de votre propre serveur physique (un nombre fixe de CPU’s, de RAM, de disque dur) avec lequel vous faites ce que bon vous semble. Seuls vos sites, vos bases de données sont sur ce serveur. Vous ne partagez aucune ressource avec qui que ce soit. Ce serveur est localisé dans un data center de votre hébergeur. Attention il faut savoir ce que l’on fait ! Il faut pouvoir gérer un serveur au niveau technique (LINUX, Database, Web Serveur, ….). Pour donner une image, c’est une maison individuelle. Vous avez accès à tout et vous êtes responsable de tout.

    Virtual Personal Server / Serveur Virtual (VPS)

    Un VPS est un mixte entre l’hébergement mutualisé et le serveur dédié. Vous disposez d’un serveur dédié virtuel (et non physique) hébergé sur un serveur physique. En fonction de l’offre que vous avez choisi et sur base de votre hébergeur, vous avez des ressources (des CPU, de la RAM, de l’espaces disque). Pour donner une image, c’est une maison à appartements où chaque appartement appartient à une seule personne.

    Thanks https://porositweb.com/ for the picture.
  • Qu’est-ce qu’un nom de domaine ?

    Qu’est-ce qu’un nom de domaine ?

    Internet est composé d’une multitude d’ordinateurs interconnectés. Chacun de ces ordinateurs est identifié de manière unique grâce à une adresse IP (aaa.bbb.ccc.ddd).

    Vous imaginez devoir retenir une série de 4 nombres pour chaque site web que vous voulez visiter ? Je suis certain que non, et donc depuis très longtemps, un système (DNS) permettant de traduire un nom de domaine en adresse IP a été inventé. Un petit exemple vaut mieux qu’un long discours: que préférez-vous ? utilisez « 172.217.22.46 » ou « google.com »….

    Un nom de domaine est donc l’équivalent d’une adresse postale sur Internet. Une adresse internet (URL) se compose généralement d’un préfixe (souvent www, world wide web) et du nom de domaine. Le nom de domaine est composé d’une série de caractères et d’une extension. Par exemple « you.arewel.com » (you = préfixe, arewel = nom de domaine, com = extension).

    Un nom de domaine est déposé et enregisté chez un fournisseur de domaines (Registrar). Vous achetez votre nom de domaine pour un certaine période, généralement un an et vous devez le renouveler pour qu’il continue à exister. Il existe une multiple de registrars dans le monde, ils ont tous des qualités et des défauts. Leur rôle est d’enregistrer votre nom de domaine, de l’associer avec une adresse IP et de communiquer ces informations sur internet.

    En gros et en simplifiant énormément, à chaque fois que quelqu’un entre dans son browser l’URL https://you.arewel.com, le browser envoie une demande au DNS et reçoit l’adresse IP correspondante.

  • Introducing Twenty Eleven theme

    Introducing Twenty Eleven theme

    Give a try to 2011 WP Theme… So far looks nice

  • Pourquoi l’iPad ne remplacera pas un vrai journal

    Pourquoi l’iPad ne remplacera pas un vrai journal

    https://www.youtube.com/watch?v=vfnM3EIEtyc

  • When a directory becomes a subdomain

    When a directory becomes a subdomain

    Quand on veut que chaque sous-répertoire devienne directement un sous-domaine : voici le « virtualhost » a ajouté dans le fichier Apache :

    <VirtualHost XXX.XXX.XXX.XXX>
    ServerAdmin webmaster@domain.com
    DocumentRoot /home/domain/www ServerName www.domain.com
    ServerAlias domain.com *.domain.com
    VirtualDocumentRoot /home/domain/%-3.0
    UseCanonicalName off
    CustomLog /home/domain/logs/access_logs combined
    ScriptAlias /cgi-bin/ /home/domain/cgi-bin/
    User domain Group users
    </virtualHost>