Catégories
Open-source Planet-libre Reseau Systeme

Debian et les mails depuis la ligne de commande

Suite à l’installation d’un serveur Kimsufi 16G sous Debian 6.0 puis configuré avec mon script de post installation spécial serveur, j’ai attendu en vain la réception des premiers apports de Fail2ban qui devaient être envoyés par mail.

Une petit visite des fichiers de logs me montre rapidement d’ou vient le problème:

… Can’t exec /usr/lib/sendmail: No such file or directory…

Par défaut, il n’y a donc pas de brique système permettant d’envoyer des mails.

Installation de Postfix

Pour résoudre cela, j’ai donc exécuté la commande suivante qui va installer le serveur de messagerie Postfix:

[cc lang= »bash »]

sudo apt-get install postfix

[/cc]

Puis configuré Postfix de la manière suivante:

Puis:

Configure le Firewall

Cette section est optionnelle et ne concerne que les serveurs qui embarque un Firewall système (Iptables).

Si vous avez un Firewall sur votre serveur (j’utilise ce script que je place dans /etc/init.d/), il faut autoriser les flux sortant sur le port SMTP (TCP/25) sous risque d’avoir le message suivant dans votre fichier syslog:

Dec 11 08:46:00 ks387949 kernel: IN= OUT=eth0 SRC=176.31.252.29 DST=217.70.184.162 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30778 DF PROTO=TCP SPT=59718 DPT=25 WINDOW=14600 RES=0x00 SYN URGP=0

Pour cela, il faut éditer le script puis ajouter le port 25 dans la variable REMOTE_TCP_SERVICES:

REMOTE_TCP_SERVICES= »22 25 80 443″

Et enfin relancer le script:

[cc lang= »bash »]

sudo /etc/init.d/firewall.sh restart

[/cc]

On teste

Le plus simple est d’utiliser la ligne de commande et la commande mail:

[cc lang= »bash »]

$ mail contact@nicolargo.com

Subject: Test

Test de 09:27

.

[/cc]

Quelques secondes plus tard, vous devriez recevoir le mail:

A vous les rapports Fail2ban

Catégories
Developpement Open-source Planet-libre Reseau Systeme

Glances: vos stats systèmes en un clin d’oeil

Il y a quelques jours, je vous avais parlé de Saidar, un logiciel permettant de regrouper dans un terminal|console un certain nombre de statistiques sur votre machine. Après quelques heures d’utilisations, j’ai identifié des choses qui ne me convenait pas:

  • pas d’affichage de la mémoire réellement disponible (comme on peut le trouver sur la deuxième ligne de la commande free -m)
  • pas de détail au niveau des processus
  • affichage des débits réseaux en octets/sec alors que j’utilise toujours les bits/sec
  • pas d’information sur l’espace disque disponible

Comme je ne trouvais pas la « killer application » dans ce domaine (même si il existe de très bon outils comme top), j’ai décidé de repartir d’une feuille blanche et de développer le logiciel Glances (licence LGPL) dont je vais vous présenter les grandes lignes dans ce billet.

Glances screenshot

Objectifs

Ils sont multiples:

  • prises en compte de mes griefs sur Saidar
  • accès à la fois depuis un environnement graphique (terminal) qu’à distance (console)
  • mise en avant des statistiques importantes à la compréhension d’un éventuel problème
  • affichage des processus triés de manière intelligente et automatique
  • développement en langage Python (je connais assez bien, c’est portable et facile à maintenir)

Installation

Après avoir téléchargé la dernière version stable disponible , il suffit de saisir les commandes suivantes:

[cc lang= »bash »]

tar zxvf glances-version.tar.gz

cd glances-version

./configure

make

sudo make install

[/cc]

Notes: remplacer « version » par le numéro de version que vous avez téléchargé…

Glances a besoin de la librairie python-statgrab version 0.5 (ou supérieure) pour fonctionner correctement. Sous Ubuntu, il suffit de lancer la commande:

[cc lang= »bash »]

sudo apt-get install python-statgrab

[/cc]

Sous Debian Squeeze, seule la version 0.4 de python-statgrab est disponible dans les dépôts. Il faut donc installer la version 0.5:

