Initialisation d’un Raspberry à partir d’une image

L’objectif de la procédure est d’obtenir un raspberry opérationnel rapidement à partir d’une image qui contient déjà de nombreux composants et avec un paramétrage simplifié et réutilisable. 

Prérequis

  1. Avoir une adresse Gmail.com (avec validation en deux étapes pour permettre l’automatisation des envois de mails par des services depuis le raspberry)
  2. Avoir un compte ChangeIp.com (pour les accès externes via dns)
  3. Sur la Box Internet ouvrir pour les accès à distance  les ports HTTP et FTP (et/ou SFTP)
  4. Vérification de la possibilité de boot sur disque sans carte (à partir du RPI3) Fonctionnement sans carte SD

Installation

  1. Télécharger l’image depuis l’article du blog qui la décrit (ou la récupérer sur un autre support) Liste des Images
  2. Écrire l’image disque_n_c.img sur un disque dur avec Win32DiskImager (le disque sera totalement effacé). Une autre option est d’utiliser balenaEtcher si le disque n’est pas reconnu sur le PC.
  3.  Booter sur le disque dur sans carte SD (voir le point 4 ci-dessus).
  4. Se connecter en Ethernet :
    • IP fixe rj45 : 192.168.1.99
    • IP fixe en wifi : 192.168.1.100
    • Domoticz sur http port 8080 et https  port 5463
  5. Accéder au RPI en SSH avec Putty avec le user Pi et le mot de passe habituel 
  6. Aller dans le répertoire init avec un : cd /home/pi/domoticz/scripts/image/init
  7. Editer le fichier var_Exemple.txt et y mettre vos données (ou bien copier votre fichier s’il existe) et le sauvegarder dans le répertoire /home/pi/domoticz/scripts/image/init sous le nom var_Nom.txt (Nom étant le nom que vous souhaitez donner à votre Pi – Variable 17 du fichier). Ce fichier est utilisé par le script init.sh pour initialiser le Pi. Fichier de variables pour les images
  8. Editer le fichier var_scripts_Exemple.txt et y mettre vos données à la place (ou bien copier votre fichier s’il existe) et le sauvegarder dans le répertoire /home/pi/domoticz/scripts/image/init sous le nom var_scripts_Nom.txt. Ce fichier contient les variables qui seront utilisées par les shell de /home/pi/domoticz/scripts/divers. Il sera renommé et copié à son emplacement définitif par le script init.sh
  9. Editer le fichier crontab_Exemple et l’adapter à votre besoin (ou bien utiliser votre fichier s’il existe) et le sauvegarder dans le répertoire /home/pi/domoticz/scripts/image/init sous le nom crontab_Nom. Il sera utilisé par le script init.sh pour initialiser la crontab.
  10. Lancer la commande ./init.sh Astuce : un bon moyen pour faciliter la saisie du nom du fichier et éviter les erreurs, c’est de faire un ls -la juste avant le /init.sh et de copier/coller avec la souris le nom du fichier de variables.

Quelques points à connaître : 

  • Dans la version initiale de l’image, le répertoire /home/pi/domoticz/scripts/divers est vide. Il est alimenté par le script init.sh
  • Le répertoire /home/pi/domoticz/scripts/sauv qui contient les sauvegardes quotidiennes lui aussi est vide, il sera alimenté par le shell sauv_domoticz.sh qui sera lancé chaque nuit si la crontab est bien paramétrée.
  • Le répertoire /home/pi/domoticz/scripts/image/init n’est plus utilisé ensuite et vous ne devez rien modifier dans ce répertoire sauf les variables de init.sh qui se trouvent dans votre fichier de variables (équivalent de var_Modele.txt)
  • Les fichiers dans le répertoire /init ne sont (pour la plupart) pas utilisables directement car ils contiennent des zones de substitution utilisées par le script init.sh
  • Lire les commentaires du script init.sh pour mieux comprendre le fonctionnement 
  • Vous pouvez relancer init.sh autant de fois que nécessaire, les anciens fichiers sont tous remplacés à chaque lancement (sauf pour la partie blog/MariaDB qui ne doit être lancée qu’une seule fois)
  • La crontab est déjà initialisée et paramétrée, mais pour la mettre à jour : crontab –e faites vos modifications et sauvegardez avec Ctrl+o + quittez avec Ctrl+x. Si vous avez bien rempli toutes les variables, chaque nuit vous allez exécuter les 4 shells et recevoir 4 mails avec le résultat de leur exécution sur l’adresse mail du raspberry que vous configurez.
  • Monitor est accessible, il vous reste à configurer en fonction de vos souhaits. Allez sur la page Liens du blog pour l’accès.
  • Monit est accessible, attention, il faut attendre quelques minutes après un reboot pour que l’interface web de Monit soir disponible. Allez sur l’article Clefs pour l’accès.
  • Homebridge est accessible, mais il y a encore votre configuration personnelle à faire côté Domoticz
  • Le mode graphique a été supprimé dans les images Domoticz, il n’existe que dans les images Pi4 Bureautique, mais voici les commandes :
    • Pour passer en mode graphique, commande sudo raspi-config + Boot Options + Desktop / CLI + Desktop Autologin et ensuite sudo reboot ou reboot depuis raspi-config
    • Attention, pour utiliser ce mode, il faut un écran et un clavier/souris connecté directement au raspberry
    • Pour revenir en mode console (recommandé si on ne fait que du domoticz), lancer raspi-config dans la fenêtre terminal (termit dans la barre de menus du haut ou dans les icônes) du mode graphique et faire l’inverse ou bien : menu Framboise Préférences + Configuration du Raspberry Pi + choix Boot Vers la Console + Valider et reboot via le menu Framboise en haut à gauche de la barre de menu + Shutdown + Reboot
    • En mode graphique, Libreoffice 6 est installé et vous pouvez faire du traitement de texte et du tableur + Scratch, … et bien sûr Internet avec Chromium. J’ai aussi installé Putty/Filezilla et Notepad++ pour pouvoir configurer d’autre raspberry sans pc.
  • Parfois, il faut un arrêt électrique en plus du reboot, cela dépend du modèle de raspberry
  • Pour être plus générique, le user/mdp de domoticz est maintenant admindomo/domoadmin mais il y a encore peut-être des .lua à modifier + éventuellement d’autres choses (en particulier les accès externe via IFTTT).
  • Pour la sécurisation https avec certificat, Letsencrypt et Certbot sont installés mais à configurer.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *