Check_mk & Puppet
If you are using puppet and checkmk then why not get puppet to install the checkmk server - in this case omd - and also get puppet to install check_mk agents and update the server with the new agent details.
I have created two recipes. One for creating omd sites and the second one for check_mk.
https://github.com/Firebladee/Puppet/blob/master/modules/omd/manifests/site/add.pp
https://github.com/Firebladee/Puppet/tree/master/modules/check_mk
Lets look at the easy one first.
The omd recipe will create the omd sites that you need. In nodes.pp add
$omd_site = "DEV1"
include omd
include omd::site::add
For Multiply sites then :
$omd_site = ["DEV1", "site2"]
include omd
include omd::site::add
One day I will change that to a class but for now it will do.
check_mk
This recipe will install the checkmk agent on target machines and will update the checkmk server with the new agent.
TO add a new agent.
class { "check_mk":
install => "agent",
omd_site => "ALL",
}
To add parents
class { "check_mk":
install => "agent",
omd_site => "ALL",
parents => "172.18.145.11"
}
To add tags
class { "check_mk":
install => "agent",
omd_site => ["ALL", "DEV2"],
check_mk_tags => ["SSH", "Management"]
}
For host alias
class { "check_mk":
install => "agent",
omd_site => "ALL",
check_mk_alias => "This server does nothing"
}
Server
To add the server
class { "check_mk":
install => "server",
omd_site => ["DEV1, "ALL"]
}
Working examples:
Server
node "omd.test.com" inherits default {
$yum_extrarepo = "puppetlabs"
$omd_site = ["DEV5", "DEV1", "DEV2", "DEV3", "DEV4", "ALL"]
include yum
include omd
include omd::site::add
include sudo
include ntp
class { "check_mk":
install => "server",
omd_site => ["DEV5", "DEV1", "DEV2", "DEV3", "DEV4", "ALL"],
parents => "172.18.145.11",
check_mk_tags => "Management"
}
}
Agents
node "puppet.test.com" inherits default {
$yum_extrarepo = "puppetlabs"
include yum
class { "check_mk":
install => "agent",
omd_site => "ALL",
parents => "172.18.145.11",
check_mk_tags => "Management"
}
include ntp
}
node "app01.something.com" {
$yum_extrarepo = ["puppetlabs", "spacewalk-client"]
include yum
class { "check_mk":
install => "agent",
omd_site => ["ALL", "DEV1"],
check_mk_tags => "DEV1",
}
include hosts::allow
include ntp
include puppet
}