[cc lang= »bash »]

sudo apt-get install libstatgrab-dev

wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz

tar zxvf pystatgrab-0.5.tar.gz

cd pystatgrab-0.5/

./setup.py build

sudo ./setup.py install

[/cc]

Utilisation

On lance le logiciel avec la commande:

[cc lang= »bash »]

glances.py

[/cc]

Par défaut, le rafraîchissement des données se fait toutes les secondes. Il est possible de l’augmenter avec l’option -t. Par exemple pour avoir un taux de rafraîchissement de 5 secondes:

[cc lang= »bash »]

glances.py -t 5

[/cc]

Une fois lancé, les touches suivantes sont actives:

  • ‘a’: passer le tri des processus en automatique (c’est le mode par défaut). Glances utilisera par défaut un tri décroissant sur l’utilisation CPU. Si une alerte sur la mémoire globale apparaît (mémoire occupé > 70%), le tri se fera alors par occupation mémoire.
  • ‘c’: forcer le tri des processus en fonction de leurs utilisations de la CPU.
  • ‘m’: forcer le tri des processus en fonction de leurs occupations mémoire.
  • ‘q’: quitter le programme (on peut également utiliser CTRL-C).

Si votre terminal|console est compatible avec un affichage couleur, alors les statistiques importantes (à mes yeux…) sont mises en avant de la manière suivante:

  • VERT: le compteur est < 50%
  • BLEU: le compteur est > 50% et < 70%
  • VIOLET: le compteur est > 70% et < 90%
  • ROUGE: le compteur est > 90%

Limitations

L’API python-statgrab comporte actuellement un bug pour la récupération des statistiques sur les espaces disques. Dès que ce dernier sera corrigé, je pense inclure ces statistiques dans l’espace libre en bas à gauche de la fenêtre de Glances.

Un problème ?

Si vous rencontrez un problème lors de l’installation ou de l’utilisation de Glances:

  1. Vérifié que le problème n’est pas référencé
  2. Saisir le nouveau bug dans le tracker GitHub

Lors de la saisie du bug merci de fournir les informations suivantes:

  • Système d’exploitation (nom, version)
  • version de Python (python -v)
  • version de la librairie statgrab (apt-cache show statgrab)
  • version de la librairie python-statgrab (apt-cache show python-statgrab)

Contribuer ?

Le logiciel est distribué sous licence libre LGPL. Il est disponible dans le GitHub suivant: https://github.com/nicolargo/glances

Si vous trouvé ce logiciel intéressant et que vous souhaitez vous impliquer, j’ai besoin de vous sur les sujet suivants:

  • packaging de Glances pour Debian, Ubuntu (PPA), Fedora, Redhat, Free|Open|NetBSD…
  • amélioration/optimisation du code (lire le billet contribuer à un projet hébérgé sur GitHub)
  • inclure la vérification de la présence de la librairie python-statgrab lors du .configure (j’ai un bug dans le configure.ac)
  • ‘Man’ page
  • Afficher une fenêtre d’aide avec les touches disponibles quand on clique sur F1
  • Corriger le bug de python-statgrab afin que l’on puisse inclure les statistiques sur les systèmes de fichiers

J’attends vos retours. 🙂

Catégories
Open-source Planet-libre Systeme

Supervision simple en ligne de commande avec Saidar

Marre des interfaces graphiques qui ne sont là que pour faire plaisir à vos chefs ? Marre de passer vos journées dans les méandres des fichiers de configuration de Nagios ? Vous avez besoin d’un moyen simple et rapide pour voir ce qui cloche sur une machine ?

Si vous avez répondu oui aux questions précédentes ou que comme moi la première chose que vous faites en cas de problème sur une machine est de regarder la charge, la mémoire et l’espace disque disponible  alors Saidar est fait pour vous !

C’est quoi donc ?

Saidar est un logiciel libre (GPL v2), en ligne de commande permettant d’afficher sur dans une console l’état de votre machine. Il se base sur la librairie libstatgrab qui apporte une couche d’abstraction pour la récupération des informations sur les systèmes d’exploitations Solaris 2.x, Linux 2.2/2.4/2.6, FreeBSD 4.x/5.x, NetBSD 1.6.x, OpenBSD 3.x, DragonFly BSD 1.0, HP-UX, et Cygwin (donc Windows).

