Install Icinga server with puppet over foreman?


After a least successful try to install Icinga directly on ubuntu I rethought my requierements and decided to do it the managed way with puppet. I have now a running puppet master and I wanted to install an Icinga2 server including Icingaweb2 and director over foreman. I created an external Postgresql server and installed the IDO feature with the manual and also created an icinga database plus user. I also installed these modules on the puppet master server:

I then added the host to puppet and assigned these Puppet classes and the overrid the values below:

The ticket_salt is an incomplete task (and I don’t have a clue at the moment how to manage this). Beside that Icingaweb2 is accessible but it is not configured until now:

With these settings, puppet tells me this on the host:

root@raspberrypi:/home/pi# puppet agent -t
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Warning: Found multiple default providers for service: init, systemd; using init
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Missing title. The title expression resulted in undef (file: /etc/puppetlabs/code/environments/production/modules/icinga/manifests/ido.pp, line: 83, column: 15) on node
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

This error message confuses me. I’ve looked into the ido.pp. At line 83 this is writte

    package { $ido_package_name:
      ensure => installed,
      before => Class["icinga2::feature::ido${db_type}"],

So it seems that $ido_package_name is missing.

Some lines before this is stated:

    $ido_package_name = $db_type ? {
      'mysql' => $::icinga2::globals::ido_mysql_package_name,
      'pgsql' => $::icinga2::globals::ido_pgsql_package_name,

So I thought that db_type in icinga::ido is the problem. But I defined that in the parameters.
How should I continue? I’m a little bit lost at the moment…


So does anybody know how to do that? Is there any guide for this? Is unclear to me which classes I should include and how they should be configured. I think that’s Icinga-knowledge (the less puppet knowledge).

Can anybody perhaps share hers/his configuration?

Thanks, Christoph

Nobody? Is there a better place to ask?
Normally I would say no. But this forum seems to be not very responsive :expressionless: