Catégories
Blog Open-source Planet-libre Web

Inclure un screencast de votre terminal sur votre site

Il y a quelques jours, je vous parlais de Shelr, un petit logiciel permettant d’enregistrer simplement ce qui se passe sur votre terminal (ou console) afin de pouvoir le rejouer.

A partir du site Shelr.tv, il est également possible de partager vos « termcast » à votre communauté.

Une nouvelle fonction vient enrichir ce site: la possibilité, via un iframe, d’inclure directement vos « termcast » dans vos sites. La manipulation est très simple car, il suffit de se rendre sur la page de la capture à insérer (par exemple ici) puis de faire un copier du code embeded:

Il ne vous reste plus alors qu’a insérer ce code dans votre page HTML (ou dans votre billet WordPress).

Pour illustrer cette fonction, voici un tercast de la dernière version de Glances 1.4 bêta.

Envoy ! Et un grand merci à Antono pour cette nouvelle fonction.

Catégories
Musique

Ma playlist Spotify TOP 2011

Depuis maintenant deux ans, je rédige, en début d’année, un billet sur comment je gère ma bibliothèque musicale (voir les billets de 2011 et de 2012). Pour vous faire écouter le résultat, il manquait chez Spotify une fonction permettant d’intégrer directement des playlists dans mon blog WordPress. C’est maintenant chose de faite depuis la mise à disposition du « Spotify Play button« .

Voici donc en exclusivité mondiale ma playlist TOP 2011 (la version 2012 est en cours de conception…):

Et vous chers lecteurs, faites aussi tourner vos playlists !

Catégories
Open-source Planet-libre Systeme

Terminator, le terminal ultime sous GNU/Linux

Une des grande différence entre un Linuxien et un Windowsien est le temps passé devant le terminal (console en mode graphique). Si les terminaux fournis par défaut sous GNU/Linux sont à des années lumières des pauvres consoles CMD ou PowerShell de Microsoft, ils sont encore loin derrière le logiciel dont je vais vous parler dans ce billet.

Terminator (logiciel libre sous licence GPL) propose les fonctions suivantes:

  • configuration de la fontes et des couleurs avec gestion de la transparence (association dans des profils)
  • division horizontale et verticale de la fenêtre pour disposer de plusieurs terminaux
  • chaque terminal peut disposer d’un profil différent
  • possibilité d’envoyer les lignes de commandes saisies au clavier sur un groupe de terminaux
  • capture d’écran du terminal en 2 clics de souris
  • scroll bar infinie
  • possibilité de lancer des commandes automatiquement au démarrage du terminal

Voici donc un aperçu de la bête:

Comme vous pouvez le voir, il est possible de mixer des divisions horizontales et verticales et d’associer un profil différent pour chaque terminal. Par exemple, j’ai trois profils différents:

  • default: le profil par défaut que j’utilise sur ma machine (fond bleu foncé, texte blanc)
  • tiny: un profil optimisé pour l’affichage des logs (fontes plus petite)
  • b&w: un profil monochrome

La configuration des profils est stockées dans le fichier ~/.config/terminator/config et peut donc facilement être importée entre vos différents ordinateurs.

Autre fonction très utile, le regroupement. Vous allez pourvoir diffuser, en parallèle, les commandes saisies au clavier sur un ensemble de terminaux.

Imaginons que vous deviez mettre à jour 3 serveurs. Vous commencez donc par diviser horizontalement l’écran en 3 terminaux à partir desquels vous allez vous connecter en SSH sur vos serveurs (1 serveur = 1 terminal). Vous allez ensuite regrouper les 3 terminaux en faisant un clic droit  > Regroupement > Diffuser tout. Il ne reste plus qu’à saisir une seule fois les commandes de mises à jour !

Pratique, rapide, libre, indispensable.

Catégories
Developpement Open-source Planet-libre Systeme

Préparer l’arrivée de Precise Pangolin avec un script de postinstall

Si vous suivez régulièrement ce blog, vous savez que je suis un informaticien fainéant, j’ai horreur de faire plusieurs fois la même chose. C’est une des raison pour laquelle je développe des scripts d’auto (ou post) installation que vous pouvez trouver sur mon espace GitHub.