Cette librairie dispose également de binfing (interface) vers les langages suivants:

Comment cela marche ?

Sous Debian/Ubuntu, l’installation est facilité par la présence de Saidar dans les dépôts officiels:

[cc lang= »bash »]

# apt-get install saidar

[/cc]

Il suffit ensuite de lancer le logiciel depuis une console (/ terminal):

[cc lang= »bash »]

# saidar

[/cc]

Pour voir afficher les merveilleuses statistiques:

Personnellement j’ai ajouté un raccourci à mon fichier .bashrc pour activer certaines options (couleur et rafraîchissement toute les secondes):

[cc lang= »bash »]

alias saidar=’saidar -c -d 1′

[/cc]

Et voilà le résultat:

Si un chiffre apparaît en gras, c’est que la valeur dépasse les 60%. Au dessus de 90% il est affiché en avec un fond de couleur.

Bref, un outil bien sympathique dans l’esprit GNU à laisser tourner sur vos machines critiques !

Catégories
Open-source Planet-libre Systeme

Script de post installation de Mint 12 (aka Lisa)

L’utilisation par défaut de l’environnement Unity dans la dernière version d’Ubuntu (la 11.10) a beaucoup fait parler d’elle dans le petit monde des utilisateurs GNU/Linux. En effet, cette nouvelle interface demande à l’utilisateur une période d’adaptation pour retrouver ses marques. Personnellement, j’ai dans un premier temps renoncé à l’utiliser sur mon PC personnel mais pas pour cette raison. Comme j’utilise des distributions diverses et variées (Debian, Fedora, Ubuntu, BSD…), je souhaite avoir un environnement similaire entre tous ces systèmes. Comme Unity est seulement utilisée dans l’écosystème Ubuntu, je me suis penché sur Gnome 3 (Gnome Shell) et je l’ai donc installé puis configuré sur mon Laptop perso.

Aujourd’hui sort Mint 12 (« Lisa »), une distribution GNU/Linux basée sur Ubuntu (11.10) mais avec Gnome Shell comme environnement graphique par défaut. J’ai donc installé cette distribution sur une de mes machines et je dois avouer que j’ai été assez bluffé par le degré et la maturité d’intégration de Gnome Shell.

J’en ai également profité pour écrire un script de post installation qui permet de peaufiner le système en installant des logiciels manquants (voir la liste ici) et en améliorant encore un peu plus Gnome Shell (installation de thèmes et d’icônes supplémentaires).

Le script est disponible sur le repo GitHub (lien direct pour le téléchargement).

Pour exécuter le script sur une Mint fraichement (hahaha) installée:

[cc lang= »bash »]
mkdir ~/install
cd ~/install
wget https://raw.github.com/nicolargo/ubuntupostinstall/master/mint-12-postinstall.sh
chmod a+x mint-12-postinstall.sh
sudo ./mint-12-postinstall.sh
[/cc]

Voici le résultat:

Je suis bien sûr preneur de toutes les remarques sur le script. Vous pouvez également contribuer à son évolution en suivant ce tutoriel.

Avec quelques jours de recul, je pense le plus grand bien de cette distribution, elle apporte une cohérence et une continuité au niveau de l’interface graphique que l’on ne retrouve pas (ou plus) chez Ubuntu.

Avez-vous essayé Mint ? Qu’en pensez-vous ?

Catégories
Blog Musique Open-source Planet-libre Video

Mise à jour de la présentation de GStreamer

Il y a quelques mois, j’avais publié une présentation (au format « Powerpoint ») du framework multimédia GStreamer.

A l’occasion d’une présentation de cette technologie à la commission open-source de la Telecom Valley, j’ai mis à jour cette présentation en l’illustrant avec des exemples de pipelines que je lançais au fur et à mesure de mon exposé.

