S'embarquer dans Kubernetes from scratch (ou presque).
#Import 2023-08-15 20:39

S'embarquer dans Kubernetes from scratch (ou presque).

Dans ce retour d’expérience, je partagerai mes impressions et mes observations sur l’utilisation de Kubernetes dans différents contextes et je vous donnerai mon point de vue sur les avantages et les défis de cet outil passionnant.

Tout d’abord, il existe plusieurs manières de tester Kubernetes et pas mal de distributions avec tout un outillage déjà fourni autour. Petit florilège :

  • k3s: version minimaliste de kube
  • microk8s: dérivé Canonical de kubernetes
  • minikube: version simple upstream de kube pour maquetter et prendre en main le tout
  • k8s: Upstream vanilla
  • OKD: version upstream communautaire de la distribution Kubernetes OpenShift de Red Hat
  • MicroShift: dérivé minimaliste d’OpenShift
  • Tanzu: Distribution de VMware pour Kubernetes
  • Rancher: Distribution de SUSE pour kube

Je ne vais pas expliquer ici comment on utilise Kubernetes, abrégé en K8S, chose couverte partout, dans toutes les langues. Ce sera simplement un retour sur comment j’ai abordé le sujet à ce moment-là, des erreurs que j’ai pu faire, des conseils sur comment ne pas tomber dans certains pièges ou problèmes et quelques astuces qui m’auront bien aidé et m’aident toujours d’ailleurs.

  • Romain Forlot
Hashicorp Vault : mise en place sur un kube vanilla
#Import 2023-08-15 20:39

Hashicorp Vault : mise en place sur un kube vanilla

Hashicorp est bien connu des DevOps grâce à ses outils toujours bien foutus, permettant de gagner du temps un peu partout. Ici, intéressons-nous à leur outil Vault.

Cet outil vous permettra de gérer vos secrets de votre infra et voir même de les générer dynamiquement avec une gestion du cycle de vie et droits. Vous pouvez avoir votre app qui utilise un rôle que l’administrateur aura préalablement défini pour en limiter la portée, et qui utilisera un token pour elle seule. Ce token aura une durée de vie limitée dans le temps afin de réduire le risque d’être compromis. Et si celle-ci est compromise alors la portée de la compromission étant déjà basse, selon le rôle que vous lui aurez donné, pourra être révoqué sur ce crédential uniquement sans pour autant remettre en cause l’entièreté du Vault.

  • Romain Forlot
Troubleshooting encore... Résolution DNS avec du Cilium et des pods en HostNetwork.
#Import 2023-08-15 20:39

Troubleshooting encore... Résolution DNS avec du Cilium et des pods en HostNetwork.

Petite note de la soirée avec le setup d’une stack Elastic. Pour le setup de la stack, je vous laisse lire la belle doc upstream d’Elastic et l’installation de celle-ci par l’opérateur OLM (Operator Lifecycle Manager) qui va bien. Ce qui est intéressant ici c’est sa mise en oeuvre conjointement au CNI (Container Network Interface) Cilium. Cilium outre le fait qu’il soit très à la mode en ce moment, notamment parce qu’il utilise les eBPF (confer la doc: which is no longer an acronym for anything) du kernel linux. Projet très en vogue en ce moment permettant de tourner des scripts en eBPF en kernel space. Une bonne explication est donnée sur ce blog, je trouve. Cela permet d’avoir des performances incomparable avec les autres CNI utilisant netfilter.

  • Romain Forlot
Mettre à jour CentOS 7 vers 8
#Import 2023-08-15 20:39

Mettre à jour CentOS 7 vers 8

Apparemment Red Hat supporte la montée de version entre 2 versions majeures (je redébarque après qqu temps passé sans utiliser de RHEL). Confer la doc. Un nouvel outil a été développé pour effectuer la procédure de mise à jour, Leapp. Cet outil se veut être un framework générique de mise à niveau d’OS Linux. Bon cela à tout de même l’air d’être bien collé aux systèmes de paquets RedHat RPM. Je l’ai pas trouvé sur ma Manjaro donc bon ! Je vous mets le petit laïus de présentation de l’outil:

  • Romain Forlot
Problème de résolution DNS intempestive sur K8S
#Import 2023-08-15 20:39

Problème de résolution DNS intempestive sur K8S

