Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

dimanche, 23 novembre 2014

#En_vrac 2 : News et tips du jour

Bonsoir cher journal toilé (Web log => blog), calendrier-2024.jpg

Fais le bilan :

Je regardais mes archives de blogging, cela va bientôt faire 5 ans que je publie mes petites notes.
Entre temps tout a changé :

  • Je suis passé d'étudiant à salarié
  • J'ai déménagé : 1,2,3,4,5 fois. En mode Bornien :D
  • Le blog est passé d'un mutualisé à un serveur dédié et dans pas longtemps vers l'auto-hebergement
  • J'ai continué à faire le tour des distributions GNU/Linux, je pense que je suis bien avec ma Debian. Je vais même retourné sous I3, le tiling me manque trop.

Il n'y a bien qu'une chose qui n'a pas changé : c'est mon rythme de publication.

Travail en cours sur des solutions libres :

  • Nous sommes en train de monter la supervision d'une infrastructure de plus de 2000 serveurs qui va être basée sur Zabbix. L'étude de faisabilité est en cours, le packaging va venir mais je pense que cela va être pas mal. Nous partons sur une architecture arborescente (superviseur national et une quarantaine de proxy) avec du SNMP. Est-ce que l'utilisation de l'agent Zabbix est à recommander par rapport à l'agen SNMP, si vous avez une expérience faites le moi savoir !
  • Un outil de déploiement centralisé de Puppet basé sur Ansible. Cela nous évite d'utiliser l'usine à gaz MCollective etc ... Cela me semble assez performant. L'outil est en recette mais se comporte plutôt très bien.
  • Un ordonnanceur Rundeck pour gérer l'ensemble des crons d'une partie de notre infrastructure, l'outil s'installe bien out-of-box. J'ai même réussi à lui faire utiliser CommandProxy.
  • Pydio, je pense que je vais l'installer sur mon serveur car cela s'installe facilement, la configuration est un peu fastidieuse mais cela me permettra de synchroniser l'ensemble de mes environnements.

Tips/Découvertes du moment :

Vim dans xterm
La dernière fois, je vous disais que j'en étais réduit à utiliser Gvim pour afficher correctement le thème Solarized. Heureusement, nous étions plusieurs sur le coup au boulot. Il suffisait de passer vim en 256 couleurs :

set t_Co=256

Le mystère de htop :
Je viens de découvrir que Htop affiche par défaut les threads alors que top non. La configuration de htop via F2 permet de les masquer ou changer leur couleur si vous le souhaitez. Source

Astuces sur Proxmox :

  • Pour accéder à la console de vos containers dans Proxmox VE 3.1, il faut que votre fichier /etc/init/tty1.conf dans vos templates Debian/Ubuntu ressemble à ça :
 start on stopped rc RUNLEVEL=[2345]
 stop on runlevel [!2345]
 respawn
 exec /sbin/getty -8 38400 tty1

Puis rebooter votre CT. Cela devrait fonctionner
Le wiki n'est pas à jour mais je vous donne quand même le lien : Wiki container Proxmox

  • Quand on a une carte mère UEFI, il vaut mieux passer par Proxmox3.1 puis utiliser la commande pveupgrade ou par une Debian puis installer Proxmox.
  • Pour mettre en marche le softraid avec Proxmox, je vous conseille la lecture suivante.
  • Supprimer le message de pub dans Proxmox: http://www.jamescoyle.net/how-to/614-remove-the-proxmox-no-subscription-message

Créer une clé bootable sous GNU/Linux :
Pour faire une clé usb bootable usb uefi :

dd if=votrefichieriso.iso of=/dev/sdc && sync

Ne pas mettre le numéro de partition derrière.

Astuce sur less :

  • Pour afficher les lignes dans less :
less -N
  • Pour se positionner à la ligne numéro :
less +42 fichier
  • Pour afficher les couleurs dans less :
less -R

Recherche multiples Grep :
Pour chercher plusieurs pattern dans un seul grep :

grep 'pattern1\|pattern2' fichier

Problème de démontage :
Si vous n'arrivez pas à démonter un volume de votre système *Nix, je peux vous conseiller d'utiliser les commandes suivantes :

umount /mnt
umount2: Device or resource busy
umount: /mnt: device is busy 

lsof | grep votre_montage #Permet de savoir quel process utilise quoi
fuser -m votre_montage # a peu près equivalent
umount -l /dev/sdb1 #Demonte le point de montage en faisant un peu de ménage

Comme vous pouvez le noter, le mois dernier a été fructueux en petites découvertes, ce qui donne un billet complètement décousu. Il faudrait que j'en fasse plusieurs afin de faire péter mes stats :D



A demain dans le train.

mercredi, 8 octobre 2014

#En_vrac 1 : Gestion paquets Debian

Bonjour,