La nouvelle version (1.2) de cette présentation est disponible au téléchargement aux formats PDF et ODP. Elle est diffusé sous licence Creative Common BY v3.0 comme la totalité des billets de ce blog. Vous pouvez également télécharger les scripts shells contenant les pipelines utilisés lors de la présentation.


La présentation (PDF) / La présentation (ODP) / Les scripts shells d’illustration

Note: l’archive des scripts shells contient également une musique (Carl Phaser – « Domination » sous licence CC BY-NC-SA) et une vidéo (Justin Cone – « Building on the Past » sous licence CC BY-NC 1.0) que j’utilise dans ces pipelines.

Catégories
Open-source Planet-libre Reseau

Installation d’un serveur de temps sur votre réseau

Dans un système d’information moderne, la synchronisation des machines sur une horloge commune est un pré-requis pour de nombreuses actions comme l’analyse des logs ou la supervision système et réseau. Si vos machines sont directement connectés à Internet alors il n’y a pas de problème car les distributions GNU/Linux, Windows et Mac OS X embarquent des mécanisme pour se mettre automatiquement à l’heure en se synchronisant sur des serveurs publics (par exemple 0.debian.pool.ntp.org sur une Debian Squeeze). Si ce n’est pas le cas et que vos machines sont isolées et/ou bien filtrées lors de leurs accès à Internet, il peut être intéressant d’installer un serveur de temps local sur une de vos machine.

Nous allons donc dans ce billet installer un serveur de temps NTP sur une machine sous Debian 6 (Squeeze).

Le protocole NTP

J’invoque le bon génie Wikipédia: « Le Protocole d’Heure Réseau (Network Time Protocol ou NTP) est un protocole qui permet de synchroniser, via un réseau informatique, l’horloge locale d’ordinateurs sur une référence d’heure. »

La référence en question sera donc, dans notre cas, la machine ou nous allons installer puis configurer notre serveur NTP.

Le protocole NTP utilise le port UDP/123 pour effectuer les requêtes sur le réseau. Notre serveur sera donc en écoute sur le port UDP 123 (si vous avez un Firewall, il faudra bien entendu le configurer pour autoriser les requêtes sur ce port).

Installation du serveur NTP

On commence par installer les paquets nécessaires dans une console root:

[cc lang= »bash »]

apt-get install ntp ntpdate

[/cc]

La première chose à faire est de mettre le serveur à la bonne heure (quitte à avoir une référence, autant qu’elle soit juste…).

Pour cela deux solutions:

  • si votre machine à accès à Internet, utiliser la commande « ntpdate-debian » qui va synchroniser votre machine sur les serveur NTP Debian.
  • si votre machine n’a pas accès à Internet, alors téléphoner à l’horloge parlante (numéro payant: 3699) puis configurer l’heure système avec la commande « date ». Par exemple « date -s 16:56:23 ».

On édite ensuite le fichier /etc/ntp.conf:

[cc lang= »bash »]

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.

#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable

filegen peerstats file peerstats type day enable

filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).

#server ntp.your-provider.example

# http://www.pool.ntp.org/zone/fr

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will

# pick a different set every time it starts up. Please consider joining the

# pool: <http://www.pool.ntp.org/join.html>

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for

# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>

# might also be helpful.

#

# Note that « restrict » applies to both servers and clients, so a configuration

# that might be intended to block requests from certain clients could also end

# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don’t allow configuration.

restrict -4 default kod notrap nomodify nopeer noquery

restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.

restrict 127.0.0.1

restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if

# cryptographically authenticated.

#restrict 192.168.123.0 mask 255.255.255.0 notrust

# My server is a public server

restrict 0.0.0.0 mask 0.0.0.0

# If you want to provide time to your local subnet, change the next line.

# (Again, the address is an example only.)

broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the

# next lines. Please do this only if you trust everybody on the network!

#disable auth

#broadcastclient

[/cc]

Les informations intéressantes sont les suivantes:

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

Permet de configurer les serveurs maîtres sur lesquels votre machine va essayer de se synchroniser pour rester à l’heure. Il faut bien sûr que votre machine est accès à Internet sur le port UDP/123.

restrict 0.0.0.0 mask 0.0.0.0

