GCP Private Kubernetes cluster for Helm installation of Elasticsearch

In this article, I will list the steps needed to deploy an Elasticsearch cluster on a private Google Cloud Platform (GCP) Kubernetes cluster using Helm, from creating a docker image with Elasticsearch, to the creation of a private Kubernetes cluster and more.

Let’s begin.

Continuer la lecture de « GCP Private Kubernetes cluster for Helm installation of Elasticsearch »

Petite réflexion autour de l’auto-production d’électricité

Quelques points de réflexions concernant la question de l’autonomie énergétique, plus particulièrement en électricité. Autonomie au sens de produire en majorité l’énergie que l’on utilise.

On distingue deux façons d’utiliser l’énergie auto-produite. En premier lieu, on parlera d’auto-consommation, où l’énergie électrique produite (par des panneaux solaires, une éolienne, …) est réinjectée directement dans le réseau, parfois contre rétribution. Dans ce cas-là, l’énergie produite est directement consommée au niveau de l’habitation. En cas de surplus, l’énergie restante profite aux utilisateurs à proximité. La deuxième façon de gérer sa production électrique, consiste à la stocker dans des batteries, afin de pouvoir l’utiliser au moment voulu. Énergie immédiate, ou énergie pilotée, l’un n’excluant pas l’autre. Il doit être possible de faire de l’auto-consommation et de stocker le surplus dans des batteries.

Petit regard sur la norme « RT2020 », à priori en préparation, mais dont je n’arrive pas à mettre la main sur un seul brouillon de texte pour en connaître le contenu exact. De nombreux sites mentionnent l’obligation de passer à la construction de bâtiment « à énergie positive », c’est-à-dire que le bâtiment va produire plus que ce qu’il ne consomme. Pourquoi pas. L’idée ne me semble pas mauvaise à première vue, mais soulève quelques questions. Questions que se posent certainement toutes personnes ayant envisagé la production de courant pour une utilisation à l’échelle d’un logement.

Le problème principal de l’auto-consommation électrique sans stockage qui m’apparaît, réside dans le mode de production des énergies renouvelables et l’organisation de nos sociétés modernes. En effet, dans un monde où le lieux de travail est situé à plusieurs kilomètres, ou dizaines de kilomètres du lieu d’habitation, et donc de production de l’énergie, et en ajoutant à cela des horaires de travail simplifiés de 9h à 17h. Ajouter le temps de trajet domicile – travail et vous obtenez une habitation majoritaire vide au moment des pics de production de la dite habitation (moins vrai avec l’éolien et pour le cas du travail de nuit). Bref, si je prends une situation hypothétique inspirée de ma situation personnelle, en gros, il y a production d’énergie lorsque je suis absent, et lorsque je suis présent dans mon logement et que j’utilise donc de l’énergie, il n’y a pas, ou peu de production.

Pour utiliser l’énergie produite en journée et injectée dans le réseau car non consommée, il faut des centrales nucléaires, ou hydrauliques afin de me fournir de l’énergie lorsque j’en ai besoin et que je n’en produit pas. Si on liste les points de dépenses électriques continues dans un foyer classique, je trouve réfrigérateur/congélateur, chauffage (radiateur, ou électronique de chaudière), ventilation et enfin réseau ethernet (modem, routeur, switch, serveur). En fait, pour être certain de consommer la totalité de l’énergie produite, il faudrait alors sous-dimensionner l’installation, afin de s’assurer que toute l’énergie produite corresponde aux besoins minimum du logement.

Pas de solution tranchée donc, mais l’installation de quelques batteries est incontournable, si l’on souhaite bénéficier d’une réserve de courant en cas de coupure. Un peu comme un onduleur à l’échelle du logement, mais sans l’aspect correction du signal électrique. Pour la partie surplus de production, il serait juste que toute l’énergie injectée dans le réseau conduise à une rémunération, pas forcément à hauteur du prix d’achat d’énergie pilotée, ce qui ne semble pas toujours être le cas en cas d’installation de faible puissance (d’après les témoignages que j’ai pu lire ou entendre).

Je m’arrête ici pour cette première partie, qui pourra être développée par la suite, enrichie, prolongée, si le besoin ou l’envie se fait sentir.

Restreindre les actions d’une clé ssh

