Si tu n’as pas de salle serveur à 50 ans, on peut dire que tu as raté ta vie ;)

J’ai voulu reprendre une citation de Jacques Séguéla : « Si à 50 ans on n’a pas une Rolex, c’est qu’on a raté sa vie ». Personnellement mettre plus de 8000 Euros dans une montre qui indique seulement l’heure, je trouve cela un peu stupide … Si je devais investir dans une montre sans hésiter je prendrais une Garmin Fénix 5X (Sapphire, Gray titane et carbone amorphe avec bracelet en titane et carbone amorphe) à 1200 Euros ( GPS, GLONASS et Galileo + carte TOPO de l’Europe  + cardio poignet Garmin Elevate + oxymètre de pouls + … ). Mettre 8000 Euros dans un montre qui indique seulement l’heure, misère. En plus on doit plus avoir de chance de se faire agresser avec une Rolex 😉 . Revenons à nos moutons, ou plutôt à notre salle serveur ( plus exactement notre boite serveur ).

Le matériel pour faire la salle serveur ( chez Amazon , désolé pour la publicité … je ne suis pas payé par Amazon, ni Garmin ) :

  • Carte Mémoire microSDXC SanDisk Ultra 64GB + Adaptateur SD. Vitesse de Lecture Allant jusqu’à 100MB/S, Classe 10, U1, homologuée A1  : 14,77 Euros x 7.
  • Anker A2123L12 Chargeur Secteur USB Anker PowerPort 6 Ports 60W – Chargeur mural avec technologie PowerIQ : 25,99 Euros x 2.
  • MaGeek [Paquet de 5pcs] 0.3m Court Micro USB Câbles Haute Vitesse USB 2.0 : 7,99 Euros x 2.
  • Raspberry Pi 3 Modèle B+, Carte-mère : 36,77 Euros x 7.
  • Boîte de rangement de 21 litres – Gamme Really Useful – Transparente : 20,39 Euros.
  • 5 pouces LCD B Rev2.1 Touch Control Win10 résistif Screen HDMI interface 800*480 with Bicolor case Supports Various Systems Pour Raspberry pi3/3B+/2 : 40,99 Euros.
  • TOOGOO(R) Or TEMPer PC portable capteur USB Thermometre Temperature Collecteur de Donnees Enregistreur : 6,41 Euros.
  • TP-Link TL-SF1008D Switch 8 Ports 10/100 Mbps (Bureau, Boîtier Plastique) : 9,8 Euros.
  • 1aTTack 1 aTTack Câble réseau UTP avec connecteurs RJ45 (Cat. 5 pièces) multicolore 10 colores 0.5 m x 10 : 8,59 Euros.
  • Ils – Clear Acrylic 5 Layer Cluster Case Shelf Stack for Raspberry Pi 3/2 B and B+ : 18,49 Euros.
  • ELUTENG Boitier Disque Dur Externe 2.5 » Boitier SSD HDD 7mm ¨¤ 9,5mm SATA 3.0 USB 3.0 5Gbps Disque Dur Portable UASP pour PC/Laptop Transparente : 12,59 Euros. (Pour les backup)
  • Kingston SSD A400 – 120GB Disque SSD (2.5″ , SATA 3) : 25,18 Euros. (Pour les backup, j’ai pas confiance dans les cartes SD)
  • iClever® 2.4GHz Mini clavier sans-fil (wireless) – AZERTY – Rechargeable : 22,99 Euros. (Maintenant c’est à 16,99 Euros

Total : 594 Euros, pour 7 processeurs indépendants avec 4 coeurs, donc 7×4  :).

Prix U Nb
SD Card 64 Go 14,77 € 7 103,39 € Mémoire 17 %
Alimentation 25,99 € 2 51,98 €
Cables USB 7,99 € 2 15,98 €
Raspberry 36,77 € 7 257,39 € Raspberry 43 %
Rangement 20,39 € 1 20,39 €
Ecran 40,99 € 1 40,99 €
Thermomètre USB 6,41 € 1 6,41 €
Switch 9,80 € 1 9,80 €
Cables 8,59 € 1 8,59 €
Rack 18,49 € 1 18,49 €
Boitier SSD 12,59 € 1 12,59 €
SSD 120 Go 25,18 € 1 25,18 € Mémoire 4 %
Clavier 22,99 € 1 22,99 €
TOTAL 594,17 €