On rends notre serveur public, toutes les machines ayant un accès réseau (encore une fois sur le port UDP/123) pourront se synchroniser à partir de votre serveur. Il est bien sûr possible de limiter ce droit aux seules machines de vos réseaux.

broadcast 192.168.0.255

(optionnel) Diffuse le temps sur l’adresse de broadcast de votre réseau (par exemple 192.168.0.0/24).

On relance ensuite le serveur pour que la configuration soit prise en compte:

[cc lang= »bash »]

# /etc/init.d/ntp restart

Stopping NTP server: ntpd.

Starting NTP server: ntpd.

[/cc]

Synchroniser vos machines avec votre serveur NTP

La configuration des clients est relativement simple car souvent inclus dans les « wizards » d’installations. Il suffit de préciser l’adresse IP ou le nom de votre machine hébergeant le serveur NTP comme serveur de temps.

Sur un client Debian 6 existant, il faut installer le package suivant (en root):

[cc lang= »bash »]

apt-get install ntpdate

[/cc]

Puis lancer la commande suivante (si votre serveur de temps est hébergé sur la machine 192.168.0.100):

[cc lang= »bash »]

ntpdate -dv 192.168.0.100

[/cc]

Conclusion

Le protocole NTP étant normalisé, il est bien sur possible de synchroniser toutes vos machines (Linux, BSD, Windows, OS X…) sur votre nouveau serveur de temps.

Catégories
Developpement Open-source Planet-libre

Contribuer à un projet hébergé sur GitHub

Le gestionnaire de version GIT semble prendre de plus en plus de place dans le petit monde des développeurs. Les qualités des services comme Gitorious ou GitHub y sont sûrement pour quelques choses. Il y a quelques temps, j’ai donc décidé de laisser tomber mon bon vieux serveur SVN et de migrer mes projets sur le service en ligne GitHub. Comme tous ces projets sont sous licences libres, l’hébergement sur GitHub est gratuit.

Quelques lecteurs voulant contribuer à la vie des ces développements m’ont demandé comment contribuer à un projet hébergé sous GitHub. Ce billet est là pour répondre à ces demandes !

Les deux premières étapes sont à suivre seulement la première fois que vous voulez contribuer à un projet. Les étapes suivantes sont par contre à faire à chaque contribution dans un nouveau projet.

1) Créer un utilisateur sous GitHub

C’est la première étape, s’enregistrer comme utilisateur sur le site GitHub. Il faut pour cela se rendre sur la page suivante puis renseigner le formulaire. A noter que ce compte vous servira à la fois pour contribuer à des projets existants mais également à héberger des projets sous licences libres (dans la limite de 300 Mo).

2) Enregistrer sa clé SSH

Afin de sécuriser la connexion vers serveurs GitHub, une clé SSH doit être générée et échangée entre votre PC et GitHub. On va donc commencer par générer une nouvelle clé SSH sur notre PC:

cd ~/.ssh

mkdir backup

cp id_rsa* backup

rm id_rsa*

ssh-keygen -t rsa -C "utilisateur@domaine.com"

Note: remplacer utilisateur@domaine.com par l’adresse mail que vous avez utilisé lors de la création de l’utilisateur sur GitHub.

La commande suivante:

cat ~/.ssh/id_rsa.pub

devrait afficher la clé fraîchement créée:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCn3BD+Kq9qdVQrRNf9CIWGHWHrYpygPbOjidGA/34TWcKKSY0QgUVl3CYBkBDMyTMRNoDnMcF5O4bpwUDx2uXPAlrjQnUAk/WvPdQ+Clcnv+H5jgaj0i6Gfw/WSRDopmGpey7B29UGifgYW3/1MacH7tb+6Q03phUPedcBd4LNN+iBAUSfSvesYXNWW9//Wl7xi3OT2qbLOBRCGF9nlvv1AXEAbCF8h3l4Bu9w0BeVpmSIekLqNZVasEvM/4MWj+E7ayVajCQC2tm4+mt7+0kVHW35PUDlRaW2mv9muuy2mvqtJ4aW+zoPd3sWADUGBLLASWhuqY2Gmh3LIN+2gq2l  utilisateur@domaine.com

