Redis-server 2.8 sur Debian 7 Wheezy

La version 8.3 de Gitlab nécessite une mise à jour de redis car celle-ci se base sur redis-server en version 2.8. Problème, ce composant n’est pas disponible par défaut pour Debian Wheezy. Deux solutions possibles, mettre à jour Debian vers Debian Jessie avec tous les risques que cela comporte (init.d -> systemd, apache2.2 -> apache2.4, etc…) ou compiler le composant à partir des sources. Pour ma part, j’ai donc choisi la troisième solution : utiliser le dépôt backport wheezy qui par chance propose redis-server dans la version qui m’intéresse !

Pour commencer, on ajoute la ligne suivante dans le fichiers /etc/apt/sources.list du système :

deb http://ftp.debian.org/debian wheezy-backports main

On met à jour les dépôts :

apt-get update

On peux ensuite passer à l’installation :

apt-get -t jessie-backports install redis-server

Il sera nécessaire de faire un choix entre votre configuration locale et la configuration en provenance du paquet. Ici, pas le choix en regardant le diff entre les deux fichiers, il faut absolument prendre la nouvelle version.

Cela nécessite néanmoins de ré-appliquer la configuration de redis pour Gitlab comme décrit dans le paragraphe redis de la doc d’installation à partir de « Configure redis to use sockets« .

Pour vérifier la version de redis installée, on aura utilisé au préalable la commande :

redis-cli info | grep redis_version

Installing Cabot on Debian

Let’s say we want to install Cabot on a server, but not on AWS, nor on DigitalOcean. And because we like challenges, let’s just use Debian Wheezy 7.5 instead of the recommended Ubuntu 12.04 LTS. Ready?

We will try to follow Cabot quickstart to perform the installation.
But first, we must set up a few things. I’ve discovered that during installation, Cabot locks the password of the root account using passwd -l root. So be aware that you won’t be able to log with root and ssh if you haven’t set an authentication process using SSH keys. As The Hitchhiker’s Guide to the Galaxy would say: « Don’t Panic », you can reverse the process if you want using passwd -u root. As a security, you could always create another user with adduser mynewuser and give him an admin status by adding it to the suddoers file with visudo.

So let’s create our keys and configure ssh.
Generate the key:

ssh-keygen -t rsa

Now that we have a key named id_rsa.pub in our .ssh directory, we should do the following steps:

  1. Generate the key-file.
  2. Somehow get the key-file over to the right user-id on the right host.
  3. If that user doesn’t already have an « .ssh » directory, create one AND set its permissions to « 700. » (« rwx——« )
  4. If that user doesn’t already have an « .ssh/authorized_keys » file, create one AND set its permissions to « 600. » (« rw——-« )
  5. Append … don’t overwrite(!) … the new key to that file.

Or we can use ssh-copy-id:

 ssh-copy-id -i ~/.ssh/id_rsa.pub root@hostname.org

You should now be able to log in without having to type in a password.

Before going further, we need to install Fabric as it is used to provision the server and deploy Cabot.

pip install fabric

Fabric also requires some dependencies which are described on Fabric installation page.

Next step, clone the repository. I am using the deploy branch of lincolnloop fork which include awesome python packaging.

 git clone https://github.com/lincolnloop/cabot.git
 git checkout deploy
 cd cabot

Modify configuration: (might need to use development.env with the fork here)

 cp conf/production.env.example conf/production.env
 vim conf/production.env

Before doing anything, make sure you can or can’t install nodejs: aptitude search node. If nodejs can’t be found, you’ll need to install it manually.
A few changes before provisioning our server. Edit file bin/setup_dependencies.sh
and remove line 57 and 58:   ‘nodejs‘ and ‘npm’
Install nodejs manually, npm should come it.

fab provision -H root@your.server.hostname

Once it’s done, we can deploy cabot:

 fab deploy -H ubuntu@your.server.hostname

You should get an error because cabot is trying to use upstart but can’t find it.
To run Cabot, log in to your server under the user ubuntu.

 cd 2014-06-19-e662635

(Your directory will have a different name following a similar pattern year-month-day-wathever)

 foreman start

Congratulations, Cabot should now be running!

Cabot

Things to do

I will certainly add a simple init.d script to my Cabot fork so that we can run it easily. I will maybe change one or more things as the ubuntu username.

Understanding how to install and run Cabot took me a few hours. I got disturbed by the quickstart speaking of AWS or DigitalOcean server. I also tried to install it manually but didn’t manage to get it work, although I was close to it (I think. Or at least I hope ^^). Installing it on Debian added some difficulties, but nothing insurmountable. As a conclusion, I must say that Cabot is worth the effort. It provides a great way to monitor your service with Http checks and the possibility to alert based on Graphite metrics is just priceless.

GNU/Linux: Parcours

Une minorité de personne a la chance d’entrer dans le monde de l’informatique accompagné d’un système GNU/Linux. Comme la très grande majorité, j’ai donc découvert l’informatique en commençant par un système Windows, 98 en l’occurrence. Quelques années plus tard, je reçois mon premier ordinateur perso, un portable sous Vista. Après quelques mois d’utilisation, l’envie de passer à un système GNU/Linux se fait sentir. Arrive donc une période de lecture de tuto, doc, wiki et autres forums pour savoir comment procéder et surtout, quelle distribution choisir?

