Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

ADD

Astuces du dimanche #6

Rédigé par dada / 06 janvier 2019 / Aucun commentaire


Ça faisait longtemps que je n'avais pas fait de ADD. En voici une très orienté Kubernetes.

Grafana

Vous avez installé le Prometheus Operator et vous ne savez pas où est passé le traditionnel couple utilisateur/mot de passe admin/admin ? L'info est ici : l'utilisateur est bien admin, mais le mot de passe est prom-operator.

Rook

Impossible de mettre la main sur le Dashboard ? La configuration a changé avec la version 0.9 : tout est ici.
Votre cluster hurle à coup de HEALTH_ERR ? Toujours à cause de la 0.9, deux modules sont en erreur : l'issue est ici. Rien de grave, le cluster tourne bien malgré les alertes. Les manipulations pour corriger le tir sont décrites par là.

Version de Docker

Les versions de docker se suivent et ne sont pas toujours compatibles avec ce que demande Kubernetes, pour installer une version précise :
export VERSION=18.03 && curl -sSL get.docker.com | sh
Prenez le temps de bien supprimer/purger l'ancienne version de docker avant de lancer la commande et d'installer Git. Notez aussi que ça vous empêchera d'utiliser le bon vieux couple "apt update && apt upgrade".

Init d'un Cluster k8s

Si vous installez un master sur un serveur n'ayant qu'un seul CPU, ignorez l'erreur avec :
--ignore-preflight-errors=NumCPU
Si vous voulez forcer l'API à utiliser un réseau spécifique, genre un réseau privé basé sur, disons, WireGuard :
--apiserver-advertise-address="10.0.42.1"
Où 10.0.42.1 est l'IP de l'interface VPN de votre Master.

Méfiez-vous des Resources

Utiliser Kubernetes sur des petits serveurs comme ceux que j'utilise chez Hetzner peut vous pousser à mettre en place des limitations de ressources sur vos conteneurs. Dans mon cas très particulier, où je suis quasiment le seul utilisateur, il est plus efficace de ne pas limiter les conteneurs, quitte à les voir éclater le CPU pendant quelques secondes. Avec des limitations, j'ai réussi à monter à plus de 200 de load pour 2 CPU. Voilà.

Astuces du dimanche #5

Rédigé par dada / 13 septembre 2015 / 2 commentaires


Et de 5 ! Si vous avez raté les quatre autres ADD, c'est par ici.

Fichiers / Nautilus

Avec les nouvelles versions, ils ont décidé de faire sauter l’accès au chemin complet vers le répertoire dans lequel on est. Frustrant, mais sans doute rassurant pour le petit nouveau. Pour le retrouver, et surtout le modifier, la combinaison ctrl + l le fait réapparaître.



Faire des recherches dans htop

Htop est un super utilitaire qui permet de voir l'état d'une machine...ou pas :



Il est complet, très complet, ce qui fait que je passe souvent trop de temps à y chercher info. F3 permet de faire des recherches, mais / aussi ! Si vous êtes un adorateur de VIM, pensez-y, ça fait plaisir.

Trouver des liens symboliques cassés

Rien de plus chiant que de vouloir faire une archive en tar.gz et de se prendre une erreur obscure. Souvent, c'est une histoire de liens symboliques cassés. Voici comment les retrouver :
find -xtype l

Et voilà, corrigez le tire, faites le ménage et archivez tranquillement.

Bon dimanche !

Astuces du dimanche #4

Rédigé par dada / 10 mai 2015 / 2 commentaires


Quatrième version des astuces du dimanche ! Je dois avouer que j'aime bien cette formule simple et rapide pour partager des astuces peu révolutionnaires mais qu'il fait bon rappeler de temps en temps.

Au programme de cette semaine : partager des fichiers en réseau sans se prendre la tête et comment créer une archive de sauvegarde (pour un backup, par exemple) et vous l'envoyer alors que vous n'avez pas de place sur le disque dur.

Partager ses fichiers via python

Sans clés USB ou système de partage en réseau, il est bien difficile de partager un fichier avec le PC du voisin. La solution suivante permet de se servir de python pour créer un serveur web simple. Il sera accessible depuis votre adresse IP et le port spécifié.

  • Avec python 2.7 ou plus
# python -m SimpleHTTPServer 80
  • Avec python 3 ou plus
# python -m http.server 80
Lancez l'une de ces commandes depuis un terminal ouvert là où se trouve le ficher à transférer, donnez votre IP et le port à votre pote/collègue et le tour est joué. Attention tout de même à ne pas lancer cette commande depuis votre /home/ sous peine de partager l’intégralité de votre vie privée ;-)

Création et envoie d'archive par le réseau

C'est un truc que je rencontre souvent au boulot : faut faire un gros tar.gz de sauvegarde et le placer bien au chaud sur une autre machine mais pas moyen d'y arriver avec l'espace disque disponible.
Pas de panique, la commande tar associée à ssh, à un pipe et cat permette de faire des miracles.

ssh -n ServeurDistant -p PORT 'tar zcvf - toto.txt' | cat - > toto.tar.gz

Avec ça, depuis votre terminal, vous récupérez le contenu de toto.txt, que vous archivez simplement sur votre disque dur local. Celui du serveur distant n'est plus utilisé : terminé le problème de place !