Il faut ensuite se rendre sur votre interface d’administration de GitHub puis ajouter une nouvelle clé SSH associée à votre PC (Add another public key):

Puis copier/coller la clé SSH (le contenu du fichier  ~/.ssh/id_rsa.pub) dans le formulaire:

Pour tester que la clé a bien été prise en compte, il suffit de lancer les commandes suivantes depuis votre PC:

# ssh -T git@github.com

Hi USER! You've successfully authenticated, but GitHub does not provide shell access.

Si la clé fonctionne correctement, il reste a configurer les informations suivantes:

$ git config --global user.name "Prenom Nom"

$ git config --global user.email "utilisateur@domaine.com"

3) « Forker » le projet sur lequel vous voulez contribuer

Imaginons que vous vouliez contribuer sur le projet Nagisk (mon plugin Asterisk pour Nagios), il faut dans un premier temps se rendre sur sa page GitHub puis cliquer sur le bouton .

Cette première action va dupliquer (« fork« ) dans votre espace  GitHub, le contenu du projet Nagisk. Ce nouveau projet aura sa propre vie par rapport au projet initial.

Il faut ensuite récupérer le nouveau projet en local sur votre PC:

git clone git@github.com:utilisateur/nagisk.git

cd nagisk

git remote add upstream git://github.com/nicolargo/nagisk/symfony.git

Note: Remplacer utilisateur par votre login GitHub.

Note 2: La dernière ligne va configurer le Git « source » (celui à partir duquel vous avez forké le projet) comme remote.

Il faut ensuite créer une branche dans laquelle vous aller faire vos développements:

git checkout -b NOMDELABRANCHE

Note: Choisissez une NOMDELABRANCHE qui colle à votre modification. Par exemple, si c’est une modification de bug, un nom du type PATCH_XXX avec XXX qui est égal au numéro de ticket (issue).

Il ne vous reste plus qu’à coder…

Une fois le phase de codage terminer, il faut mettre à jour la nouvelle version de votre projet avec les commandes suivantes:

git checkout master

git fetch upstream

git merge upstream/master

git checkout NOMDELABRANCHE

git rebase master

Si il y a des conflits après la dernière commande, il faut les corriger puis poursuivre le rebase:

git add ... # Liste des fichiers modifiés lors de la correction

git rebase --continue

$ git push origin NOMDELABRANCHE

Votre projet « forker » est maintenant à jour. Reste à proposer votre modification au projet source.

4) Formuler votre demande de contribution

Pour cela il suffit d’appuyer  sur le bouton  (pour plus d’informations, voir ici la page officielle de l’action Pull Request)

La demande de modification va alors être proposée au responsable du projet source qui pourra, s’il le souhaite, l’inclure dans sa prochaine version.

En cadeau bonux, une feuille A4 contenant une liste non-exhaustive des commandes Git.

Sources: Blog Lorna Jane

Catégories
Open-source Planet-libre Reseau

Installer un serveur TFTP pour vos Cisco

Un rapide billet pour rappeler les étapes nécessaires à la mise en place d’un serveur TFTP sur un système GNU/Linux (Debian Squeeze) afin de sauvegarder les configurations de vos routeurs Cisco.

Installation du serveur TFTPD

On utilise le paquet tftpd qui se trouve dans les dépôts Debian (commande à saisir dans un terminal root ou en utilisant la commande sudo):

apt-get install tftpd

On doit ensuite créer le répertoire ou seront stockés les fichiers des configurations Cisco (/srv/tftp dans mon cas).

mkdir /srv/tftp
chmod -R 777 /srv/tftp
chown -R nobody /srv/tftp

Si vous choisissez un autre répertoire que /srv/tftp, il faut:

  1. éditer le fichier de configuration /etc/inetd.conf et changer le répertoire de la ligne commençant par tftp
  2. Redémarrer le serveur TFTP avec la commande /etc/init.d/open-inetd restart

Création du fichier de configuration vide

TFTP est un protocole de communication de bas niveau. Il ne met pas en place de mécanisme d’authentification. La création du fichier de configuration vide doit donc se faire à partir du serveur (il est possible de changer ce comportement et ainsi de permettre au client, c’est à dire au routeur Cisco, de créer lui même le fichier mais je ne le conseille pas pour des questions de sécurité).

