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

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

mercredi, 5 février 2014

Gestion de mon environnement de developpement

Hello world !
Une petite note pour partager mon "expérience" sur l’administration de mon serveur dédié.
Je ne sais pas comment vous fonctionnez pour gérer vos serveurs mais moi j'utilise Puppet.
J'ai choisi cette technologie car je m'en sers énormément au boulot alors tant qu'à apprendre quelque chose autant que cela me serve.
Ce logiciel me permet d'installer/réinstaller mon serveur de zéro en quelques minutes sans oublier quelque chose.
Il y a plusieurs manières de se servir de Puppet à savoir :

  • Client/Serveur sur architecture n-tiers
  • Client/Serveur en mode standalone

Au vu de mon infrastructure, j'ai choisi la deuxième méthode. Je n'ai pas besoin de gérer un quelconque service central PuppetMaster j'ai développé un petit shell qui me permet d’exécuter mon agent Puppet sur mon serveur sans avoir besoin d'un master Puppet.

Voici l'infrastructure que j'utilise, je vais la détailler par la suite : choixlibres.png
Un petit tour des technos :
Comme vous pouvez le voir, je m’appuie sur trois étapes/environnements pseudo-cloisonnés. Les deux premières itérations s'effectuent sur mon poste de travail via la solution LXC, cette solution a l'avantage d'être légère et facilement réinstallable/réinisialisable.
J'utilise également le gestionnaire de version Git. De un car c'était une belle façon d'apprendre les DCVS et de deux car le service Github est bien pratique.
Cela ne figure pas sur le schéma mais je me sers de Zim pour documenter/noter des liens, je cherche actuellement une solution pour synchroniser mes écrits entre mes différentes machines.

Mes différents environnements :
Dev :

Cette VM me permet de tester de manière sauvage (sans documenter/en patchant comme un goret...) les futurs services que je souhaiterais mettre en place sur mon serveur dédié. Si les tests sont concluants, je passe à l'environnement suivant.

Recette :

Ce conteneur LXC est remise à zéro à chaque utilisation, je me base sur un debootstrap stable pour le faire. Je clone mon dépôt Git dans le répertoire /etc et je commence à développer le code Puppet me permettant de déployer le nouveau service. Je teste plusieurs fois en réinisialisant la VM afin de me placer dans des conditions identiques à la production. Je documente chaque étape (si la procédure le nécessite) dans mon wiki desktop ZIM. Une fois le code, la documentation, le déploiement au point, je commit et Push mon travail dans mon Git.

Production :

Sur mon serveur dédié, je me contente de faire un pull de mon dépôt Puppet et d’exécuter Puppet.
C'est tout !!!

Ce petit billet avait pour but un petit partage d'information, si vous avez des remarques ou des propositions, je suis ouvert à tout commentaires constructif ne cherchant pas à me vendre du viagra :D
Si vous le souhaitez vous pouvez visiter mon dépot Git et même me faire des commits ;)
Un début de documentation est disponible au cas ou vous souhaiteriez vous en servir.
Coming soon, une réecriutre plus propre des modules, plus de paramètres/d'automatisations pour le module parefeu

A bientôt mais en attendant, regarde comme il faut beau dehors, il faut sortir s’aérer : 15h02
J'aime bien ;)
Sources :
Mon dépot Git Puppet

samedi, 11 janvier 2014

Utiliser Thunderbird avec un serveur Exchange