Mon choix se porte vers Ubuntu, alors en version 09.04. L’installation se déroule sans aucun problème, j’ai maintenant un dual boot Ubuntu/Vista. Les mois passent et mon OS GNU/Linux devient peu à peu la référence. Je délaisse Vista, sauf pour jouer à un jeu de temps à autre.

Les mois passent, et arrive les Rencontres Mondiales du Logiciel Libre 2011 à Strasbourg. Au programme, conférence de Richard Stallman, Benjamin Bayart, Jérémie Zimmerman,… un évènement à ne pas manquer! Quelques semaines avant, j’effectue une mise à niveau vers la dernière version d’Ubuntu en date, la 11.04, et rencontre mon premier problème. Une fois la phase de login passée, seul le fond d’écran s’affiche. Pas moyen de faire apparaitre quoi que ce soit, l’interface graphique restant muette devant les clics souris. La version précédente du noyau est toujours présente dans mon Grub, je teste à tout hasard; tout y fonctionne normalement. je me rabat donc temporairement sur celle-ci en attendant de trouver une solution, que je ne trouverai finalement pas.

Dans le même temps, Stallman nous parle de liberté, pour l’utilisateur, pour le développeur. Il commence par définir le logiciel libre en trois mots: « Liberté, Égalité, Fraternité », sous un tonnerre d’applaudissements et nous expose les 4 libertés qui lui sont liés. Son discours s’appuie sur de nombreux exemples tirés de l’actualité du moment. Au passage, Stallman cite quelques distributions totalement libres, parmi celles-ci: Trisquel.

N’arrivant pas à résoudre mon problème d’affichage, je décide donc d’essayer Trisquel. Je ne suis pas dépayser, pas de changement majeur par rapport à Ubuntu. Néanmoins, les drivers wifi n’étant pas libres, ceux-ci ne sont pas présent de base. J’utilise donc Trisquel pendant un peu plus d’un trimestre, avant de prendre la décision de tester une autre distribution.

Je me tourne alors vers Debian pour un retour au source, Ubuntu et Trisquel étant construite sur une base Debian. Pas de wifi non plus après la première installation, mais quelques lignes de commande règle le problème. Je retrouve pour un temps un environnement qui me convient. Mais, car il y a un mais, la version que j’utilise est la version stable… Les logiciels ne sont donc pas disponibles dans leur dernière version. Alors que faire? Une solution consiste à passer en version testing, celle-ci étant à priori relativement stable?

Finalement, nouveau changement puisque j’utilise à présent un système Arch Linux. L’installation s’effectue entièrement en ligne de commande, en choisissant les briques qui composeront l’OS. Quelques problèmes surviennent lors de la mise en place de l’environnement de bureau, mais la lecture du wiki permet de débloquer la situation. Place ensuite à l’étape de configuration/personnalisation pour avoir un système qui me convienne parfaitement.

archlinux-logo

Après maintenant trois semaines d’utilisation quotidienne, je pense avoir trouvé l’OS qui me conviendra pour les mois (et les années?!) à venir. Agréablement surpris par les différents paquets à disposition, notamment le paquet nodejs qui permet d’éviter la compilation à partir des sources à coup de make à chaque nouvelle version. Le wiki est complet, du moins, pour les parties que j’ai pu parcourir. Satisfait donc, de cet ArchLinux tout neuf, au point que j’envisage de l’installer sur un autre ordinateur resté quant à lui sur Ubuntu.

Debian et le Wifi

Après avoir utilisé Ubuntu, je m’étais finalement tourné vers Debian, version mère d’Ubuntu. J’ai dernièrement réinstallé mon ordinateur et lors de la configuration de mon système GNU/Linux, s’est posé le problème du wifi. Voilà donc la façon de procéder que j’ai utilisée pour faire fonctionner ma carte réseau.

Tout d’abord, on ajoute les dépôts non libre ou non-free:                                                     nano /etc/apt/sources.list

On ajoute les lignes suivantes:                                                                                           deb http://ftp.lip6.fr/pub/linux/distributions/debian/ squeeze contrib non-free
deb-src http://ftp.lip6.fr/pub/linux/distributions/debian/ squeeze contrib non-free                                                                                                                               Ou via l’interface graphique: Système > Administration > Sources de mise à jour         puis cocher la case « Logiciel non libre »

On met à jour la liste des paquets:                                                                                       aptitude update

On recherche ensuite des informations sur la carte wifi installée avec:                               lspci | grep -i net                                                                                                                   Dans mon cas, je repère le modèle de la carte wifi:                                                          Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)

On recherche ensuite le paquet qu’il nous faut:                                                                apt-cache search firmware | grep -i intel | grep -i firmware                                          Ou pour rester cohérent:                                                                                               aptitude search firmware | grep -i intel |grep -i firmware

On obtient le résultat suivant:                                                                                      firmware-intelwimax – Binary firmware for Intel WiMAX Connection
firmware-ipw2x00 – Binary firmware for Intel Pro Wireless 2100, 2200 and 2915
firmware-iwlwifi – Binary firmware for Intel Wireless 3945, 4965 and 5000-series cards
firmware-netxen – Binary firmware for QLogic Intelligent Ethernet (3000 and 3100 Series)

Dans mon cas, c’est iwlwifi qui m’intéresse.                                        Installation:                                                                                                                         aptitude install firmware-iwlwifi

Ces différents étapes m’ont donc permis d’avoir une carte wifi fonctionnelle sur mon système Debian, ce qui est particulièrement utile dans le cas d’un ordinateur portable ;). On retient également la page consacrée au wifi sur le wiki Debian: http://wiki.debian.org/WiFi