Google PlusFacebookTwitter

Paquet pcs disponible pour Debian Jessie

By on Juin 4, 2016 in Linux, OpenStack | 0 comments

Share On GoogleShare On FacebookShare On Twitter

Il était une fois, l’histoire de pacemaker, corosync et pcs…

Pour ceux qui ne connaissent pas cette histoire, un petit résumé s’impose (je dois mettre le mot pcs ici pour le référencement).

En temps normal, cette suite d’outils liée à la haute disponibilité est présente dans les miroirs officiels Debian GNU/Linux. Hélas, pour Debian GNU/Linux Jessie (8.x) ce ne fut pas le cas…

Trois problèmes:

  1. Un problème avec la librairie libqp qui n’a pas été résolu à temps. [1]
  2. Le paquet corosync était plutôt en mauvais état. [2]
  3. L’équipe Debian en charge de la haute disponibilité était quasiment inactive. [3]

Heureusement, même si cela arrive tard, les trois problèmes cités ci-dessus ont été résolus et ces paquets sont désormais disponibles via les backports officiels Debian.

pcs, un oubli malheureux

pcs permet de configurer pacemaker et corosync en ligne de commande sans avoir à éditer le fichier de configuration de corosync ou la CIB (un splendide fichier XML) de pacemaker. Cet outil est souvent comparé à crmsh.

Malheureusement, pcs n’a pas été packagé pour la branche jessie par les mainteneurs Debian.

En route vers un backport \o/

pcs étant packagé dans la branche stretch (testing) de Debian, le backporter pour jessie ne devrait pas être difficile (en théorie).

Presque toutes les dépendances liées à pcs sont disponibles sous jessie, à l’exception du paquet ruby-rpam-ruby19, un second paquet à backporter \o/

La construction de ces deux paquets s’est faite sans douleur, seul problème, pcs ne fonctionne pas. C’est un léger détail me direz-vous, non ?

Ouille, aïe, etc…

Pour faire fonctionner pcs, il m’a fallu résoudre deux problématiques:

  1. Le service pcsd se lançait mais impossible d’authentifier les nœuds entre eux.
  2. Impossible d’utiliser pcsd via un réseau en ipv4.

Ces deux erreurs sont connues, la première est liée au packaging Debian et Ubuntu, il manque une dépendance Ruby: orderedhash ! [4]

Lorsque le service pcsd est lancé via systemd, aucune erreur n’apparait car la commande utilisée pour démarrer le service redirige les erreurs vers le fameux « & > /dev/null »  😛

Par contre, si le service est lancé via la ligne de commande suivante, l’erreur s’affiche:

Erreur:

Rien de bien dramatique me direz-vous ? Manque de bol, il n’existe pas de paquet ruby-orderedhash sous Debian ou Ubuntu.

La solution la plus simple pour créer ce paquet consiste à utiliser l’outil fpm, ça poutre, c’est bien, mangez-en ! Parce que je suis sympa, je poste la commande (à vous de faire quelques recherches sur cette dernière):

Pour ce qui est de l’erreur liée à l’impossibilité de se connecter à pcsd via un réseau ipv4, cette dernière est bien connue. Il s’agit d’un bout de code à changer dans la librairie Ruby SSL utilisée par pcsd, voici le patch en question [5]:

Cette modification consiste à « binder » pcsd sur toutes les interfaces, d’un point de vue sécurité ce n’est pas la meilleure façon de faire mais en attendant ça fonctionne.

Ce patch est appliqué au code source de pcsd lors de la construction du paquet. Ce patch a été créé à l’aide de la commande quilt.

Conclusion

Pour conclure, au total trois paquets ont été créés, deux d’entre eux ont été backportés depuis la branche stretch de Debian et le dernier a été créé via fpm (ce dernier va certainement évoluer dans les futures semaines).

Pour accéder à ces trois paquets, il suffit d’ajouter le miroir InCloudUs à votre /etc/apt/sources.list :

Puis de signer le miroir en question via la commande apt-key:

La commande pcs est désormais disponible sous Debian GNU/Linux Jessie (8.x) et devrait aussi fonctionner sous Ubuntu.

Liens

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

OpenStack Technical Cloud Consultat chez Red Hat
Autodidacte en informatique, depuis 2005 je parcours l’écosystème Unix à la recherche de nouvelles connaissances et de nouvelles rencontres.

CC BY 4.0 Paquet pcs disponible pour Debian Jessie par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.