Puppet-dashboard
| Fiche express | |
|---|---|
| Type | Application web (obsolète) |
| Contexte | Ancien ENC (External Node Classifier) et interface de reporting pour Puppet 2.x/3.x |
| Statut | Projet archivé côté éditeur — remplacé par la console Puppet Enterprise, Foreman ou des outils PuppetDB dédiés |
| Voir aussi | Puppet · Puppet enterprise · Foreman |
Puppet Dashboard était une application Rails permettant de gérer l'affectation des classes Puppet aux nœuds (rôle d'ENC, External Node Classifier) et de visualiser l'historique des runs (rapports de changement/échec). Le projet est aujourd'hui abandonné par l'éditeur : les installations Puppet 4+ s'orientent plutôt vers la console de Puppet Enterprise, vers Foreman (qui propose un ENC et bien plus), ou vers des tableaux de bord construits directement sur PuppetDB.
Cette page est conservée à titre historique/documentaire pour la maintenance d'installations existantes ; à ne pas utiliser pour un nouveau déploiement.
Installation
Prérequis (procédure historique — les versions de paquets citées ci-dessous, comme RubyGems 1.3.5, datent d'environ 2010 et sont largement obsolètes aujourd'hui ; à adapter entièrement si cette installation devait être reproduite) :
yum install -y mysql mysql-devel mysql-server ruby ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri gcc libcurl-devel openssl-devel zlib-devel gcc-c++ service mysqld start chkconfig --add mysqld
cd /tmp wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.5.tgz tar -xzf rubygems-1.3.5.tgz cd rubygems-1.3.5 ruby setup.rb gem install rake
Dépôt PuppetLabs :
vi /etc/yum.repos.d/puppetlabs.repo
[puppetlabs] name=Puppet Labs Packages baseurl=http://yum.puppetlabs.com/base/ enabled=1 gpgcheck=1 gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
yum update yum install puppet-dashboard puppetserver vim-puppet
Configuration
Base de données
Fichier de connexion : /usr/share/puppet-dashboard/config/database.yml
production: database: dashboard username: dashboard password: <mot_de_passe> encoding: utf8 adapter: mysql
Création de la base et de l'utilisateur MySQL :
mysql> CREATE DATABASE dashboard CHARACTER SET utf8; mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY '<mot_de_passe>'; mysql> GRANT ALL PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';
Initialisation du schéma :
cd /usr/share/puppet-dashboard rake RAILS_ENV=production db:create rake RAILS_ENV=production db:migrate
service puppet-dashboard start
Serveur web (Apache + Passenger)
yum install ruby ruby-libs ruby-devel httpd httpd-devel gem install passenger passenger-install-apache2-module
VirtualHost type (chemins de Passenger à adapter à la version installée) :
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
PassengerStatThrottleRate 120
RailsAutoDetect On
<VirtualHost *:80>
ServerName dashboard.example.com
DocumentRoot /usr/share/puppet-dashboard/public/
<Directory /usr/share/puppet-dashboard/public/>
Options None
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/dashboard.example.com_error.log
LogLevel warn
CustomLog /var/log/apache2/dashboard.example.com_access.log combined
ServerSignature On
</VirtualHost>
service httpd restart
Sans reverse-proxy Apache/Passenger, l'application écoute directement sur le port 3000 :
http://<hostname>:3000
Rapports
Importer des rapports existants (par défaut cherche dans /var/puppet/lib/reports) :
rake RAILS_ENV=production reports:import rake RAILS_ENV=production reports:import REPORT_DIR=/path/to/your/reports
Purger les rapports de plus de 3 mois :
rake RAILS_ENV=production reports:prune upto=3 unit=mon
Optimiser / sauvegarder / restaurer la base :
rake RAILS_ENV=production db:raw:optimize rake RAILS_ENV=production db:raw:dump rake RAILS_ENV=production FILE=/path/to/backup/file.sql db:raw:dump rake RAILS_ENV=production FILE=production.sql db:raw:restore
Voir aussi
- Puppet — page hub
- Puppet enterprise — console de remplacement côté distribution commerciale
- Foreman — ENC et outil de provisioning de remplacement, actif et maintenu
- Puppet client — installation de l'agent que ce dashboard classifie