Petite découverte qui mérite d’être notée, il est possible d’appliquer des restrictions à une clé SSH sur la machine cible. Dans le fichier authorized_keys, on pourra en particulier restreindre la clé à une IP source, une plage d’IP, ou encore un domaine avec le paramètre from (Voir la documentation pour la syntaxe). Le paramètre command, permet quant à lui de restreindre les possibilités d’exécution de commande en forçant l’exécution de la commande configurée une fois l’authentification réussie. Le résultat de la commande est renvoyé en retour immédiat de la commande ssh. Il existe également un certain nombre d’autres options, par exemple no-port-forwarding ou no-x11-forwarding comme précisé dans le manuel. Voir aussi « Configuring authorized_keys for OpenSSH ».

from="192.168.10.42",command="/bin/date",no-port-forwarding,no-x11-forwarding,no-agent-forwarding ssh-rsa xxxx exemple@unicoda.com

[Routeur] Firmware alternatif: passage à FreshTomato

Au début de l’année 2018, j’avais effectué de nombreuses transformation du côté de mon LAN, transformations que j’avais évoqué brièvement dans « Du côté du LAN« , s’en prendre le temps de rentrer dans les détails. A ce moment là, j’avais effectué un changement de firmware sur mon routeur R7000, afin d’utiliser AdvancedTomato. Interface moderne, gain en fonctionnalités et en personnalisation, il m’est difficile d’envisager un retour en arrière.

Petit bémol à l’horizon, il n’y a pas eu de mise à jour effectuée sur ce firmware depuis novembre 2017. C’est pourquoi, en ce début d’année 2019, j’effectue une nouvelle migration, cette fois vers FreshTomato. Le projet est actif depuis plusieurs mois déjà et semble globalement plutôt stable, d’après les retours que j’ai pu lire sur la toile. Le projet est un fork de TomatoByShibby, système qui constituait déjà la base de AdvancedTomato, AdvancedTomato apportant surtout une refonte graphique de l’interface.

Pour l’installation de AdvancedTomato, je m’étais aidé de la vidéo « Netgear R7000 – How to install Tomato-ARM » dont je retiens les étapes d’installation suivantes:

  • Remise à zéro de la configuration du système du routeur.
  • Installation de l’image initiale du firmware.
  • Installation de l’image AIO (All In One) du firmware.
  • Suppression du contenu de la NVRAM.
  • Redémarrage

Par ailleurs, j’avais noté cette discussion explorant les moyens de désactiver l’allumage des différentes LEDs du routeur et éviter l’effet sapin de Noël la nuit. Possibilité maintenant offerte directement dans l’interface web du firmware.

Parmi les autres informations à noter, les informations de connexion des deux images « initial » et « AIO » de FreshTomato sont les suivantes :

  • Initial image : admin/password
  • AIO image : admin/admin

Ayant eu besoin de davantage d’informations dans les logs, j’ai cherché comment augmenter le niveau de verbosité, la commande à utiliser est donc nvram set mwan_debug=8 suivie d’un nvram commit , 8 étant le niveau maximal et 0 le niveau minimal.

Après maintenant plusieurs jours d’utilisation, je n’ai pas détecté de problèmes particuliers une fois la connexion établie. J’ai toutefois rencontré quelques problèmes à l’établissement de la connexion, car celle-ci ne s’effectue pas correctement lors du premier échange de récupération des paramètres IP auprès du DHCP du fournisseur d’accès. Le routeur reçoit bien une IP (172.16.77.155) et un masque de réseau (255.255.255.255), mais pas de passerelle (0.0.0.0), donc pas de connexion WAN. Déclencher immédiatemment une demande de renouvellement du bail DHCP via le bouton renew de l’interface permet de recevoir une configuration valide. Il me semble donc que la première négociation effectué au démarrage ou après application d’une nouvelle configuration du réseau, n’envoie pas les options d’authentification 77 et 90 requises par le serveur DHCP.

Pour palier à ce problème, j’ai ajouté le script suivant dans l’onglet « WAN Up (main) », qui vérifie la présence d’une passerelle valide une fois la connexion WAN établie. Dans le cas contraire, la connexion est réinitialisée afin de forcer une nouvelle requête DHCP, valide cette fois.

if [ "$(nvram get wan_gateway)" = "0.0.0.0" ]; then
  service wan restart
fi

Afin de parer à toutes éventualités, j’ai également configuré la vérification périodique de l’IP de la passerelle, via le service de cron proposé par le firmware.

[[ "$(nvram get wan_gateway)" = "0.0.0.0" ]] && service wan restart

