Google PlusFacebookTwitter

Mise à jour du module grub2 pour Puppet

By on Mai 12, 2015 in Devel, Linux | 0 comments

Share On GoogleShare On FacebookShare On Twitter

Parce que j’ai fait mon grub ce weekend…

Il y a maintenant un peu plus d’une année, je publiais mon premier module Puppet (puppet-grub, sans trop savoir comment cela fonctionnait je l’avoue). Quelques issues furent ouvertes sur Github, dans l’ensemble le module semblait vivre sa vie sans trop de soucis.

Ayant eu enfin le courage de me décider à corriger le ticket (Refresh (update-grub) always triggered), de fil en aiguille, j’ai corrigé, modifié le module pour en sortir une nouvelle version.

L’objectif était de rendre le module le plus compatible possible avec les standards de la forge Puppet. Pour se faire, j’ai dû:

Autre amélioration, rendre le module compatible avec les distributions Red Hat like, ceci est désormais chose faite. Pour se faire, le module se base sur le fact osfamily:

case $::osfamily {
  'Debian': {
    $config_file       = '/etc/default/grub'
    $distributor       = '$(lsb_release -i -s 2> /dev/null || echo Debian)'
    $install_binary    = '/usr/sbin/grub-install'
    $package_name      = [ 'grub-pc', 'grub-common' ]
    $update_binary     = '/usr/sbin/update-grub'
  }
  'Redhat': {
    $config_file       = '/etc/default/grub'
    $distributor       = "$(sed 's, release .*$,,g' /etc/system-release)"
    $install_binary    = '/usr/sbin/grub2-install'
    $package_name      = [ 'grub2', 'grub2-tools' ]
    $update_binary     = '/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg'
  }
  default: {
    fail("The ${module_name} module is not supported on ${::operatingsystem}")
  }

Ce module a été testé sur une CentOS 7 ainsi que sur une Debian GNU/Linux Wheezy, il devrait donc fonctionner sur Fedora, RHEL, Ubuntu, etc… Si ce n’est pas le cas, merci d’ouvrir une issue sur Github (cf. le lien en bas de la page).

N’étant pas un esspert Puppet/Ruby… je vous invite à faire des PR (pull request) sur Github afin d’améliorer soit le code soit le module en général soit les deux ^^

Travis, un ami qui vous veut du bien !

Qu’est-ce que Travis:

Pour faire simple, vous pouvez paramétrer Travis-CI pour qu’à chaque push, il exécute vos tests et vous indique si votre build (plusieurs « jobs ») s’est bien déroulé ou non. Cela permet à chaque modification du projet, de s’assurer que tout fonctionne correctement. Cela s’appelle l’intégration continue.

Travis-CI est gratuit pour les projets publics hébergés sur GitHub. (source)

Le module puppet-grub2 est donc désormais validé par Travis à chaque push Git, cela garantit que rien n’a été cassé suite à un commit un peu foufou :mrgreen:

Changelog du module Puppet

Liens

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

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

Derniers articles parGaëtan Trellu (goldyfruit) (voir tous)

CC BY 4.0 Mise à jour du module grub2 pour Puppet par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.