Nous allons, dans ce billet, parler de la nouvelle version du script de post installation de la version Ubuntu Precise Pangolin (aka 12.04 LTS).

Heu, c’est quoi un script de post install ?

C’est un script que l’on lance à la fin d’une installation « standard » (« out of the box ») d’un système d’exploitation et qui va s’occuper de le configurer pour répondre au mieux à nos besoins.

On peut par exemple automatiser les tâches suivantes:

  • ajouter les dépôts de logiciels
  • installer les logiciels que vous jugez indispensables
  • supprimer les logiciels inutiles
  • télécharger et installer des thèmes pour votre interface graphique
  • configurer vos applications (BASH, prompt, Vim…)
  • faire toutes les actions en ligne de commande qui vous passe par la tête !

Historique du script UbuntuPostInstall

Les dernières versions de ce script (pour les distributions Ubuntu 11.04 et 11.10) étaient développées en Shell Script (BASH). Afin de simplifier le développement, j’ai donc décidé de re-développer complètement le script en Python en lui apportant une fonction de personnalisation par fichier de configuration.

C’est donc sur cette base que le script pour la version 12.04 d’Ubuntu est développé.

Comment fonctionne le script ?

Le script, disponible sous GitHub ou à partir de sa page officielle, est autonome et fonctionne directement à partir d’une installation standard d’Ubuntu 12.04 LTS. Pour le télécharger, il faut saisir les commandes suivantes:

wget https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-postinstall.py
chmod a+x ubuntu-12.04-postinstall.py

Pour fonctionner, le script utilise un fichier de configuration qui permet de spécifier les « choses à faire ». Par défaut, si aucun configuration n’est spécifiée dans la ligne de commande, il va télécharger le fichier suivant sur mon GitHub: post-installation pour Unity.

Donc pour lancer une post-installation standard sur une toute fraiche distribution Ubuntu 12.04 LTS, il faut lancer la commande:

sudo ./ubuntu-12.04-postinstall.py

Le script va faire les chose suivantes:

  • Ajouter des dépôts PPA utiles (voir la liste dans la section repos)
  • Ajouter des applications indispensables aux geeks (classées par thème: dev, multimedia, réseau, système…)
  • Ajout de thèmes pour GTK, des icônes…
  • Configuration de BASH (.bashrc, prompt, alias), Vim (.vimrc) et Htop (.htoprc)

Voici un aperçu du script en cous d’exécution:

Le script génère également un fichier de log dans le répertoire /tmp qui va détailler toutes les actions effectuées (et vous permettre d’identifier les éventuels problèmes).

D’autres fichiers de configuration sont disponibles sur mon GitHub et peuvent être spécifiés dans la ligne de commande. Par exemple, si vous préférez utiliser Gnome Shell en lieu et place d’Unity:

sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshell-postinstall.cfg

ou si vous êtes plutôt Cinnanon (le fork de Gnome 2):

sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-cinnamon-postinstall.cfg

Comment éditer votre propre fichier de configuration ?

Bien que les fichiers fournis en standard répondent aux besoins de la plupart des geek qui lisent ce blog, il peut être intéressant de l’adapter plus finement à vos besoins.

Le plus simple est donc de « forker » la configuration par défaut qui s’approche le plus de votre environnement (Unity, Gnome Shell ou Cinnanon). Puis d’éditer le fichier de configuration et enfin de l’utiliser avec l’option -c du script (qui peut prendre en paramètre une URL ou un fichier local).

Par exemple, si vous êtes un fan de Gnome Shell, vous pouvez télécharger le fichier suivant puis l’éditer en suivant les consignes disponibles sur le site officiel.

Comme vous allez le voir, le fichier de configuration permet, en plus des actions détaillées au début de ce chapitre, de lancer des lignes de commandes en début (section preactions) ou fin de script (section postactions).

Conclusion

Si vous avez des remarques ou des demandes spécifiques sur ce nouveau scripts ou que vous vouliez partager vos fichiers de configurations personnels, les commentaires ci-dessous sont là pour ça !

Catégories
Blog Open-source Planet-libre Systeme Web

Shelr, un service de screencast pour votre terminal

Shelr propose un outil pour enregistrer, rejouer et diffuser les commandes et leurs résultats saisies dans votre terminal favori (console). L’avantage par rapport à un screencast classique est que le termcast sauvegarde non pas une vidéo mais juste le texte.