Sinon pour un prix équivalent vous pouvez pendre un seul serveur : VIBOX Vision 54 PC Gamer Ordinateur avec War Thunder Jeu Bundle (4,2GHz AMD FX 8-Core Processeur, Nvidia GeForce GTX 1050 Carte Graphique, 8GB DDR3 1600MHz RAM, 1TB HDD, Sans Système d’Exploitation) : à 579,95 Euros sur Amazon. Mais cela ne permet pas de travailler sur un réseau … c’est moins fun.

A noter que dans mon installation j’ai mis deux anciens Raspberry que j’avais :

  • Vilros Raspberry Pi 3 Complete Starter Kit–EU Plug Edition : 64,99 Euros (septembre 2016)
  • Raspberry Pi modèle B, muni de 512 Mo de RAM (chez RS) : 58,80 Euros (novembre 2013).

Et oui, j’ai commencé en 2013 😉 .

Je pense qu’il est intéressant de mesurer la consommation électrique, pour cela il faut ajouter ( 30 Euros ):

  • Lindy 73167 Multiprise Suisse avec interrupteur 5 prises : 3,69 Euros.
  • AWOX – SMARTPLUG : 26,90 Euros. (Ne pas prendre AWOX : mauvaise qualité : https://www.cyber-neurones.org/2018/10/awox-smartplug-en-panne-apres-une-semaine-dutilisation/ : En panne après une semaine d’utilisation )

Le projet à voir est le suivant : https://github.com/sourceperl/smartplugctl .

En terme de consommation électrique normalement on doit être dans  les 7x2Watts+1 = 15 Watts ( à vérifier ).

A suivre.

La boite !

– Raspberry(s), multi-prise, clavier, écran, hub, …

Superbe découpage … misère.

Un rack de 5 Raspberry(s). et Papi Raspberry sur la droite …

Raspberry/Munin : Monitor d’un site WordPress distant ( httpresponsetime )

Installation d’un plugin en python : https://github.com/arthur-debert/munin-httpresponse-plugin/blob/master/httpresponsetime

$ sudo vi /usr/share/munin/plugins/httpresponsetime
 -> Copie du script.
$ sudo ln -s  /usr/share/munin/plugins/httpresponsetime /etc/munin/plugins/httpresponsetime
$ sudo chmod +x  /usr/share/munin/plugins/httpresponsetime /etc/munin/plugins/httpresponsetime
$ sudo apt-get install python-setuptools python-dev build-essential
$ sudo easy_install pip
$ sudo pip install httplib2

Ajout dans le fichier :

$ sudo vi /etc/munin/plugin-conf.d/munin-node
...
[httpresponsetime]
    env.urls https://www.cyber-neurones.org
...

Et on relance :

$ sudo munin-node-configure --shell
$ sudo service munin-node restart

Et voici le résultat :

Raspberry/Munin : RRDs: libpng12.so.0: cannot open shared object file ( DynaLoader.pm line 187 )

Après 24h ou Munin a fonctionné parfaitement, maintenant j’ai une erreur ?! Je pense qu’une mise à jours à casser Perl :

osmc@osmc:~$ sudo su - munin --shell=/bin/bash
munin@osmc:~$ munin-cron --debug
Can't load '/usr/lib/arm-linux-gnueabihf/perl5/5.20/auto/RRDs/RRDs.so' for module RRDs: libpng12.so.0: cannot open shared object file: No such file or directory at /usr/lib/arm-linux-gnueabihf/perl/5.20/DynaLoader.pm line 187.
 at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
Compilation failed in require at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
BEGIN failed--compilation aborted at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
Compilation failed in require at /usr/share/perl5/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/share/perl5/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/share/munin/munin-update line 14.
BEGIN failed--compilation aborted at /usr/share/munin/munin-update line 14.

A noter aussi que le ldconfig est un peu mal :

osmc@osmc:~$ sudo ldconfig
/sbin/ldconfig.real: /usr/lib/arm-linux-gnueabihf/libtevent-util.so.0.0.1 n'est pas un fichier de type ELF - il a un octet magique au début incorrect.
/sbin/ldconfig.real: /usr/lib/arm-linux-gnueabihf/libtevent-util.so.0 n'est pas un fichier de type ELF - il a un octet magique au début incorrect.

Je commence donc par une upgrade :

osmc@osmc:~$ sudo apt-get -f dist-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Calcul de la mise à jour... Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libass5 rbp2-image-4.4.16-4-osmc
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Fait
Les paquets suivants seront ENLEVÉS :
  diskmount-osmc udisks udisks-glue
Les NOUVEAUX paquets suivants seront installés :
  armv7-diskmount-osmc armv7-libass-osmc armv7-udisks-glue-osmc armv7-udisks-osmc rbp2-image-4.9.29-10-osmc
Les paquets suivants seront mis à jour :
  apt apt-utils armv7-connman-osmc armv7-libbluray-osmc armv7-libcrossguid-osmc armv7-libsqlite-osmc armv7-network-osmc armv7-splash-osmc base-files-osmc bind9-host busybox
  ca-certificates curl debian-archive-keyring eject fuse gcc-4.9-base gnupg gpgv libapache2-mod-php5 libapt-inst1.5 libbind9-90 libc-bin libc6 libconfuse-common libconfuse0 libcups2
  libcurl3 libdns100 libevent-2.0-5 libexpat1 libffi6 libfreetype6 libfuse2 libgcc1 libgcrypt20 libgnutls-deb0-28 libgraphite2-3 libicu52 libidn11 libisc95 libisccc90 libisccfg90
  libjasper1 liblcms2-2 libldap-2.4-2 liblwres90 libmad0 libmysqlclient18 libpcsclite1 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libprocps3 librtmp1 libsmbclient
  libssl1.0.0 libstdc++6 libtag1-vanilla libtasn1-6 libtevent0 libtiff5 libtirpc1 libvorbis0a libvorbisenc2 libwbclient0 libxml2 libxslt1.1 locales login mediacenter-addon-osmc
  mediacenter-skin-osmc multiarch-support mysql-common ntfs-3g openssh-client openssh-server openssh-sftp-server openssl passwd perftune-osmc php5-cli php5-common policykit-1 procps
  python-imaging python-pil rbp-bootloader-osmc rbp-userland-osmc rbp2-device-osmc rbp2-ftr-osmc rbp2-kernel-osmc rbp2-libcec-osmc rbp2-mediacenter-osmc rpcbind samba-common samba-libs
  sensible-utils ssh-app-osmc sudo tar wireless-firmware-osmc wpasupplicant
103 mis à jour, 5 nouvellement installés, 3 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 125 Mo dans les archives.
Après cette opération, 71,2 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O
...
osmc@osmc:~$ sudo ldconfig 
osmc@osmc:~$ 

Plus d’erreur avec ldconfig … Mais j’ai toujours un erreur :

osmc@osmc:~$ /usr/bin/munin-cron 
Can't load '/usr/lib/arm-linux-gnueabihf/perl5/5.20/auto/RRDs/RRDs.so' for module RRDs: libpng12.so.0: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type at /usr/lib/arm-linux-gnueabihf/perl/5.20/DynaLoader.pm line 187.
 at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
Compilation failed in require at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
BEGIN failed--compilation aborted at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 19.
Compilation failed in require at /usr/share/perl5/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/share/perl5/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/share/munin/munin-update line 14.
BEGIN failed--compilation aborted at /usr/share/munin/munin-update line 14.

Je vais donc refaire une installation de munin !

osmc@osmc:~$ sudo apt-get autoremove
...
osmc@osmc:~$ sudo apt-get update -y
...
osmc@osmc:~$ sudo apt-get install munin
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :
Les paquets suivants contiennent des dépendances non satisfaites :
 munin : Dépend: librrds-perl mais ne sera pas installé
         Dépend: munin-common (>= 2.0.33-1) mais 2.0.25-1+deb8u3 devra être installé
         Dépend: rrdtool mais ne sera pas installé
 rbp2-device-osmc : Dépend: armv7-splash-osmc mais ne sera pas installé
                    Dépend: rbp2-mediacenter-osmc mais ne sera pas installé
E: Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet
(ou indiquez une solution).
...
osmc@osmc:~$ sudo apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  ca-certificates-java fonts-dejavu fonts-dejavu-extra libasyncns0 libatk-wrapper-java libatk1.0-0 libatk1.0-data libdate-manip-perl libdatrie1 libdbi1 libdrm2 libfile-copy-recursive-perl
  libflac8 libgdk-pixbuf2.0-common libgif4 libgl1-mesa-glx libglapi-mesa libgtk2.0-common libhtml-template-perl libice6 libjasper1 libnspr4 libnss3 libpixman-1-0 libpulse0 libsctp1 libsm6
  libsndfile1 libthai-data libthai0 liburi-perl libvpx1 libx11-6 libx11-data libx11-xcb1 libxau6 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shm0 libxcb-sync1
  libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxtst6 libxxf86vm1 nginx-common tzdata-java
  x11-common
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets supplémentaires suivants seront installés : 
  armv7-libass-osmc armv7-libbluray-osmc armv7-libnfs-osmc armv7-librtmp-osmc armv7-libshairplay-osmc armv7-libsqlite-osmc armv7-splash-osmc fbset fontconfig-config gcc-6-base libc-bin libc-l10n
  libc6 libcdio13 libcrossguid0 libenca0 libfontconfig1 libfreetype6 libfribidi0 libgcrypt20 libgif7 libgnutls30 libgssapi-krb5-2 libharfbuzz0b libhogweed4 libicu57 libk5crypto3 libkrb5-3
  libkrb5support0 libldb1 liblzo2-2 libmad0 libmariadbclient18 libmicrohttpd12 libncurses5 libncursesw5 libnettle6 libp11-kit0 libpcrecpp0v5 libplist3 libpng16-16 libpython2.7
  libpython2.7-minimal libpython2.7-stdlib libreadline7 libsamplerate0 libsmbclient libssh-4 libssl1.0.2 libssl1.1 libstdc++6 libtag1v5-vanilla libtasn1-6 libtdb1 libtevent0 libtinfo5
  libtinyxml2.6.2v5 libwbclient0 libwebp6 libwebpdemux2 libwebpmux2 libyajl2 locales mediacenter-addon-osmc mediacenter-eventclients-common-osmc mediacenter-send-osmc mediacenter-skin-osmc
  mysql-common python-chardet python-imaging python-pexpect python-pil python-pkg-resources python-ptyprocess python-requests python-six python-talloc python-unidecode python-urllib3 python2.7
  python2.7-minimal rbp2-libcec-osmc rbp2-mediacenter-osmc samba-libs
Paquets suggérés :
  glibc-doc rng-tools gnutls-bin krb5-doc krb5-user python-pexpect-doc python-pil-doc python-pil-dbg python-setuptools python-cryptography python-idna python-openssl python-socks python-ntlm
  python2.7-doc binfmt-support
Paquets recommandés :
  manpages krb5-locales libgpm2 python-ipaddress
Les NOUVEAUX paquets suivants seront installés :
  armv7-libass-osmc armv7-libbluray-osmc armv7-libnfs-osmc armv7-librtmp-osmc armv7-libshairplay-osmc armv7-libsqlite-osmc armv7-splash-osmc fbset gcc-6-base libc-l10n libcdio13 libcrossguid0
  libenca0 libfontconfig1 libfreetype6 libfribidi0 libgif7 libgnutls30 libharfbuzz0b libhogweed4 libicu57 libldb1 liblzo2-2 libmad0 libmariadbclient18 libmicrohttpd12 libnettle6 libpcrecpp0v5
  libplist3 libpng16-16 libpython2.7 libreadline7 libsamplerate0 libsmbclient libssh-4 libssl1.0.2 libssl1.1 libtag1v5-vanilla libtdb1 libtevent0 libtinyxml2.6.2v5 libwebp6 libwebpdemux2
  libwebpmux2 libyajl2 mediacenter-addon-osmc mediacenter-eventclients-common-osmc mediacenter-send-osmc mediacenter-skin-osmc mysql-common python-chardet python-imaging python-pexpect python-pil
  python-pkg-resources python-ptyprocess python-requests python-six python-talloc python-unidecode python-urllib3 rbp2-libcec-osmc rbp2-mediacenter-osmc samba-libs
Les paquets suivants seront mis à jour :
  fontconfig-config libc-bin libc6 libgcrypt20 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libncurses5 libncursesw5 libp11-kit0 libpython2.7-minimal libpython2.7-stdlib libstdc++6
  libtasn1-6 libtinfo5 libwbclient0 locales python2.7 python2.7-minimal
20 mis à jour, 64 nouvellement installés, 0 à enlever et 344 non mis à jour.
Il est nécessaire de prendre 94,3 Mo dans les archives.
Après cette opération, 224 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O
....
osmc@osmc:~$ sudo apt-get install munin
...

C’est bon le problème est fixé ! Il fallait donc faire une réinstallation complète avec gestion des dépendances.

osmc@osmc:~$ ls -l /var/log/munin/*
-rw-r----- 1 www-data adm        0 sept. 19 21:09 /var/log/munin/munin-cgi-graph.log
-rw-r----- 1 www-data adm        0 sept. 19 21:09 /var/log/munin/munin-cgi-html.log
-rw-r--r-- 1 munin    munin      0 sept. 19 21:20 /var/log/munin/munin-graph.log
-rw-r--r-- 1 munin    munin 113181 sept. 21 19:05 /var/log/munin/munin-html.log
-rw-r--r-- 1 munin    munin  65840 sept. 21 19:05 /var/log/munin/munin-limits.log
-rw-r--r-- 1 root     root    4137 sept. 19 21:14 /var/log/munin/munin-node-configure.log
-rw-r--r-- 1 root     root  183560 sept. 21 19:05 /var/log/munin/munin-node.log
-rw-r--r-- 1 munin    munin 826029 sept. 21 19:05 /var/log/munin/munin-update.log
osmc@osmc:~$ hostnamectl 
   Static hostname: osmc
         Icon name: computer
           Chassis: n/a
        Machine ID: 1671b5b617884fdf85a465a5ac731b8f
           Boot ID: f8c6d2de5291463aa3a641224d1cda08
  Operating System: Open Source Media Center
            Kernel: Linux 4.9.29-10-osmc
      Architecture: arm

Raspberry/Mac OS : ApplePi-Baker : Créer une carte SD pour le Raspberry.

Téléchargement de ApplePi-Baker : ApplePi-Baker

A l’installation, petit message de sécurité :

Ensuite il ne faut pas utiliser le port SD du Mac, sinon on est en lecture seule :Avec un dongle via USB, cela fonctionne correctement :

J’utilise l’image : 2018-06-27-raspbian-stretch.img pour mon Raspberry Pi BCM2708 . Le « apt-get upgrade » avait tuer l’OS

Ensuite petite configuration :

pi@raspberrypi:~ $ sudo update-rc.d ssh defaults
pi@raspberrypi:~ $ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/root           15G    4,0G   10G  29% /
devtmpfs           213M       0  213M   0% /dev
tmpfs              217M       0  217M   0% /dev/shm
tmpfs              217M    5,9M  211M   3% /run
tmpfs              5,0M    4,0K  5,0M   1% /run/lock
tmpfs              217M       0  217M   0% /sys/fs/cgroup
/dev/mmcblk0p1      43M     22M   21M  51% /boot
tmpfs               44M       0   44M   0% /run/user/1000
pi@raspberrypi:~ $ runlevel 
N 5
pi@raspberrypi:~ $ systemctl get-default
graphical.target
pi@raspberrypi:~ $ sudo systemctl enable ssh.service
pi@raspberrypi:~ $ sudo systemctl set-default multi-user.target
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.
pi@raspberrypi:~ $ hostnamectl 
   Static hostname: raspberrypi
         Icon name: computer
        Machine ID: 0b646f6436cf4076bc65ccf9a7517e6c
           Boot ID: 176ccf1f96fc4d9891a5d453263d6e33
  Operating System: Raspbian GNU/Linux 9 (stretch)
            Kernel: Linux 4.14.50+
      Architecture: arm