On va essayer d'écrire un peu, les astuces et notes s'accumulent mais le blog ne se remplit pas tout seul.
En plus ça devient à la mode de faire du vrac alors moi aussi je m'y mets.
Du coup quelques petites astuces pour manipuler des paquets debian à la rache.

Examen non-invasif

Afficher quelques informations sur le paquet : ses dépendances, son mainteneur, sa description
dpkg --info monpaquet.deb

nouveau paquet Debian, version 2.0.
taille 623842 octets : archive de contrôle=2370 octets.
    808 octets,    19 lignes      control              
   2999 octets,    37 lignes      md5sums              
    878 octets,    39 lignes   *  postinst             #!/bin/sh
    103 octets,    12 lignes   *  postrm               #!/bin/sh
    295 octets,    24 lignes   *  prerm                #!/bin/sh
Package: zsh
Version: 5.0.6-2
Architecture: amd64
Maintainer: Debian Zsh Maintainers <pkg-zsh-devel@lists.alioth.debian.org>
Installed-Size: 1886
Depends: zsh-common (= 5.0.6-2), libc6 (>= 2.15), libcap2 (>= 1:2.10), libtinfo5
Recommends: libncursesw5 (>= 5.6+20070908), libpcre3 (>= 8.10)
Suggests: zsh-doc
Section: shells
Priority: optional
Homepage: http://www.zsh.org/
Description: shell with lots of features
 Zsh is a UNIX command interpreter (shell) usable as an
 interactive login shell and as a shell script command
 processor. Of the standard shells, zsh most closely resembles
 ksh but includes many enhancements. Zsh has command-line editing,
 built-in spelling correction, programmable command completion,
 shell functions (with autoloading), a history mechanism, and a
 host of other features.


Afficher le contenu du paquet
dpkg --contents monpaquet.deb

drwxr-xr-x root/root         0 2014-09-21 00:19 ./
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/lintian/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/lintian/overrides/
-rw-rr root/root       214 2014-08-26 00:45 ./usr/share/lintian/overrides/zsh
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/share/bug/
-rwxr-xr-x root/root      1403 2014-08-26 00:45 ./usr/share/bug/zsh
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/doc/
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/lib/
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/lib/x86_64-linux-gnu/

Décompression d'un paquet et recréation

Extraire l'arborescence
dpkg-deb -x paquet.deb repertoire Extraire le répertoire DEBIAN contenant les différents fichiers postinst, control
dpkg-deb -e paquet.deb nom_du_repertoire/DEBIAN

La vous faites ce que vous voulez ...

Pour le refabriquer
dpkg-deb -b repertoire paquet.deb

Manipulation du cache

Pour connaitre les versions d'un paquet installé ainsi que la version disponible dans vos dépots
apt-cache policy zim

zim:
 Installé : 0.60-1
 Candidat : 0.60-1
 Table de version :
 *** 0.60-1 0
       500 http://203.41.188.16/debian/ jessie/main amd64 Packages
       100 /var/lib/dpkg/status

Connaitre les dépendances inverses d'un paquet (quels paquets ont besoin de celui là pour fonctionner)
apt-cache showpkg libvte9

Package: libvte9
Reverse Depends: 
 pac,libvte9

Sur l'exemple ci-dessus, nous pouvons voir que le paquet pac a besoin du paquet libvte9 pour fonctionner.

A la prochaine.
That's all folks !

vendredi, 2 mai 2014

Une IHM pour LXC : LXC-Web-Panel

screenshot01.png
Bonjour à tous,

Un soupçon de motivation m'anime tout d'un coup, autant vous dire que c'est très rare et que je vais en profiter pour faire la promotion du made IN France :D

Comme vous le savez, j'utilise LXC pour faire mes petits tests. A part la mise en oeuvre qui est un petit peu fastidieuse, la solution tourne plutôt bien (très bien même).

Mais j'aime bien avoir une vue générale de ce qui tourne sur mon PC et une petite IHM Web pour visualiser et interagir avec LXC c'est plutôt cool.

J'ai trouvé une solution qui permet de gérer via une web appli votre hyperviseur LXC à la KISS style.
Elle est super bien référencée dans Google mais je n'ai vu aucun article français en parler, avouez que pour une application développée par des Français c'est un comble.

J'ai installé LWP sous ma Debian 7.5, of course it runs sans bidouille, juste en utilisant leur script.

Points Positifs :

  • Installation facile
  • Belle IHM, rien de superflu
  • Fait le boulot attendu.
  • Serveur léger

