Puppetclass¶
Dans ce howto, nous allons décrire comment déployer les agents fusioninventory via Puppet. Nous partons du principe que vous avez Puppet, glpi et fusioninventory d'installé.
Les tests ont été réalisés sur une Debian Squeeze (6). Et la classe Puppet ci-dessous concerne les systèmes Debian.
- Les classes Puppet sont dans:
/etc/puppet/manifests/classes
- La configuration des nodes dans:
/etc/puppet/manifests/nodes
- Les fichiers de configurations à déployer via Puppet sont dans:
/etc/puppet/manifests/templates
Classe Puppet pour fusioninventory à placer dans /etc/puppet/manifests/fusioninventory-agent.pp::
class fusioninventory-agent {
package { 'fusioninventory-agent':
ensure => latest,
provider => aptitude
}
file { '/etc/fusioninventory/agent.cfg':
backup => true,
mode => '0644',
owner => 'root',
group => 'root',
subscribe => Package[fusioninventory-agent],
source => 'puppet:///files/etc/fusioninventory/agent.cfg'
}
file { '/etc/default/fusioninventory-agent':
backup => true,
mode => '0644',
owner => 'root',
group => 'root',
subscribe => Package[fusioninventory-agent],
source => 'puppet:///files/etc/default/fusioninventory-agent'
}
service { 'fusioninventory-agent':
ensure => running,
require => Package[fusioninventory-agent],
}
## MODE CRON
# exec { '/etc/cron.daily/fusioninventory-agent':
# path => '/usr/bin:/usr/sbin:/bin',
# subscribe => File['/etc/fusioninventory/agent.cfg'],
# refreshonly => true
# }
}
Fichier de configuration à placer dans /etc/puppet/manifests/templates/etc/fusioninventory/agent.cfg::
FUSIONINVENTORY Server server=http://ip_de_votre_server/glpi/plugins/fusioninventory/ # Store inventory in a local directory #local=/tmp
Création du fichier fusioninventory-agent dans /etc/puppet/manifest/templates/etc/default/fusioninventory-agent::
# FusionInventory Agent Options # # MODE can be either "daemon" or "cron" MODE=daemon # You need to set the server in /etc/fusioninventory/agent.cfg
Pour appliquer cette classes à un node il vous faut rajouter la ligne suivante dans un des fichiers correspondant aux nodes::
include fusioninventory-agent
Exemple en éditant le fichier squeeze-server.pp de l'auteur du tutoriel::
node monitoring-central {
@@nagios_host { $fqdn:
display_name => $fqdn,
}
include squeeze-server-prod
include apache2
include fusioninventory-agent
}
Pour appliquer cette modification sur la machine concernée, il vous faudra faire un puppetd --test sur cette dernière.