Petite note vite fait pour ne pas oublier ce problème un peu chiant. Vous avez un cluster K8S qui fonctionne et vous vous apercevez que lorsqu’il essaie de sortir et résoudre un host tel que blog.claneys.net, le pod vous retourne une erreur de certificat SSL self-signed.

Mon serveur utilisant Traefik en tant que reverse proxy L7, L4 et LoadBalancer, même si je n’utilise pour l’instant pas cette fonctionnalité, et ce certificat retourné était le sien. Stupéfaction, Incompréhension, comment se retrouve t’il à résoudre sur lui-même une requête externe ? Je me lance donc dans le debug de ce problème en utilisant un pod à cet usage, confer la doc. Je définis le petit manifest de mon pod de debug puis lance un petit shell pour inspecter ce problème :

  • Romain Forlot
#ghost

Contribute

Oh hey, you clicked every link of our starter content and even clicked this small link in the footer! If you like Ghost and you’re enjoying the product so far, we’d hugely appreciate your support in any way you care to show it.

Ghost is a non-profit organization, and we give away all our intellectual property as open source software. If you believe in what we do, there are a number of ways you can give us a hand, and we hugely appreciate all of them:

  • Romain Forlot
Purger les jobs systems d'UVB bloqués (Unitrends Virtual Backup)
#Import 2023-08-15 20:39

Purger les jobs systems d'UVB bloqués (Unitrends Virtual Backup)

Bon à savoir, voici la procédure pour purger des jobs systems restés actif alors qu’ils ont été terminés. C’est un bug qui peut arrivé, je n’en connais pas la raison mais j’ai constaté par exemple que des jobs de suppression de backups obsolètes ne se terminaient jamais et que visiblement la politique de rétention avait été respectée donc pour purger les jobs restant le support indique la procédure suivante (procédure donnée avec les logins/password par défaut évidemment) :

  • Romain Forlot
#Import 2023-08-15 20:39

VMware ESXi/vCenter : No data available from performance overview

Une erreur aussi estrange que chiante et qui empêche le check des VMs ainsi que de l’ESXi par des scripts distants style check_esx3.pl ou check_vmware_api.pl, l’impossibilité de récupérer les valeurs de performances d’un hôte et de ses VMs.

Symptômes :
– Impossibilité de visualiser les données de performances depuis l’onglet performances dans le client vSphere. Chaque vignette affiche “No data available”, même en sélectionnent Real Time.
– Idem pour les VMs
– Impossibilité de récupérer les valeurs de performances et de statuts de l’ESXi et de ses VMs depuis une API (ie : Vmware Perl SDK)
– Les autres ESXi du cluster peuvent très bien fonctionner

  • Romain Forlot
#Import 2023-08-15 20:39

VMware : LUN détectées en tant que snapshot par erreur.

Je me suis retrouvé bloqué dans une situation où je ne pouvais pas agrandir une de mes LUN iSCSI. Alors que pas de soucis pour les autres qui étaient sur le même NAS. Je ne comprenais pas pourquoi le bouton Augmenter était grisé dans la fenêtre des propriétés de la LUN.

Cette situation arrive lorsque votre LUN est détectée en tant que snapshot ou réplique de LUN. Cela arrive quand deux LUN présentent le même UUID. Plus d’informations ici :

  • Romain Forlot
#Import 2023-08-15 20:39

Graphite : Prendre en compte un changement dans la politique de rétention

La politique de rétention avec graphite est configurée dans le fichier storage-schemas.conf, que vous trouverez soit dans /opt/graphite/conf lorsqu’installé à partir des sources ou /etc/carbon lorsqu’installé par paquet RPM (et sûrement debian aussi). Je vous invite à lire la docs associée pour plus de détails sur comment ce fichier est construit.

L’édition de ce fichier ne suffit pas. L’espace pour stocker les métriques est pré-alloué et le fichier prévu pour acceuillir les nouvelles données. Il faut passer par une étape intermédiaire si vous voulez appliquer une nouvelle politique de rétention aux métriques déjà enregistrées qui redimensionnera le fichier. Ou bien il est possible aussi de supprimer les métriques à modifier qui seront recréer au redémarrage de carbon avec la bonne dimension.

  • Romain Forlot
#Import 2023-08-15 20:39

Memo : Utiliser un Active Directory pour l'authentification de Spacewalk.

