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.