Axes d'améliorations :

  • Il me manque la gestion des sauvegardes/snapshot et ré-initialisation
  • Une petite console d'accès à distance (je n'ai encore pas encore de solution fiable et intéropérable mais on peut rêver)
  • Gestion des ressources systèmes de chaque containeur via un graphe
  • Laissez un script d'installation tourné en root me plaît pas trop.
  • Tout n'est pas opérationnel sous Debian mais cela devrait rentrer dans l'ordre avec LXC en version 1.0
    • Gestion du réseau
    • Création from scratch d'un container
    • Gestion du lancement des containers au boot
  • Je regrette un peu la technologie choisie qui se base sur du Python/Flask.


Quelques questions à l'un des auteurs Elie DELOUMEAU :

Qu'est-ce qui vous a poussé à developper LWP :

Avoir fait quelque chose d'utile dans ma vie et avoir quelque chose sur mon CV ^^

Quels besoins souhaitiez-vous couvrir avec cette application :

Rester dans une interface utilisable par tout le monde mais aussi poussée parfois pour les professionnels.

Vos prochaines fonctionnalités et développements en cours :

RESTful API
Backup
Gestion avancée des utilisateurs
Gestion d'ACL
Autoupdate
Gestion de plusieurs serveurs via une interface
Personnalisation de l'interface
Configuration du SSL à l'installation (si possible)
Installation sur une base MySQL si l'utilisateur le souhaite
Nous sommes actuellement sur le dev d'une version multi plateformes (debian/ubuntu/fedora etc..)

Pourquoi Python et Flask ?

Je suis parti sur du Python car je ne suis pas développeur et en tant qu'admin systèmes c'est le seul langage que je maîtrise plus ou moins. Et au final j'ai bien fait d'utiliser Python car avec LXC 1, il y a une bibliothèque Python livrée avec :D


Un grand merci à lui et une bonne continuation.

Sources :

vendredi, 20 décembre 2013

Faire du sso avec ssh sous Archlinux, slim et zsh

Pam-Anderson1.jpgUn billet un peu technique mais qui me semble super utile dans notre gestion des clés ssh au quotidien.

La petite histoire

Avec mon serveur dédié à administrer, je me suis replongé sur cette histoire de clé ssh.
J'en avais déja parlé dans mon article sur la migration de clé ssh entre windows et Archlinux mais la manipulation que j'avais proposé me paraissait bancale.
Je souhaitais trouver quelque chose de plus propre et de plus intégré.
J'ai essayé de me tourner vers seahorse mais cette tentative fut vite interrompue car le logiciel plantait et ne gérait pas mes accès ssh depuis un terminal.
Si quelqu'un dans la salle l'utilise, je suis preneur d'une explication censée.

Sur le papier : SSO et pam_ssh

Ayant lu un billet sur pam_ssh, je souhaitais mettre cette solution en place.
Sur le principe, cette méthode est ce qui se fait de mieux en terme de sécurité/simplicité d'utilisation.

  • On se loggue via son gestionnaire de session avec son login
  • On peut soit rentrer son mot de passe unix soit sa passphrase de sa clé située dans votre .ssh
  • Si la passphrase est valide, le gestionnaire de session lance ssh-agent et ajoute de lui-même la bonne clé dans votre trousseau.
  • Ainsi, vous beneficiez d'un ssh-agent tout configuré au plus haut niveau de votre session (en terme de processus).

En pratique : Archlinux, slim, pam_ssh, zsh

Pour arriver à vos fins, il vous faudra installer la librairie PAM SSH, elle n'est malheureusement disponible que dans AUR.

yaourt -Sy aur/pam_ssh

Ensuite, il vous suffit de modifier votre configuration de pam :

vim /etc/pam.d/login
#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
+auth       sufficient   pam_ssh.so
auth       include      system-local-login
account    include      system-local-login
session    include      system-local-login
+session    optional     pam_ssh.so

Cette modification vous permettra de faire fonctionner votre pam_ssh avec gdm, kdm et sur un tty mais pas sur XDM ou Slim.
Pour avoir cette merveilleuse fonctionnalité, il vous faudra modifier également le fichier /etc/pam.d/slim

vim /etc/pam.d/slim
#%PAM-1.0
+auth       sufficient   pam_ssh.so
auth        include     system-local-login
account     include     system-local-login
session     include     system-local-login
+session    optional     pam_ssh.so

Note à moi-même : Pour utiliser .zprofile et .zlogin quand on utilise zsh

Cela n'a rien avoir avec la choucroute mais pour bénéficier des scripts .zlogin ou .zprofile, il faut définir dans slim zsh comme un login shell.

vim /etc/slim.com
...
login_cmd           exec /usr/bin/zsh --login ~/.xinitrc %session
...

Maintenant, vous n'avez plus qu'à vous deconnecter ou essayer sur un tty avec votre login et votre passphrase.
Pour vérifier que tout fonctionne, je vous propose les commandes suivantes :

#Normalement le ps devrait vous retourner un process de ce style
ps faux | grep ssh
ssh-agent -s