Il est possible de fonctionner de manière autonome en gérant vous même vos enregistrements (ce qui peut par exemple être très pratique pour une présentation ou un cours à des élèves). Si vous souhaitez diffusez ces enregistrements sur Internet, il faut passer par le site Shelr.tv: l’inscription prends quelques secondes et l’hébergement de vos termcasts est gratuite.

Cerise sur le gâteau, les outils Shelr sont fournis sont licence GPL v3 dans un GitHub.

Installation Shelr sur votre système

Voici la procédure à suivre sur une distribution Ubuntu. Les seuls pré-requis sont d’avoir ruby et rubugems installés sur son système d’exploitation:

sudo apt-get install ruby rubygems
sudo gem install shelr

Comment utiliser le logiciel Shelr

Le logiciel en question se présente sous la forme d’un executable unique: shelr qui propose dans sa version actuelle les options suivantes:

# shelr 

Usage: shelr command [arg]
Commands:
    setup API_KEY   - setup
    record          - record new shellcast
    push RECORD_ID  - publish
    list            - print list of records
    play RECORD_ID  - play local record
    play RECORD_URL - play remote record

Enregistrement de votre premier termcast

Il suffit de saisir la commande suivante:

shelr record

Shelr va alors vous demander le nom (description) à associer à votre enregistrement puis lancer un fork de votre shell courant ou vous pourrez taper en toute transparence vos commandes à enregistrer.

Pour terminer l’enregistrement, il faut appuyer sur la combinaison CTRL-D (ou saisir la commande exit).

Afficher la liste des termcast stockés sur votre système

L’option list permet d’afficher la liste des termcasts que vous avez enregistrez:

$ shelr list

1333815250: A Glances 1.3.7 demo
1333815271: A Glances 1.3.7 demo
1333815112: A first test

Le chiffre qui précède la description est l’identifiant unique de votre termcast.

Rejouer un termcast

On utilise shelr avec l’option play suivi du numero d’identifiant:

shelr play 1333815112

Le terminal devrait s’animer tout seul, comme par magie.

Petite remarque: seul l’affichage est rejoué, pas l’exécution des commandes !

Il est également possible de fournir en argument de la commande play, l’URL d’un termcast stocké sur le site Shelr.tv

Diffuser vos termcasts sur le site Shelr.tv

Pour partager vos termcast à partir dur site Shelr.tv, il faut d’abord créer un compte en vous rendant sur la page suivante. Si vous avez un compte GitHub, Twitter ou Facebook, il est alors facile de créer un compte en quelques secondes.

Après la création du compte, vous aller obtenir un code d’API:

Il faut alors saisir la commande « shelr setup CODEAPI » dans un terminal pour associer votre ordinateur à votre compte Shelr.tv.

Pour diffuser sur le site un termcast enregistré sur votre disque il faut saisir la commande (en remplaçant l’identifiant par celui obtenu par la commande shelr list):

shelr push 1333815112

Il est également possible de diffuser le dernier enregistrement en utilisant l’alias:

shelr push last

Vous pouvez voir de nombreux exemples de termcasts sur le site Shelt.tv.

Visualiser un termcast Shelr.tv depuis une console

Une fois diffusé, vous aller obtenir l’URL de votre termcast que l’on pourra rejouer dans sa console. Par exemple, pour voir une démonstration de la dernière version bêta de mon logiciel Glances:

shelr play http://shelr.tv/records/4f81498796608031bf000003.json

Notez le .json à la fin de l’URL…

Visualiser un termcast Shelr.tv depuis un navigateur

Il est également possible, pour ceux qui non pas encore Shelr installé sur leur système, de voir le termcast directement depuis un navigateur internet depuis la page suivante: http://shelr.tv/records/4f81498796608031bf000003

Conclusion

Voilà une « killer application » qui va sûrement envahir les blogs techniques dans les prochains mois !

PS: Le compte Shelr.tv du blog de Nicolargo est disponible ici.

Catégories
Open-source Planet-libre Reseau Web

Introduction et première utilisation de Tor

« Résistance et obéissance, voilà les deux vertus du citoyen. Par l’obéissance il assure l’ordre; par la résistance il assure la liberté. » [Alain]