On va donc créer un fichier vide nommé cisco-rtr-01-confg:

touch /srv/tftp/cisco-rtr-01-confg
chmod -R 777 /srv/tftp
chown -R nobody /srv/tftp

Sauvegarde de la configuration depuis le routeur Cisco

On en vient enfin au vif du sujet: c’est à dire la sauvegarde de la configuration (IOS running) de notre Cisco sur le serveur TFTP.

# copy run tftp:
Address or name of remote host []? 192.168.0.100
Destination filename [yourname-confg]? cisco-rtr-01-confg
!!
1292 bytes copied in 0.380 secs (3400 bytes/sec)

Il faut bien sûr remplacer l’adresse 192.168.0.100 par l’adresse IP (ou le nom) de votre machine Debian ou vous avez installés TFTP.

Catégories
Open-source Planet-libre Systeme

Mon desktop 201111

Cela fait maintenant plus d’un mois que je suis passé à Gnome Shell sur mon Laptop Ubuntu personnel. Je peaufine petit à petit la configuration de mon bureau qui commence à me donner satisfaction.

Voici un screenshot de la bête:

 

Ma configuration

Une petite description:

Au niveau du menu avec les raccourcis, rien de très original:

Google Chrome

 

Firefox (comme ça pas de jaloux)

 

Terminator, le terminal

 

Shutter pour les screenshots

 

VLC, pour tout lire / voir

 

Spotify pour la zic

Retour 1 mois après…

Il est intéressant de noter que je commence à trouver mes marques dans ce fameux Gnome Shell. Je ne regrette pas d’avoir choisi Gnome Shell à la place d’Unity. Le temps passé à cet apprentissage pourra facilement être récupéré sur d’autre système GNU/Linux qui passeront un jour ou l’autre sous Gnome 3 (je pense notamment à Debian). L’intégration avec Ubuntu est encore loin d’être parfaite ce qui peut être un vrai problème pour un nouveau venu dans le monde GNU/Linux mais je ne doute pas que des améliorations seront apporté par la version 12.04 LTS d’avril prochain.

Et vous ?

Cela donne quoi ? Sous Gnome Shell, Unity, Gnome 2 ou autres ?

A vous de nous montrer vos écrans
(par exemple en utilisant yFrog puis en partagant l’URL) !

Catégories
Developpement Open-source Planet-libre

Kit du développeur libre sous Windows

Devant le nombre important de commentaires intéressants sur le billet de ma trousse à outils libres sous Windows, il était impensable d’en rester là. Manifestement beaucoup de libristes travaillent (ou sont forcés de travailler) sous un système d’exploitation de Microsoft. Nous allons donc reprendre dans ce billet les logiciels libres (et seulement libre) permettant de développer dans ce milieu hostile. Comme toujours, les commentaires seront là pour partager d’autres pépites !

Les compilateurs / langages

C: Cygwin fait la passerelle entre le monde Windows et GNU/Linux. Ils apportent un certain nombre d’outils et de librairies permettant notamment de compiler vos programmes en C. On peut également citer MinGW, un fork plus léger de Cygwin, offrant un environnement de développement minimal (GCC).

Python: Pas de problème ici, Windows dispose de la dernière version du langage Python. A télécharger ici pour Python 2 et pour Python 3.

Perl: On présente plus le langage Perl. Vous pouvez télécharger la dernière version sous Windows à partir du site officiel. Je vous conseille la version Strawberry Perl.

NodeJS: C’est le framework implémentant, coté serveur, la version 8 du moteur Javascript de Google (j’en parle dans certains de mes billets). On peut télécharger la version de développement qui propose un binaire Windows ici.

Les consoles / terminaux

En tant qu’utilisateur GNU, le plus gros choc quand j’ai dans les mains une machine Windows est la qualité déplorable du terminal par défaut (le fameux cmd.exe). Non seulement c’est une hérésie complète au niveau de l’ergonomie mais en plus c’est le seul logiciel qui n’évolue pas d’une version à l’autre de Windows. Voici donc quelques alternatives obligatoires…

