Intégration Puppet, Foreman et Mcollective

Depuis que nous avons déployé Foreman en production, nous n’avions jamais pu
utiliser le bouton ‘Run Puppet’ dans l’interface de Foreman car nous n’avons
pas de daemon puppet : il tourne en crontab.

Cependant la sortie de la version 1.2 de Foreman change la donne :
le support de mcollective est maintenant intégré dans les smart-proxies.

Voici la procédure pour le faire fonctionner. Je pars du principe que vous avez déjà
un mcollective et un Foreman fonctionnel.

Vous devez configurer tous les proxy qui déclarent la fonctionnalité ‘puppet’:
Sur les proxy:
On commence par installer le client mcollective et le plugin puppet :

# apt-get install mcollective-client mcollective-puppet-client

Pensez à configurer votre client mcollective (/etc/mcollective/client.cfg), cette configuration devrait être la même que votre desktop.
Vous devez ensuite autoriser l’utilisateur foreman-proxy à utiliser le client mcollective:

# visudo 
Defaults:foreman-proxy !requiretty
foreman-proxy ALL = NOPASSWD: /usr/bin/mco puppet runonce *

Dans la configuration du proxy :

:puppet: true
:puppet_provider: mcollective

Redémarrez votre proxy (pour ma part j’utilise apache et passenger) :

# service apache2 restart

Vous devriez pouvoir tester votre installation avec un simple appel curl :

$  curl   -d "nodes=myserver.example.com" https://myproxy:8443/puppet/run

Afin de pouvoir l’utiliser j’ai du ajouter dans ma configuration de mes daemon mcollective
la directive identity :

Dans /etc/mcollective/server.cfg

identity = myserver.example.com

Dans les paramètres de Foreman, il faut
passer la directive ‘puppetrun’ à ‘true’.

Cela devrait être bon, il vous suffit d’aller sur la page de votre host et cliquer sur le bouton ‘Run puppet’

Share
  1. Salut,
    j’ai suivi ta doc , mon puppet run , ne m’affiche plus d’erreur ( sur foremanWebUi il met s »succesfully executed check log )
    mais il ne se passe rien ensuite, pas de rapport

  2. Dans le cas de l’utilisation du module mcollective de puppetlabs, la ligne identity=… s’ajoute avec le code suivant :

    # fixup parce que debian
    mcollective::server::setting { ‘identity’:
    value => $fqdn,
    }

Laisser un commentaire