Reste maintenant à profiter de ce nouveau firmware et à croiser les doigts, pour que celui-ci soit aussi stable que son prédécesseur !

Garder le contrôle

La relecture du texte nonparticipation de Nathan Toups m’inspire l’écriture de ce billet, afin de poser une bonne fois pour toutes certains principes que je souhaite suivre à l’avenir et que j’ai tendance à rechercher instinctivement après chacune de mes errances du côté des « réseaux sociaux ».

Quelques postulats de départ. L’objectif des « réseaux sociaux » et autres plateformes de contenu est majoritairement de maximiser le temps d’utilisation de la plateforme. Tous les moyens sont alors bons pour nous pousser à revenir, à rester et les algorithmes sont plutôt réussi pour trouver et proposer du contenu qui rentre dans nos centres d’intérêts. Précisons toutefois que le contenu proposé n’est pas forcément de mauvaise qualité, loin de là, il y a parfois de bonnes découvertes. Le problème réside pour moi dans le fait que le contenu est poussé vers l’utilisateur. Une décision est prise à ma place et on me force à y prêter attention, soit par une notification directe sur téléphone, soit par l’affichage de suggestions, la lecture automatique, ou par des mécanismes plus pernicieux de compteurs de pouces bleus, de nombre d' »amis » ou de « suiveurs ». Tout est fait pour exploiter les faiblesses, ou du moins certains mécanismes connus du cerveau.

Globalement, je définirais mon expérience de ces applications, médias et plateformes comme beaucoup de bruits, pour bien peu de connaissances, de liens. Passons sur le fait que sur les « réseaux », les gens partagent des choses qui les mettent en valeur, en général, ou des mises en scène d’eux-mêmes. Peut-on encore parler d’authenticité ? Quel intérêt également d’être en mesure de suivre la vie, les activités d’une personne que l’on côtoie peu, mais dont nous aurons l’impression de tout connaître car partageant tous les instants de sa vie (encore une fois, ceux que la personne voudra bien partager). Y-aura-t-il échanges ou discussion lors d’une éventuelle rencontre en personne, étant donné que nous pouvons avoir le sentiment de savoir tout ce que la personne à fait de sa semaine. A quoi bon la question « quoi de neuf ? » que certains posent parfois.

Bref, réseaux sociaux et autres applications tentant de s’imposer dans mon environnement ne me conviennent pas. Je vais donc commencer à pousser plus loin ce concept de non participation vers lequel je reviens instinctivement.

Du côté du téléphone, j’ai une nouvelle fois fais le nettoyage dans les applications, supprimé celles trop agressives dans lors politique de notification, celles trop intrusives et celles cherchant à accaparer l’attention par le simple fait d’être installée. En gros, le but est de réduire au maximum les déclencheurs de distraction, qui une fois détecté par le cerveau, demande un effort conscient pour être ignoré.

Je retiens donc les éléments suivants :

  • Mode ne pas déranger de 23h à 7h50, avec plage horaire légèrement modifiée les week-end.
  • Notifications sans contenu sur l’écran de verrouillage (La désactivation totale de l’affichage des notifications sur l’écran me semble contre-productive pour le moment).
  • Passage du téléphone en mode silencieux, en particulier pendant les horaires de travail, ou sur des périodes nécessitant une certaine concentration, ou plus simplement pour ne pas être interrompu dans son activité. Exception faite en cas d’attente d’un appel important et prévu.
  • Désactivation des notifications sur les applications non essentielles. Filtrage des notifications pour les applications de type messagerie. Ce n’est pas parce qu’un correspondant m’envoie un message à un temps t, que j’ai besoin de le savoir immédiatement. Je prendrais connaissance du message lorsque j’aurais décidé d’y accorder du temps et non pas sous l’impulsion du téléphone.

L’idée est de soulager le cerveau des mécanismes qu’induit ce fonctionnement d’application. Trouver, retrouver, libérer du temps, de cerveau, temps libre, utilisé, utilisable comme bon me semble et non comme on souhaiterait que je le fasse. Se libérer des distractions que la simple présence de l’application sur le téléphone peut parfois provoquer.

Bref, vous l’aurez compris, j’envisage une nouvelle fois de supprimer les quelques comptes restants sur les réseaux sociaux, en espérant que cette fois, ce soit la bonne. Ma manière de faire, c’est flux RSS et publication sur mon propre domaine.