Le réseau Internet est devenu, en un temps record à l’échelle de l’humanité, un des vecteur les plus populaires dans l’accès à la connaissance. Nous vivons encore dans un pays qui respecte, mais pour combien de temps, l’accès libre à cette énorme source d’information. Mais « libre » ne veut pas dire « non contrôlé ». Les évènements récents ont réveillé chez certains la volonté de regarder d’un peu plus près ce que vous faites à partir de votre navigateur Web. En tant que fervent partisan de la liberté d’accès aux réseaux informatiques, je vous propose de découvrir Tor, un système permettant de compliquer la tâche des mouchards en rendant anonyme la consultation des sites Internet.

Tor: Comment ça marche ?

Je ne vais pas faire un copier / coller des très bonnes sources que l’on peut trouver sur Internet.

En gros, Tor est « réseau dans le réseau » qui ajoute entre votre PC et le serveur du site que vous consultez un certain nombre de noeuds (appelé « routeur oignons« ). Le logiciel Tor, installé sur votre machine, va découper puis envoyer les requêtes à des noeuds différents.  Chaque routeur oignon anonymise les flux qui le traverse.

Sur le site de l’EFF, j’ai trouvé une très belle infographie sur le sujet (merci à @Tristant pour la découverte).

Dans un premier plan, on voit qu’un trafic entre votre PC et un site.com quelconque peut être intercepté par tout le monde (un hacker qui serait sur votre réseau local/hotspot Wifi, n’importe qui ayant accès aux données de votre FAI, comme par exemple le gouvernement et également n’importe quelle institution ayant, comme la NSA dans ce diagramme, accès à des routeurs du backbone Internet).

Dans le deuxième cas, vous utilisez Tor. Tout le trafic entre votre machine et le dernier noeud du réseau Tor est protégé. Plus de hacker, plus d’Hadopi (enfin si ils existent encore quand vous lirez ce billet). Par contre, la NSA (ou autres) pourra toujours intercepter et analyser le trafic entre le dernier noeud de Tor et le site.com.

Enfin dans le dernier graphisme, on voit le cas idéal ou l’on utilise à la fois Tor et un site.com utilisant un protocole sécurisé (comme HTTPS). Dans ce cas, le dernier lien entre le noeud Tor et le site.com ne véhiculera que des données chiffrées (les esprits chagrins vont me dire que la NSA peut casser sans trop de problème un chiffrement HTTPS, ils n’auront pas tort…).

Après cette rapide introduction, nous allons maintenant voir comment installer Tor sur une distribution Ubuntu 11.10 (sachant que la procédure est identique sur  Debian, Mint…).

Tor existe également sur d’autres OS: Windows, Mac, Android.

Installation de Tor comme client

Le logiciel Tor propose dans un même programme la partie cliente (à installer sur votre PC pour naviguer anonymement) et la partie serveur (si vous voulez transformer une de vos machines en noeud Tor). Par défaut, l’installation sous Ubuntu pré-configure Tor comme client.

On commence donc par installer Tor à partir du PPA officiel de l’équipe de développement en saisissant les commandes suivantes. Bien que Tor soit présent dans le dépôt « Universe », je préfère cette méthode pour disposer de la dernière version.

sudo apt-add-repository ppa:ubun-tor/ppa
sudo apt-get update
sudo apt-get install tor privoxy

Après avoir saisi ces commandes, Tor devrait être lancé en tache de fond sur votre machine. Il fonctionne comme un proxy SOCK5, en attente de vos requêtes sur le port TCP/9050.

Attention, Tor n’intercepte pas les connexions à votre place. Si vous restez dans cet état de configuration, aucune de vos consultations ne passeront par Tor. Il faut donc configurer vos application pour utiliser le proxy SOCK5 Tor.

Utilisation de Tor depuis votre navigateur Chromium

Si vous utilisez Firefox, il existe une très bonne extension nommé Torbutton qui va permettre d’activer/désactiver l’utilisation de Tor en cliquant simplement sur un bouton. Pour installer cette application, il suffit de consulter la page suivante sur le site officiel de Tor.

Si comme moi, vous utilisez Chomium, il faut utiliser une autre extension (en attendant que Tor propose l’équivalent de Torbutton pour Chrome / Chromium). L’extension en question est Proxy Anywhere (cliquez sur ce lien pour l’installer sur votre navigateur).