Bon dimanche ! :)

Astuces du dimanche #3

Rédigé par dada / 19 avril 2015 / 4 commentaires


Aujourd'hui je vous parle de deux utilitaires qui devraient être connus de tous, ou presque, enfin, ceux qui gèrent des serveurs : Tmux et Screen.

Tmux

On m'en parle depuis pas mal de temps. Jamais je n'avais fait l'effort de m'y mettre de peur de devoir changer trop d'habitudes. Ça, c'était jusqu'à il y a encore quelques jours. Je sais maintenant m'en servir et pourquoi. Conclusion : c'est super !

Installer le paquet

aptitude install tmux

Utiliser tmux

C'est là que ça demande de la pratique, mais pas tant que ça. Une fois que vous connaissez les 5 commandes les plus intéressantes, vous pouvez être le roi du monde :
  • ctrl^b + " = Découpage horizontal
  • ctrl^b + % = Découpage vertical
  • ctrl^b + o = Changer de fenêtre
  • ctrl^b + x = Fermer la fenêtre actuelle
  • ctrl^b + z = Passer en plein écran
A partir de là, vous pouvez vous amuser à afficher des choses comme ça :




De gauche à droite : un echo tout simple, Htop, Emacs avec 2 fenêtres et Emacs affichant le code d'une image PNG en hexl-mode. Le tout dans une seul terminal ouvert. C'est quand même chouette. Notez l'inception Tmux dans Emacs ! :-)
Vous l'aurez compris, Tmux permet d'utiliser plusieurs terminaux dans un seul affichage. Super pratique dans un nombre incalculable de cas. Vous trouverez sans doute une bonne occasion de vous en servir.

Screen

Installer Screen

aptitude install screen
Screen reprend une fonction de Tmux dont je n'ai pas parlé au dessus puisque je ne m'en sers tout simplement pas. Screen permet de détacher un terminal virtuel. En bon français, on pourrait dire que le terminal passe en tâche de fond tout en continuant de fonctionner et sans qu'une action ne le dérange. On peut reprendre la main via une simple commande et rejouer avec ultérieurement.

J'utilise screen dans deux cas : pour faire tourner mon pod diaspora et pour exécuter des commandes extrêmement longues sur un serveur. Screen détachant le terminal dans lequel la commande est exécutée, celle-ci devient insensible à une déconnexion et continue ainsi à tourner. Ça sauve la vie ce genre de chose.

Utiliser Screen

  • screen -S nomdelasession = créer une session
  • screen -ls = liste les sessions en cours
  • screen -r nomdelasession = permet de récupérer une session

Mais encore :

  • ctrl^a + d = détache le terminal en cours
  • ctrl^a + n = va au terminal suivant
  • ctrl^a + p = va au terminal précédent
  • ctrl^a + c = créer un nouveau terminal

On pourrait dire que Tmux est plus avantageux que Screen puisqu'il permet aussi de détacher les terminaux mais, personnellement, je les vois vraiment dans deux rôles différents. Tmux pour le bordel, Screen pour le détachage de terminal.

Voilà pour ce dimanche. Je vous laisse fouiller les mans des deux outils pour trouver ce qu'ils cachent encore. Entre Tmux, Screen et Emacs, je vous souhaite bon courage pour ne pas vous tordre les doigts !

Astuces du dimanche #2

Rédigé par dada / 29 mars 2015 / 3 commentaires


Le hasard est si bien fait qu'il m'a proposé de naviguer vers un site web dont l'accès est officiellement bloqué. N'aimant pas qu'on décide à ma place ce qu'il faut ou pas faire, voici une solution pour les utilisateurs des dérivés de Debian, facilement adaptable pour toutes les distributions.

Astuce 1 : Le filtrage

Installer bind9

On installe son propre serveur DNS sur sa machine :
aptitude install bind9

Configurer son utilisation

  • Commentez toutes les lignes présentes dans votre /etc/resolv.conf et n'y laissez que nameserver 127.0.0.1.
  • Indiquez à votre gestionnaire de connexion de ne plus se servir d'un autre DNS que celui que vous venez d'installer.


Remarquez que j'ai viré la recherche automatique de DNS et que j'ai ajouté l'IP 127.0.0.1.

Redémarrez votre gestionnaire de connexion et le tour est joué. J'ai réussi à aborder le galion.

Astuce 2 : ownCloud et le .htaccess perdu

L'autre astuce vient des soucis rencontrés pendant une installation manuelle de ownCloud. Si, après la configuration du compte administrateur et de la base de donnée, l'installateur vous annonce que vous n'avez pas la bonne version du .htaccess :

.htaccess file has the wrong version. Please upload the correct version. Maybe you forgot to replace it after updating?

Voici ma solution :
  • Allez prendre le .htaccess directement dans le dépôt Github de votre version d'ownCloud. Par ici pour la 8.0.2.
  • Et créez-le avec votre éditeur de texte préféré (emacs!) à la racine de votre installation de ownCloud. N'oubliez pas de lui donner les bons droits.

Reprenez l'installation de zéro, en vidant la base de données, si vous ne voulez pas vous prendre un "Nom d'utilisateur déjà utilisé", et le tour est joué.

Voilà voilà. En espérant que ça vous aide aussi.