Procédure utilisée pour avoir Spacewalk utilisant PAM pour l’authentification des utilisateurs. Le serveur est joint au domaine AD avec Winbind et on utilise Kerberos pour gérer l’authentification.

Après avoir suivi nombre de docs, posts de mailing-list, tuto en tout genre pour mettre en place toute la chaine d’authentification sur un AD. Voici ce qui a été déployé chez nous pour que Spacewalk puisse utiliser les utilisateurs de l’AD.

Spacewalk ne dispose pas de composants ou plugin permettant cette authentification. Il délègue cette tâche à PAM, le module utilisé par tout Linux pour authentifier les utilisateurs. PAM se branche sur à peu près tout et n’importe quoi permettant d’authentifier et je vous renvoie à leur site pour en apprendre plus.

  • Romain Forlot
#Import 2023-08-15 20:39

VMware : épurer l'event log en base MS SQL du vCenter

Si vous avez encore vos vCenter sous Windows server avec la base MS SQL Server sans avoir installé le SQL Management Studio Express sur le vCenter vous permettant ainsi d’administrer la base de donnée du vCenter vous êtes sans doute un peu bloqué. Surtout quand les events log stockés en base prennent une taille folle. En effet, l’épuration des events log n’est pas configurée par défaut après une installation de vCenter…

  • Romain Forlot
#Import 2023-08-15 20:39

Màj torrentCP : Amélioration de l'extraction du nom de fichier et meilleur détection d'un nom de film.

Pas mal d’amélioration depuis le dernier billet.

Le package python-IMDB fait son apparition comme dépendance, ce qui facilitera grandement la détection du nom du film détecté. Il faut cependant utiliser la version de dev, le site IMDB changeant régulièrement les règles pour accéder à sa base de données le paquet n’est sans doute pas suffisamment à jour pour pouvoir interroger correctement celui-ci.

Le nom du fichier (partie à gauche du point avant l’extension) est formaté puis envoyer en recherche à IMDB. Le résultat est le nom du film avec son année, ainsi il sera très aisé de pouvoir détecté à partir de son mediacenter favoris le film.

  • Romain Forlot
#Import 2023-08-15 20:39

Memo : Git

Créer une nouvelle branche à partir de la branche sur laquelle on se situe :

$ git branch -t <nouvelle_branche>

Pousser une branche local sur un dépôt distant :

$ git push origin <branche_locale>

où origin est le nom du dépôt distant, il est par défaut nommé origin mais il est possible d’en ajouter d’autre avec des noms choisis.

Supprimer une branche locale puis supprimer la branche distante :

$ git branch -d <branche> # Pour une branche complètement mergée
$ git branch -D <branche> # Pour une branche non complètement mergée
$ git push origin :<branche>

  • Romain Forlot
#Import 2023-08-15 20:39

Memo : Utiliser check_oracle_health avec Shinken =<1.4rc1

Ne pas oublier d’ajouter dans le script du service shinken l’inclusion du fichier de profile oracle permettant de positionner les variables d’environnements Oracle indispensable au bon fonctionnement du plugin.

Cela revient à ajouter les lignes suivante au fichier /etc/init.d/shinken :

# Load environment variables
. /etc/profile.d/oraenv.sh

A changer selon le nom du fichier évidement.

Et deuxième oubli qu’il faut éviter, ajouter le chemin des librairies Oracle installés dans la configuration de ldconfig en créant un fichier /etc/ldconfig.conf.d/oracle.conf avec la ligne correspondant au chemin des librairies Oracle :

  • Romain Forlot
#Import 2023-08-15 20:39

[Màj] torrentCP : Script python pour Transmission permettant de traiter les téléchargements terminés

Aaaaaaah, grosse mise à jour du script torrentCP. Nom pris à l’arrache, si y’a de meilleurs idées, dites le moi.

Comment ça marche ?

Avec transmission paramétré comme il faut, il exécute le script à chaque fin de téléchargement de torrent en transmettant des variables d’environnement permettant entre autre de récupérer l’ID du torrent géré par transmission. Le script tente de détecter si c’est un film ou une série basé sur une expression régulière. Simplement si dans le nom du torrent il détecte le format sXXeYY typique d’une série. Cela ne marche donc pas pour des dl de saisons entière, il faut que ce soit un épisode d’une série. (Ex: Community.S04E10.720p.HDTV.X264-DIMENSION )

  • Romain Forlot