exquilla.pngLe milieu de l'entreprise est souvent hostile au logiciel libre.
Il faut souvent avoir recours à la bidouille afin de pouvoir continuer à utiliser les logiciels que l'on aime.
Depuis peu mon entreprise avait décider de migrer la messagerie vers un serveur Exchange (quelle drôle d'idée ?).
En dehors du fait que cela me déplaisait au plus haut point (tout nos mails confidentiels seront surement lisibles par la firme de Redmond), je ne voyais pas l'impact que cela pourrait avoir sur mon poste de travail.
J'avais sous-estimé Micro$oft ... Chacun de leur produit est fait pour garder l'utilisateur, ils ne sont bon qu'à fournir un ensemble de logiciel privateur de libertés.
Dans cet exemple, l'utilisation du serveur Exchange implique l'utilisation du protocole MAPI qui n'est pas supporté par Thunderbird.

Après plusieurs recherches, je suis tombé sur un plugin thunderbird nommé Exquilla

Il suffit de télécharger le fichier .xpi et de l'installer comme module à Thunderbird. L'installation est très simple et tout roule.

Manipulation réalisée avec Succès sous Ubuntu 12 et Debian Testing

jeudi, 2 janvier 2014

Test/Utilisation Seagate Central

seagate_central_banner1_978x379.png
Bonne année à tous,

Pendant ces fêtes de fin d'année, j'ai acheté un petit NAS à mes parents.
N'habitant pas à coté et sachant qu'ils utilisent des disques durs hors d'age, je me suis dit qu'il serait intéressant qu'ils ne perdent pas tout lorsqu'un ordinateur tombe en panne ou qu'ils puissent regarder leur photo sur la télé.

Après un achat par réservation sur Boulanger (à noter que ce service n'est pas au point). Je rentre faire l'installation qui est normalement accessibles au néophytes.

Premier constat, les documentations papiers n'existent plus, elles ne sont plus fournies, je tombe tout juste sur un dépliant en 2 étapes m'indiquant comment brancher le NAS à la Box.

Pour avoir un peu plus de détail, il faudra passer par un site web en anglais, très très sommaire. Pour tout vous dire, la documentation (presque) complète du produit fait 70 pages et elle est difficilement trouvable.

Je ne sais pas si les économies réalisées sur le papier sont vraiment rentables car cela incite l'usager à faire appel au support ou alors à changer de produit.

Bon une fois, le NAS repéré par Windows, il est conseillé d'utiliser le logiciel Seagate Central afin de paramétrer vos plans de sauvegarde. Cet outil particulièrement lourd est assez mal fait et si je puis dire buggué. Je songe à lui trouver un remplaçant du style Cobian backup.

Le cauchemar commence avec la gestion des accès. Chaque utilisateur possède un espèce de home auquel il pourra accèder en s'identifiant avec un mot de passe. Sous WIndows, la gestion du montage automatique est assez mal faite, il faut que le nom d'utilisateur et le mot de passe de votre session Windows soit le même que celui de votre Nas sinon vous pouvez dire adieu à l'automatisation de vos sauvegardes au démarrage.

Pour finir, je devais transférer des données d'un de mes serveurs GNU/Linux vers ce Nas, je me suis dit que j'allais manger un peu de Samba et cela me ferait du bien

Que nenni, le petit Nas a le bon goût de tourner sous GNU/Linux (Monta Vista), il offre un accès SSH root sans mot de passe (moyen) et un accès ftp.

Là, je me suis dit que ne Nas n'était pas si mal :)
A partir de ce moment, plus aucune prise de tête, je transfert mes données en ftp à une vitesse défiant toute concurrence et fin de chantiers.

EN conclusion, le matériel est pas mal, il tourne sur un OS libre, la documentation est quasi-inexistante sous Windows.
Sur les autres OS, il n'y pas besoin de documentation car nous pouvons utiliser des technologies éprouvées et c'est tant mieux.

Nb : Cet article est non sponsorisé :)

jeudi, 26 décembre 2013

Afficher les pistes jouées par mocp dans votre i3bar

musique-coloree_878063.jpgAujourd'hui, un tips sur l'ajout d'information dans votre i3bar.
Pour effectuer ces manipulations, il vous faudra :

  • i3-wm : le gestionnaire de fenêtre qui est leger et qui roxe du poney
  • moc : le lecteur musical en ligne de commande

Récupération des informations de mocp

On peut obtenir les informations sur la piste lue par mocp assez simplement
Soit en utilisant le formatstring du fichier de configuration (lien vers la configuration de mocp)

mocp -Q  "%(a:%a – :)%(t:%t:)%(A: (%A):)"

Soit en utilisant le formatstring du man (qui est quand même plus lisible):

mocp -Q "%state %song - %artist (%album)"

Modifier l'affichage de i3status

On ne peut pas modifier i3status avec des scripts externes mais par contre on peut l'encapsuler dans un script pour y rajouter notre sauce :

#!/bin/sh
i3status | while :
do
	mocp=`mocp -Q  "%state->%song - %artist(%album)" 2> /dev/null`
	 read line
	 echo "$mocp | $line" || exit 1
done

Appeler votre script depuis i3bar :

Pour cela, vous devez modifier votre fichier .i3/config en remplaçant l'appel à i3status par votre script

bar {
         status_command /home/toto/script/myi3.sh
}

Bien penser à indiquer le chemin complet pour i3bar. Car il n'est pas exécuté avec le même path que vous.
Et surtout n'oubliez pas de rendre exécutable votre script.

chmod +x script/myi3.sh

Plus qu'à recharger votre configuration avec votre raccourci favoris.

cat .i3/config| grep restart
bindsym $mod+Shift+r restart

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 :

- page 1 de 8