Console2: Avec ce logiciel libre on retrouve enfin une vrai console sous Windows. A vous les copier/coller, les agrandissements de fenêtres, les tabs…

Attention, ce n’est qu’une interface graphique permettant de saisir des commandes. Si vous ne disposez pas d’un client SSH, il vous sera impossible d’accéder avec ce protocole à vos machines sous Windows. Personnellement, pour résoudre ce besoin j’ai installé Plink (la couche SSH de Putty) puis j’ai automatisé le lancement de la commande suivante:

[cc]doskey ssh= »C:\Program Files\PuTTY\plink.exe » $*[/cc]

PuTTY: Pour ceux qui utilisent la console uniquement comme un terminal SSH/Telnet, PuTTY reste un très bon choix. Il est léger, transportable facilement sur une clé USB (il nécessite seulement un exécutable). A noter qu’il existe une extension à PuTTY nommé PuTTY Connection Manager et qui propose la gestion des tabs et autres améliorations (non libre !). Il existe également un fork de PuTTY nommé KiTTY qui semble proposer toutes ces fonctions mais je ne l’ai pas testé.

MobaXterm:  C’est un package tout en un (dans un unique exécutable) intégrant à la fois un serveur X, un terminal et une version intégrée de Cygwin. C’est la solution idéale (bien qu’un peu lourde) si vous avez besoin de travailler sous Windows comme vous le feriez (à peu près) sous GNU/Linux.  A noter qu’il existe un certain nombre de plugins permettant d’adapter votre MobbaXterm à vos besoins (GCC, Perl, Emacs…).

Les éditeurs

Vu le nombre de solutions que l’on peut trouver sur le marché des éditeurs de texte, le choix est plus une affaire de goût que de qualité. Voici donc une petite sélection hétéroclite d’éditeurs libres.

Notepad++: Concurrent direct de PSPad, qui est un freeware non libre, dans la catégorie des éditeurs de texte « grand public » (noter les guillemets). Notepad++ offre tout ce que l’on peut attendre d’un éditeur orienté développement en 2011.

Vim: A l’opposé de Notepadd++ en ce qui concerne l’UE (« user experience »), Gvim, le portage de Vim sous Windows, permettra à nos chers barbus condamnés au bagne en travaillant sous Windows à ne pas tomber dans une déprime complète et irrémédiable. Dans la même mouvance, on peut également utiliser la version Windows d’Emacs, à télécharger ici.

Winmerge: Même si ce logiciel n’est pas un éditeur à part entière, il a largement sa place dans ce kit. Il permet de comparer visuellement deux fichiers et de lancer des actions pour les synchroniser. Un must have qui a le bon goût d’être libre…

Eclipse: Difficile de faire une billet parlant de développement, de logiciel libre et de Windows sans évoquer Eclipe… Certains le touve usine à gaze, d’autres indispensable pour un « gros » développement. La vérité est surement entre les deux.

Les gestionnaires de versions

Je n’aborderai ici que la partie cliente des gestionnaires de versions tant il me semble aberrant  de vouloir héberger un serveur sur une machine Windows… On va les prendre un par un (enfin les plus connus):

CVS (oui oui il y en a encore qui utilise CVS…): TortoiseCVS intègre parfaitement CVS dans gestionnaire de fichier de Windows.

SVN: TortoiseSVN est a SVN ce que TortoiseCVS est à CVS…

Git: Si vous voulez rester dans le même style d’interface pour votre gestionnaire sous GIT, je vous conseille d’utiliser TortoiseGIT. Si le changement ne vous gène pas, il y a GitExtensions qui pour moi est la solution idéale sous Windows.

Mercurial: Je dois avouer que je n’utilise pas Mercurial. J’ai trouvé (mais donc pas testé) le pendant de Tortoise pour HG, j’ai nommé… TortoiseHG (que c’est original).

Conclusion

La liste de logiciels que nous venons d’évoquer n’est bien sûr pas exhaustive et ciblée sur mes besoins. N’hésitez pas à partager votre expérience de « développeur libre sous Windows » (sic) avec nous !