#Lister les clés en mémoires
ssh-add -l
1024 65:22:54:00:4a:5f.... /home/toto/.ssh/id_dsa (DSA)

Nota Bene :

  • J'ai observé que le mécanisme mis en place ne fonctionnait pas tout le temps et vous ?
  • Je viens d'y penser, si vous le souhaitez vous pouvez également ne pas utiliser de passphrase dans votre clé ssh ! Cela vous permettra de ne plus être importuné par le ssh à chaque connexion :D

Sources :

Ps :

Paméla est là pour représenter PAM, logique non ?

jeudi, 12 décembre 2013

Copier Coller d'une application graphique vers/depuis vim.

Wiki-wordmark.pngPlus j'utilise vim plus j'en découvre à son sujet.
Alors comme tout n'est pas forcément très facile à retenir, ni très intuitif, je le couche sur ce blog.
L'astuce du jour porte sur les copier/coller.
Par convention, je mets un points virgule entre deux touches qui ne sont pas pressées en même temps.

Copier un mot dans le registre courant

Se placer sur la ligne désirée et placer le curseur en début de mot, puis effectuer le raccourci suivant :

Echap;y; w

Pour visualiser ce qui est dans votre registre, vous pouvez taper la commande suivante :

Echap; :reg
:reg
--- Registres ---
""   define

Ci-dessus, on peut constater qu'il y a dans le registre courant "", le mot define.

On peut aussi copier la fin de ligne ou toute la ligne avec les raccourcis ci-dessous :

#Copier la fin de ligne
Echap;y;$ 
#Copier toute la ligne courante
Echap;y;y

On peut aussi utiliser le mode visuel afin de copier un bloc de texte comme ci-dessous :

#Passer en mode visuel
Echap; v
#Effectuer votre sélection avec les touches j,k,l,h
#Puis copier
y

Coller un mot depuis le registre courant

La vous n'avez pas douze solutions, soit vous coller avant le curseur soit après:

#Coller avant
Echap; P
#Coller après
Echap; p

Jouer avec le presse-papier/registre de vim

Tout à l'heure, vous avez pu visualiser le contenu de mon registre et vous avez sans doute dû voir que le votre contenait pleins de lignes.
Je pense qu'il y en a une petite quarantaine. Dix sont nommés avec des chiffres, 26 avec notre alphabet et quelques autres spéciaux.
Pour les manipuler, c'est assez simple à comprendre mais moins à manipuler, il suffit de préfixer votre commande copier/coller avec la double quote " suivi du nom de votre registre.

#Copier une ligne dans le registre 5
Echap; ";5; y;y
#Coller la ligne depuis le registre 5
Echap; ";5;p

Copier/coller depuis/vers une application graphique sans toucher à votre souris

Je vous l'ai dit, il reste quelques registres spéciaux, ils se nomment entre autre :

  • "+ : Le presse-papier commun
  • "* : Celui qui contient les sélections à la souris

Attention : tous les vim ne sont pas compilés avec ces deux registres :
Pour savoir si le votre supporte cette option, il suffira de taper la ligne de commande suivante dans vim :

:echo has('x11') && has('clipboard')

SI vous obtenez 1 c'est bon sinon il va falloir télécharger un autre vim.
Sous Ubuntu/Debian, le paquet qui supporte cette option est entre-autre vim-gtk
SOus Archlinux, vous pouvez télécharger gvim.

A noter que la ligne de commande à exécuter dans un terminal marche également :

#Si cela vous renvoit une ligne, c'est bon
vim --version | grep +xterm_clipboard

Ensuite, vous n'avez plus qu'à manipuler ces deux registres comme précédemment :

#Copier une ligne dans le registre graphique
Echap; ";+; y;y
#Coller la ligne depuis le registre +
Echap; ";+;p

See you soon

Source :

mercredi, 13 novembre 2013

Déménagement fini

Bonjour à vous,

Les habitués l'auront peut être remarqué via le changement de thème. Je vous l'annonce officiellement, la page que vous lisez est sur le nouveau site choix-libres.org. Je viens de changer de serveur, d’hébergement, d’hébergeur, de mode d’hébergement.

Évidemment, tout cela ne s'est pas fait en un jour mais plutôt en 3/4 mois. Une expérience riche et très intéressante, je conseille à tous les amateurs de migrer vers un petit serveur dédié.

Il y a d'importants pré-requis à connaitre si l'on veut essayer de faire les choses proprement mais cela vaut le cout.

Bientôt, un nouveau cycle d'écriture va poindre et je pourrai vous raconter les techniques que j'ai mis en place afin de parvenir à offrir le même service sans interruption en changeant du tout au tout.

Il me reste quelques formalités à finaliser et je serai libéré de mon ancien hébergeur.

Je vous souhaite une bonne soirée, amusez-vous bien.

- page 1 de 5