Une fois l’extension installé, la page de configuration va apparaître dans un nouvel onglet de votre navigateur. Il faudra saisir les informations suivantes:

Il ne reste plus qu’à activer Tor sur votre navigateur en cliquant sur le bouton suivant (en haut à droite, près de la barre d’adresse):

Il est facile de vérifier que l’on passe bien par le réseau Tor en visitant le site suivant: https://check.torproject.org/?lang=fr

En cas de problème, il est possible de consulter le fichier de log /var/log/tor/log.

Une solution idéale ?

Sur le papier, Tor est vraiment la solution idéale pour surfer plus librement. Dans la réalité, il faut quand même noter quelques limitations.

Tor est avant tout conçu pour le surf Web (HTTP/HTTPS), donc pas de P2P ou d’autres protocoles exotiques (bien que cela soit techniquement possible mais interdit et inutilisable vu les performances).

Même en HTTP/HTTPS, l’empilement des couches, qui apporte la sécurité des données, est aussi un facteur de baisse de performance. Un test sur Speedtest le montre facilement.

Sans Tor:

Avec Tor:

Le délais de transit explose et fait donc baisser le débit obtenu. Ce délais est particulièrement pénalisant sur les performances de consultation des sites Web qui sont composés d’un grand nombre de petits fichiers.

A l’utilisation, il reste néanmoins possible de consulter des sites de manière anonyme quand on se trouve sur des « réseaux sensibles ».

Utilisateurs ?

Utilisez-vous le réseau Tor pour accéder à certains sites Web ?

Comment trouvez-vous les performances ?

En faites vous un autre usage ?

A vos commentaires chers lecteurs !

Catégories
Blog Open-source Planet-libre Reseau

Bannir les bannis avec Fail2Ban

Depuis la mise en place de Fail2Ban sur mon serveur perso pour bloquer les attaques DOS.  La règle mise en place est un bannissement de 10 minutes pour une machine générant plus de 360 requêtes en moins de 2 minutes. Malgré cela, il arrive certaines machines insistent  lourdement en recommencent leurs attaques toutes les 10 minutes…

J’ai donc décidé de mettre en place une règle un peu plus évoluée qui va bannir pendant 1 heures les machines bannies 3 fois en moins d’une heure puis 24 heures pour les gros lourds qui se font bannir 3 fois de suite de cette manière. En bonus, nous allons également voir comment pourrir la bande passante de la machine effectuant l’attaque en utilisant la règle de drop de type « tarpitting » de IpTable.

Avant de commencer

Je pars sur le principe ou vous disposez d’un Fail2ban fonctionnel (suivre mon premier billet pour avoir la procédure d’installation).

Le principe est le suivant: nous allons surveiller le fichier /var/log/fail2ban.log pour y analyser les logs de type ban et multi-ban et y associer les actions appropriés.

Pour cela on commence par créer les filtres.

Filtre ban.conf et multiban.conf

On édite le filtre ban.conf dans le répertoire /etc/fail2ban/filter.d:

[crayon url= »https://raw.github.com/nicolargo/fail2banarena/master/filter.d/ban.conf » /]

Rien de bien compliqué: on récupère dans la variable HOST l’adresse IP de la machine bannie.

Le second filtre multiban.conf (également dans le répertoire /etc/fail2ban/filter.d)

[crayon url= »https://raw.github.com/nicolargo/fail2banarena/master/filter.d/multiban.conf » /]

On actionne ensuite les filtre et les actions correspondantes dans la prison de Fail2ban.

Configuration de la prison Fail2ban

Le fichier prison (jail) par défaut se trouve dans /etc/fail2ban/jail.conf, il faut ajouter les sections suivantes (à adapter à vos besoins):

[crayon url= »https://raw.github.com/nicolargo/fail2banarena/master/jail.conf » /]

L’action choisie pour bannir ces attaques multiples est plutôt radicale: bloquer toutes les requêtes TCP (avec l’action iptables-allports) et envoyer un mail à l’administrateur (lors d’un bannissement de 24h). Il est bien sûr possible de modifier ces actions et les paramètres associés.

Le résultat

En surveillant le fichier fail2ban.log, on peut voir que la nouvelle prison fonctionne bien:

Après trois attaque HTTP DOS, le filtre MULTI BAN prend le relais et banni l’adresse IP pour 24 heures.

En bonus: la contre-attaque !

Le firewall IpTable qui protège mon serveur dispose d’une règle nommé TARPIT que l’on peut coupler avec un DROP pour saturer la liaison de la machine qui fait ce genre d’attaque (pour plus de précision, je vous conseille la lecture de ce très bon billet sur WikiGento).

Pour supporter la directive TARPIT, il faut charger le module IpTable de la manière suivante (procédure validée sous Debian Squeeze):

[crayon]

sudo apt-get install xtables-addons-common xtables-addons-source

sudo module-assistant auto-install xtables-addons-source

[/crayon]

Pour Fail2Ban, on commence donc par créer un nouveau fichier d’action que l’on va nommer iptables-tarpit.conf (dans le répertoire /etc/fail2ban/action.d).

Note: je suis bêtement reparti du fichier iptables-allports.conf auquel j’ai ajouté la ligne de commande iptables avec -j TARPIT

[crayon url= »https://raw.github.com/nicolargo/fail2banarena/master/action.d/iptables-tarpit.conf » /]

Pour activer cette nouvelle action dans notre jail, il suffit de remplacer les lignes:

action = iptables-allports[name=ALL]

par:

action = iptables-tarpit[name=ALL]

dans notre fichier jail.conf.

Conclusion

Il est difficile (voir même impossible) de se défendre contre les attaques DOS sans engager de gros moyens (financier et en temps). La solution proposée dans cet article n’est pas parfaite mais suffira largement contre les Bots ou les scripts kiddies.

Subissez-vous des attaques DOS sur vos serveurs ?

Si oui, quels sont les solutions techniques que vous mettez en place pour les contrer ?

Catégories
Developpement Open-source Planet-libre Systeme

En route vers Puppet, Chef, CfEngine…

  

Derrière ce titre un peu pompeux se cache une problématique que tout administrateur système s’est ou se posera un jour ou l’autre: Comment gérer l’installation, la mise à jour et la configuration de toutes les machines de son parc informatique ?

Ce billet a pour objectif de poser le problème de base et d’aborder quelques unes des solutions possibles. Il servira d’introduction à une série d’article sur ce vaste et intéressant sujet.

Introduction

Imaginons donc un responsable informatique disposant de trois administrateurs système: Michel, David et Jean-Pierre. Il leurs demande de travailler sur les solutions de déploiement des logiciels dans le système d’information de  l’entreprise. Quelques jours plus tard, il leur demande de présenter leurs solutions…

Première solution: « à la mimine »

La première solution pour répondre à la question posée est celle Michel, sysadmin de base (fort en technique mais moins en processus et en communication): lire la documentation du système (ou logiciel) à installer (ou mettre à jour), Googlelifier si la documentation est trop longue (ou seulement en Anglais), tester sur un environnement de développement (Jean-Pierre est quand même un garçon prudent) puis appliquer la dite procédure sur l’ensemble des machines.

On trouve également certains Michel (ceux qui ont passé la certification ISO) qui vont documenter leur installation dans un beau document (ou encore mieux un Wiki). Comme Michel travaille souvent seul, le document ne sera jamais partagé ou enrichie, il deviendra donc obsolète à la prochaine version du système (ou logiciel).

Cette première solution apporte quelques avantages: Michel peut maîtriser de manière unitaire toutes les installations et donc facilement identifier les problèmes, il a une connaissance précise et réelles des briques de ses machines.

D’un autre coté, Michel demande un certain temps pour déployer ou mettre à jour vos logiciels sur les 100 machines de votre parc et il deviendrait complètement débordé, voir incompétent,  si ce nombre passait à plusieurs centaines voir milliers de machines…

Deuxième solution: « script, script, script… »

Michel a un collègue, David, qui adopte une méthode similaire dans les premières étapes (lecture de la documentation, recherche sur Internet, test dans un environnement de développement). Mais qui, au lieu de faire lui même les opérations sur les machines, passe par un script Shell qui va automatiser ces taches. Si vous suivez ce blog, vous savez que j’utilise souvent cette méthode pour installer des composants sur mes machines persos (et quelques fois professionnelles).

David bichonne ses beaux scripts dans un repos Git. Ses procédures sont rodées: connexion en SSH, récupération du script et le exécution.

Tout semble parfait mais les développements de ces scripts peuvent vite devenir une vrai galère quand on s’attaque à un parc multi-distribution (ceux qui ont essayé de développer un script d’installation multi-plateforme/distribution doivent me comprendre…).

Troisième solution: « gestionnaire de configuration des machines »

Bienvenu dans le monde de Jean-Pierre. Lui, il utilise un gestionnaire de configuration des machines. Ces systèmes apportent une couche d’abstraction entre ceux que l’on veut faire (les besoins) et comment ces besoins sont concrètement résolus sur les machines cibles.Un pseudo langage de programmation permet de définir les actions à effectuer et le moteur de configuration des machines va s’occuper du déploiement, de l’exécution et de la génération d’un rapport sur chacune des machines cibles.

Plusieurs solutions existent, des propriétaires (comme IBM Tivoli, BSM ou HP Operations Manager i) et des libres (Puppet, Chef, CfEngine). C’est bien sûr sur ces dernières que Jean-Pierre, grand partisan des solutions libres, a donc porté son choix.

Il ne reste plus qu’à commencer à jouer avec le bébé en travaillant sur un environnement de développement/Cloud (teasing pour les prochains billets :)).

Conclusion

Je ne connais pas assez ces solutions pour avoir un avis tranché sur la meilleure solution libre. Après quelques recherches sur le net et la consultation des 3 sites internet officiels, je trouve que le projet Puppet est très bien structuré et documenté. Je pense donc partir sur cette solution pour mes prochains billet sur le sujet.

La discussion est cependant ouverte (et les commentaires sont fait pour cela).

Je suis preneur de retours d’expériences sur ces 3 solutions libres !

Sources ayant inspiré ce billet:

 

Catégories
Open-source Planet-libre Reseau Systeme

Un PPA pour Glances

Grâce à Arnaud Hartmann (un grand merci à lui), un PPA est maintenant disponible pour installer la dernière version stable de Glances sur votre système Ubuntu (ou dérivé).

Le PPA en question couvre les versions d’Ubuntu depuis la 9.10 (Karmic) jusqu’à la future 12.04 (Precise Pangolin).

Pour installer Glances sur votre système via ce PPA, il suffit d’effectuer les actions suivantes:

[cc lang= »bash »]

sudo add-apt-repository ppa:arnaud-hartmann/glances-stable

sudo apt-get update

sudo apt-get install glances

[/cc]

A la date de la rédaction de ce billet, la dernière version stable disponible est la 1.3.7. Pour les plus téméraires, il est possible, en parallèle de cette installation, de tester la version expérimentale (1.4b) en utilisant le PPA suivant en lieu et place du stable: ppa:arnaud-hartmann/glances-unstable

Petit bonus pour les lecteurs qui sont arrivés jusqu’ici, la lecture d’un billet (en anglais) de présentation de Glances que je trouve assez bien fait.

Catégories
Open-source Planet-libre Systeme

Ubuntu 12.04 – Participez à la conception du script de post-install

Dans quelques semaines, la version 12.04 (alias Precise Pangolin) de la distribution Ubuntu va sortir. C’est une version LTS (« Long Time Support ») qui sera intéressante pour une utilisation aussi bien personnelle que professionnelle. L’orientation grand-public de Canonical (l’éditeur d’Ubuntu) est, je le pense, un bien pour la promotion et la diffusion des systèmes GNU/Linux.

D’un autre coté, pour nous, les geeks/hackers, il est nécessaire d’effectuer pas mal d’actions après l’installation du système (« post-installation ») pour disposer d’un environnement adapté à nos besoins. Depuis la version Ubuntu 11.04, je mets à disposition sur un GitHub un script de post-installation qui va permettre d’automatiser ces actions de post-installation.

Je vous propose donc de travailler ensemble sur la conception de la prochaine version du script qui sera dédié à Ubuntu 12.04.

Structure générale du script

La prochaine version du script sera développé en langage Python (BASH pour les ancienne verison) en se basant sur un squelette commun que j’utilise pour d’autres scripts.

Ce dernier effectuera les actions suivantes:

  • ajout de certains dépôts officiels et non-officiels
  • installation d’une liste de paquets (logiciels, librairies…) non présents dans la distribution standard
  • mise à jour du système
  • configuration de l’interface graphique (Gnome Shell actuellement mais il est possible aussi d’ajouter des customs pour Unity), Conky…
  • configuration VIM (.vimrc)
  • configuration SHELL (alias, prompt…)

Liste des dépôts à ajouter

Voici la listes des dépôts que le script ajoute à votre système:

  • ppa:gstreamer-developers (le PPA officiel des développeurs de GStreamer)
  • ppa:shutter (pour avoir la dernière version de Shutter, l’outil de capture d’écran)
  • ppa:chromium-daily/dev (le daily build de Chromium, le navigateur Web libre basée sur WebKit)
  • ppa:ubuntu-wine (Wine, pour exécuter certains programme Windows sous Ubuntu)
  • ppa:tualatrix/ppa (pour une version toute fraiche d’Ubuntu Tweak)
  • ppa:gnome-terminator/ppa (le terminal ultime…)
  • ppa:nilarimogard/webupd8 (le site WebUpd8 maintient ce PPA avec pas mal de logiciels)
  • ppa:webupd8team/jupiter (si vous avez un portable, ce PPA est fortement conseillé pour augmenter l’autonomie)
  • ppa:clipgrab-team/ppa (convertisseur vidéo ClipGrab)
  • ppa:stebbins/handbrake-releases (Handbrake)
  • http://repository.spotify.com (Spotify)
  • http://archive.getdeb.net/ubuntu (GetDeb, le projet maintien à jour une liste importante de logiciels libres)

Pour Gnome 3 (Gnome Shell):

  • ppa:gnome3-team/gnome3 (le PPA officiel des développeurs de Gnome 3)
  • ppa:webupd8team/gnome3 (pas mal d’extensions en plus)
  • ppa:webupd8team/themes (des thèmes pour Gnome Shell)

Listes des paquets à installer

Les logiciels suivants sont installés.

Développement:

[cc]

build-essential

vim

subversion

git git-core

rabbitvcs-nautilus

textadept

geany

wine

ubuntu-tweak

terminator

pyjupiter

nautilus-dropbox xclip zenity dropbox-share

[/cc]

Multimédia:

[cc]

vlc

x264

ffmpeg2theora

oggvideotools

istanbul

shotwell

mplayer

hugin

nautilus-image-converter

pavucontrol

gimp

gimp-save-for-web

ogmrip

transmageddon

guvcview

wavpack

mppenc

faac

flac

vorbis-tools

faad

lame

nautilus-script-audio-convert

cheese

sound-juicer

picard

arista

nautilus-arista

milkytracker

mypaint

libdvdread4

clipgrab

handbrake-gtk handbrake-cli

spotify-client-qt

shutter

[/cc]

Réseau:

[cc]

iperf

ifstat

wireshark

tshark

arp-scan

htop

netspeed

nmap

netpipe-tcp

[/cc]

Système: 

[cc]

preload

gparted

lm-sensors

compizconfig-settings-manager

hardinfo

fortune-mod

libnotify-bin

compiz-fusion-plugins-extra

ubuntu-restricted-extras

[/cc]

Web:

[cc]

chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra chromium-codecs-ffmpeg-nonfree

pidgin

pidgin-facebookchat

pidgin-plugin-pack

flashplugin-downloader

xchat

googleearth-package lsb-core ttf-mscorefonts-installer

[/cc]

Gnome 3:

[cc]

gnome-shell gnome-tweak-tool gnome-documents

conky-all ttf-ubuntu-font-family

[/cc]

Comment participer à la conception ?

Tout simplement en laissant un commentaire en bas de ce billet. Les actions à mener sont:

  • ajouter des dépôt manquants (attention, il ne faut proposer que des dépôts stables et pérennes)
  • ajout d’applications/librairies obligatoires (au sens geek du terme :))
  • autres actions à mener en post-install (merci de détailler)

Update:

Le script est disponible en version alpha (bien sur il ne faut pas le lancer sur votre machine mais seulement dans des VMs !):

Il est donc possible de le forker et de participer plus pratiquement à son évolution (par exemple en suivant ce billet).

J’attends vos idées !