#Import 2023-08-15 20:39

Memo : Changement d'hostname et nom de listener d'une base de donnée Oracle

Une astuce est d’utiliser vim et d’utiliser son moteur de remplacement par expression régulière ou bien d’utiliser directement sed. Dans vim, voici la commande à utiliser :

:%s/oldhostname/newhostname/

Et avec sed :

sed 's/oldhostname/newhostname/' fichiersAmodifier

Fichiers à modifier si changement hostname de base de donnée.
Sur l’host BDD :

/etc/hosts
$TNS_ADMIN/tnsnames.ora
$TNS_ADMIN/listener.ora

Sur l’host AS:

/etc/hosts
$ORACLE_HOME/network/admin/tnsnames.ora
$MW_HOME/frinst_1/config/OHS/ohs1/mod_plsql/dads.conf
$MW_HOME/frinst_1/config/tnsnames.ora
$MW_HOME/user_projects/domains/FormsReports/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/formsweb.cfg

Fichiers à modifier lors d’un changement de nom du listener sur l’host BDD évidement:

~dba/script/init.d/.sydtab # Spécifique à mon installation pour une installation standard d'Oracle, il n'existe pas
$ORACLE_HOME/network/admin/listener.ora

  • Romain Forlot
#Import 2023-08-15 20:39

[Màj] script d'action automatique après modification de fichiers et présentation de Watcher

Suite au précédent billet sur comment sauvegarder sa configuration automatiquement en combinant git et incrond. Voici une petite mise à jour du procédé, le précédent étant bugger pouvant même mener à une surcharge de la machine avec des OOM à la clé |o/.

Plusieurs problème au script donc, notamment quand des accès successifs et rapprochés sont fais à certains fichiers binaires menant à une cascade, de processus git créer pour commiter et pull les changements dans les dépôts clones. Ou encore des boucles d’un service qui démarre donc écrit dans un fichier qui fait redémarrer le service qui réécrit dans le fichier qui redémarre le service…

  • Romain Forlot
#Import 2023-08-15 20:39

Activer le presse papier commun entre le client vSphere et les VMs sur ESXi dans VMware

Voici un petit trick pour activer pouvoir copier/coller depuis votre poste sous MS Windows vers une VM sur un ESX. Il est indispensable d’avoir les VMware Tools d’installés et tant qu’à faire à jour.

Eteindre la VM puis éditer les paramètres et aller dans l’onglet Options. Dans dans Avancé –> Général, cliquer sur le bouton Paramètres de configuration et ajouter les lignes suivantes :

isolation.tools.copy.disable : FALSE
isolation.tools.paste.disable : FALSE

Redémarrer votre client vSphere et activer la VM. C’est bon vous pouvez copier/coller entre votre poste et la VM.

  • Romain Forlot
#Import 2023-08-15 20:39

[Màj] Importation depuis fichiers CSV d'OU, Groupes et Users dans AD

Mise à jour du script d’importation des OU, Groupes et Users dans AD. Avec la possibilité de créer des OU dans des OU.

Le format des fichiers csv est désormais le suivant :

Pour les utilisateurs :

Name;Firstname;Login;OU;Roaming

Pour les groupes :

Name;OU;Members

Et les OU :

Name;OU

Roaming est un champ optionnel permettant de définir les utilisateurs nomades. Ceux-ci seront intégrés dans un groupe pour les utilisateurs nomades en plus de leurs autres groupes. Peu importe la valeur spécifiée (mettre « Y » pour taguer un utilisateur comme nomade)
Les utilisateurs nomades sont les utilisateurs pouvant se déplacer avec leur poste de travail (eg : un ordinateur portable).

  • Romain Forlot
#Import 2023-08-15 20:39

Consolidation les fichiers du disque de la VM impossible!

Vous ne pouvez pas consolider les fichiers de snapshot d’une VM VMware avec l’erreur suivante :

“Impossible d’accéder au fichier car il est vérouillé” ?

Une solution est de redémarrer l’esx. Peu pratique…

Sinon faites un

lsof | grep nom_de_la_VM

lorsque celle ci est éteinte et tuer le processus responsable de ce lock.

Réessayer la consolidation qui devrait fonctionner cette fois.

  • Romain Forlot