config.pp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. # == Class: icinga2::server::config
  2. #
  3. # This class configures the server components for the Icinga 2 monitoring system.
  4. #
  5. # === Parameters
  6. #
  7. # Coming soon...
  8. #
  9. # === Examples
  10. #
  11. # Coming soon...
  12. #
  13. class icinga2::server::config inherits icinga2::server {
  14. include icinga2::params
  15. if $purge_unmanaged_object_files == true {
  16. $recurse_objects = true
  17. $purge_objects = true
  18. $force_purge = true
  19. }
  20. else {
  21. $recurse_objects = false
  22. $purge_objects = false
  23. $force_purge = true
  24. }
  25. #Directory resource for /etc/icinga2/:
  26. file { '/etc/icinga2/':
  27. ensure => directory,
  28. path => '/etc/icinga2/',
  29. owner => $etc_icinga2_owner,
  30. group => $etc_icinga2_group,
  31. mode => $etc_icinga2_mode,
  32. #require => Package[$icinga2::params::icinga2_server_packages],
  33. }
  34. #File resource for /etc/icinga2/icinga2.conf:
  35. file { '/etc/icinga2/icinga2.conf':
  36. ensure => file,
  37. path => '/etc/icinga2/icinga2.conf',
  38. owner => $etc_icinga2_icinga2_conf_owner,
  39. group => $etc_icinga2_icinga2_conf_group,
  40. mode => $etc_icinga2_icinga2_conf_mode,
  41. content => template('icinga2/icinga2.conf.erb'),
  42. }
  43. #Directory resource for /etc/icinga2/conf.d/:
  44. file { '/etc/icinga2/conf.d/':
  45. ensure => directory,
  46. path => '/etc/icinga2/conf.d/',
  47. owner => $etc_icinga2_confd_owner,
  48. group => $etc_icinga2_confd_group,
  49. mode => $etc_icinga2_confd_mode,
  50. }
  51. #Directory resource for /etc/icinga2/features-available/:
  52. file { '/etc/icinga2/features-available/':
  53. ensure => directory,
  54. path => '/etc/icinga2/features-available/',
  55. owner => $etc_icinga2_features_available_owner,
  56. group => $etc_icinga2_features_available_group,
  57. mode => $etc_icinga2_features_available_mode,
  58. }
  59. #Directory resource for /etc/icinga2/features-enabled/:
  60. file { '/etc/icinga2/features-enabled/':
  61. ensure => directory,
  62. path => '/etc/icinga2/features-enabled/',
  63. owner => $etc_icinga2_features_enabled_owner,
  64. group => $etc_icinga2_features_enabled_group,
  65. mode => $etc_icinga2_features_enabled_mode,
  66. }
  67. #Directory resource for /etc/icinga2/pki/:
  68. file { '/etc/icinga2/pki/':
  69. ensure => directory,
  70. path => '/etc/icinga2/pki/',
  71. owner => $etc_icinga2_pki_owner,
  72. group => $etc_icinga2_pki_group,
  73. mode => $etc_icinga2_pki_mode,
  74. }
  75. #Directory resource for /etc/icinga2/scripts/:
  76. file { '/etc/icinga2/scripts/':
  77. ensure => directory,
  78. path => '/etc/icinga2/scripts/',
  79. owner => $etc_icinga2_scripts_owner,
  80. group => $etc_icinga2_scripts_group,
  81. mode => $etc_icinga2_scripts_mode,
  82. }
  83. #Directory resource for /etc/icinga2/zones.d/:
  84. file { '/etc/icinga2/zones.d/':
  85. ensure => directory,
  86. path => '/etc/icinga2/zones.d/',
  87. owner => $etc_icinga2_zonesd_owner,
  88. group => $etc_icinga2_zonesd_group,
  89. mode => $etc_icinga2_zonesd_mode,
  90. }
  91. #File and directory resources for the object directories that can be used to hold different
  92. #types of configuration objects
  93. #Directory resource for /etc/icinga2/objects/:
  94. file { '/etc/icinga2/objects/':
  95. ensure => directory,
  96. path => '/etc/icinga2/objects/',
  97. owner => $etc_icinga2_obejcts_owner,
  98. group => $etc_icinga2_obejcts_group,
  99. mode => $etc_icinga2_obejcts_mode,
  100. recurse => $recurse_objects,
  101. purge => $purge_objects,
  102. force => $force_purge
  103. }
  104. #Directory resource for /etc/icinga2/objects/hosts/:
  105. file { '/etc/icinga2/objects/hosts/':
  106. ensure => directory,
  107. path => '/etc/icinga2/objects/hosts/',
  108. owner => $etc_icinga2_obejcts_sub_dir_owner,
  109. group => $etc_icinga2_obejcts_sub_dir_group,
  110. mode => $etc_icinga2_obejcts_sub_dir_mode,
  111. }
  112. #Directory resource for /etc/icinga2/objects/hostgroups/:
  113. file { '/etc/icinga2/objects/hostgroups/':
  114. ensure => directory,
  115. path => '/etc/icinga2/objects/hostgroups/',
  116. owner => $etc_icinga2_obejcts_sub_dir_owner,
  117. group => $etc_icinga2_obejcts_sub_dir_group,
  118. mode => $etc_icinga2_obejcts_sub_dir_mode,
  119. }
  120. #Directory resource for /etc/icinga2/objects/services/:
  121. file { '/etc/icinga2/objects/services/':
  122. ensure => directory,
  123. path => '/etc/icinga2/objects/services/',
  124. owner => $etc_icinga2_obejcts_sub_dir_owner,
  125. group => $etc_icinga2_obejcts_sub_dir_group,
  126. mode => $etc_icinga2_obejcts_sub_dir_mode,
  127. }
  128. #Directory resource for /etc/icinga2/objects/servicegroups/:
  129. file { '/etc/icinga2/objects/servicegroups/':
  130. ensure => directory,
  131. path => '/etc/icinga2/objects/servicegroups/',
  132. owner => $etc_icinga2_obejcts_sub_dir_owner,
  133. group => $etc_icinga2_obejcts_sub_dir_group,
  134. mode => $etc_icinga2_obejcts_sub_dir_mode,
  135. }
  136. #Directory resource for /etc/icinga2/objects/users/:
  137. file { '/etc/icinga2/objects/users/':
  138. ensure => directory,
  139. path => '/etc/icinga2/objects/users/',
  140. owner => $etc_icinga2_obejcts_sub_dir_owner,
  141. group => $etc_icinga2_obejcts_sub_dir_group,
  142. mode => $etc_icinga2_obejcts_sub_dir_mode,
  143. }
  144. #Directory resource for /etc/icinga2/objects/usergroups/:
  145. file { '/etc/icinga2/objects/usergroups/':
  146. ensure => directory,
  147. path => '/etc/icinga2/objects/usergroups/',
  148. owner => $etc_icinga2_obejcts_sub_dir_owner,
  149. group => $etc_icinga2_obejcts_sub_dir_group,
  150. mode => $etc_icinga2_obejcts_sub_dir_mode,
  151. }
  152. #Directory resource for /etc/icinga2/objects/checkcommands/:
  153. file { '/etc/icinga2/objects/checkcommands/':
  154. ensure => directory,
  155. path => '/etc/icinga2/objects/checkcommands/',
  156. owner => $etc_icinga2_obejcts_sub_dir_owner,
  157. group => $etc_icinga2_obejcts_sub_dir_group,
  158. mode => $etc_icinga2_obejcts_sub_dir_mode,
  159. }
  160. #Directory resource for /etc/icinga2/objects/notificationcommands/:
  161. file { '/etc/icinga2/objects/notificationcommands/':
  162. ensure => directory,
  163. path => '/etc/icinga2/objects/notificationcommands/',
  164. owner => $etc_icinga2_obejcts_sub_dir_owner,
  165. group => $etc_icinga2_obejcts_sub_dir_group,
  166. mode => $etc_icinga2_obejcts_sub_dir_mode,
  167. }
  168. #Directory resource for /etc/icinga2/objects/eventcommands/:
  169. file { '/etc/icinga2/objects/eventcommands/':
  170. ensure => directory,
  171. path => '/etc/icinga2/objects/eventcommands/',
  172. owner => $etc_icinga2_obejcts_sub_dir_owner,
  173. group => $etc_icinga2_obejcts_sub_dir_group,
  174. mode => $etc_icinga2_obejcts_sub_dir_mode,
  175. }
  176. #Directory resource for /etc/icinga2/objects/notifications/:
  177. file { '/etc/icinga2/objects/notifications/':
  178. ensure => directory,
  179. path => '/etc/icinga2/objects/notifications/',
  180. owner => $etc_icinga2_obejcts_sub_dir_owner,
  181. group => $etc_icinga2_obejcts_sub_dir_group,
  182. mode => $etc_icinga2_obejcts_sub_dir_mode,
  183. }
  184. #Directory resource for /etc/icinga2/objects/timeperiods/:
  185. file { '/etc/icinga2/objects/timeperiods/':
  186. ensure => directory,
  187. path => '/etc/icinga2/objects/timeperiods/',
  188. owner => $etc_icinga2_obejcts_sub_dir_owner,
  189. group => $etc_icinga2_obejcts_sub_dir_group,
  190. mode => $etc_icinga2_obejcts_sub_dir_mode,
  191. }
  192. #Directory resource for /etc/icinga2/objects/scheduleddowntimes/:
  193. file { '/etc/icinga2/objects/scheduleddowntimes/':
  194. ensure => directory,
  195. path => '/etc/icinga2/objects/scheduleddowntimes/',
  196. owner => $etc_icinga2_obejcts_sub_dir_owner,
  197. group => $etc_icinga2_obejcts_sub_dir_group,
  198. mode => $etc_icinga2_obejcts_sub_dir_mode,
  199. }
  200. #Directory resource for /etc/icinga2/objects/dependencies/:
  201. file { '/etc/icinga2/objects/dependencies/':
  202. ensure => directory,
  203. path => '/etc/icinga2/objects/dependencies/',
  204. owner => $etc_icinga2_obejcts_sub_dir_owner,
  205. group => $etc_icinga2_obejcts_sub_dir_group,
  206. mode => $etc_icinga2_obejcts_sub_dir_mode,
  207. }
  208. #Directory resource for /etc/icinga2/objects/perfdatawriters/:
  209. file { '/etc/icinga2/objects/perfdatawriters/':
  210. ensure => directory,
  211. path => '/etc/icinga2/objects/perfdatawriters/',
  212. owner => $etc_icinga2_obejcts_sub_dir_owner,
  213. group => $etc_icinga2_obejcts_sub_dir_group,
  214. mode => $etc_icinga2_obejcts_sub_dir_mode,
  215. }
  216. #Directory resource for /etc/icinga2/objects/graphitewriters/:
  217. file { '/etc/icinga2/objects/graphitewriters/':
  218. ensure => directory,
  219. path => '/etc/icinga2/objects/graphitewriters/',
  220. owner => $etc_icinga2_obejcts_sub_dir_owner,
  221. group => $etc_icinga2_obejcts_sub_dir_group,
  222. mode => $etc_icinga2_obejcts_sub_dir_mode,
  223. }
  224. #Directory resource for /etc/icinga2/objects/idomysqlconnections/:
  225. file { '/etc/icinga2/objects/idomysqlconnections/':
  226. ensure => directory,
  227. path => '/etc/icinga2/objects/idomysqlconnections/',
  228. owner => $etc_icinga2_obejcts_sub_dir_owner,
  229. group => $etc_icinga2_obejcts_sub_dir_group,
  230. mode => $etc_icinga2_obejcts_sub_dir_mode,
  231. }
  232. #Directory resource for /etc/icinga2/objects/idopgsqlconnections/:
  233. file { '/etc/icinga2/objects/idopgsqlconnections/':
  234. ensure => directory,
  235. path => '/etc/icinga2/objects/idopgsqlconnections/',
  236. owner => $etc_icinga2_obejcts_sub_dir_owner,
  237. group => $etc_icinga2_obejcts_sub_dir_group,
  238. mode => $etc_icinga2_obejcts_sub_dir_mode,
  239. }
  240. #Directory resource for /etc/icinga2/objects/livestatuslisteners/:
  241. file { '/etc/icinga2/objects/livestatuslisteners/':
  242. ensure => directory,
  243. path => '/etc/icinga2/objects/livestatuslisteners/',
  244. owner => $etc_icinga2_obejcts_sub_dir_owner,
  245. group => $etc_icinga2_obejcts_sub_dir_group,
  246. mode => $etc_icinga2_obejcts_sub_dir_mode,
  247. }
  248. #Directory resource for /etc/icinga2/objects/statusdatawriters/:
  249. file { '/etc/icinga2/objects/statusdatawriters/':
  250. ensure => directory,
  251. path => '/etc/icinga2/objects/statusdatawriters/',
  252. owner => $etc_icinga2_obejcts_sub_dir_owner,
  253. group => $etc_icinga2_obejcts_sub_dir_group,
  254. mode => $etc_icinga2_obejcts_sub_dir_mode,
  255. }
  256. #Directory resource for /etc/icinga2/objects/externalcommandlisteners/:
  257. file { '/etc/icinga2/objects/externalcommandlisteners/':
  258. ensure => directory,
  259. path => '/etc/icinga2/objects/externalcommandlisteners/',
  260. owner => $etc_icinga2_obejcts_sub_dir_owner,
  261. group => $etc_icinga2_obejcts_sub_dir_group,
  262. mode => $etc_icinga2_obejcts_sub_dir_mode,
  263. }
  264. #Directory resource for /etc/icinga2/objects/compatloggers/:
  265. file { '/etc/icinga2/objects/compatloggers/':
  266. ensure => directory,
  267. path => '/etc/icinga2/objects/compatloggers/',
  268. owner => $etc_icinga2_obejcts_sub_dir_owner,
  269. group => $etc_icinga2_obejcts_sub_dir_group,
  270. mode => $etc_icinga2_obejcts_sub_dir_mode,
  271. }
  272. #Directory resource for /etc/icinga2/objects/checkresultreaders/:
  273. file { '/etc/icinga2/objects/checkresultreaders/':
  274. ensure => directory,
  275. path => '/etc/icinga2/objects/checkresultreaders/',
  276. owner => $etc_icinga2_obejcts_sub_dir_owner,
  277. group => $etc_icinga2_obejcts_sub_dir_group,
  278. mode => $etc_icinga2_obejcts_sub_dir_mode,
  279. }
  280. #Directory resource for /etc/icinga2/objects/checkercomponents/:
  281. file { '/etc/icinga2/objects/checkercomponents/':
  282. ensure => directory,
  283. path => '/etc/icinga2/objects/checkercomponents/',
  284. owner => $etc_icinga2_obejcts_sub_dir_owner,
  285. group => $etc_icinga2_obejcts_sub_dir_group,
  286. mode => $etc_icinga2_obejcts_sub_dir_mode,
  287. }
  288. #Directory resource for /etc/icinga2/objects/notificationcomponents/:
  289. file { '/etc/icinga2/objects/notificationcomponents/':
  290. ensure => directory,
  291. path => '/etc/icinga2/objects/notificationcomponents/',
  292. owner => $etc_icinga2_obejcts_sub_dir_owner,
  293. group => $etc_icinga2_obejcts_sub_dir_group,
  294. mode => $etc_icinga2_obejcts_sub_dir_mode,
  295. }
  296. #Directory resource for /etc/icinga2/objects/fileloggers/:
  297. file { '/etc/icinga2/objects/fileloggers/':
  298. ensure => directory,
  299. path => '/etc/icinga2/objects/fileloggers/',
  300. owner => $etc_icinga2_obejcts_sub_dir_owner,
  301. group => $etc_icinga2_obejcts_sub_dir_group,
  302. mode => $etc_icinga2_obejcts_sub_dir_mode,
  303. }
  304. #Directory resource for /etc/icinga2/objects/syslogloggers/:
  305. file { '/etc/icinga2/objects/syslogloggers/':
  306. ensure => directory,
  307. path => '/etc/icinga2/objects/syslogloggers/',
  308. owner => $etc_icinga2_obejcts_sub_dir_owner,
  309. group => $etc_icinga2_obejcts_sub_dir_group,
  310. mode => $etc_icinga2_obejcts_sub_dir_mode,
  311. }
  312. #Directory resource for /etc/icinga2/objects/icingastatuswriters/:
  313. file { '/etc/icinga2/objects/icingastatuswriters/':
  314. ensure => directory,
  315. path => '/etc/icinga2/objects/icingastatuswriters/',
  316. owner => $etc_icinga2_obejcts_sub_dir_owner,
  317. group => $etc_icinga2_obejcts_sub_dir_group,
  318. mode => $etc_icinga2_obejcts_sub_dir_mode,
  319. }
  320. #Directory resource for /etc/icinga2/objects/apilisteners/:
  321. file { '/etc/icinga2/objects/apilisteners/':
  322. ensure => directory,
  323. path => '/etc/icinga2/objects/apilisteners/',
  324. owner => $etc_icinga2_obejcts_sub_dir_owner,
  325. group => $etc_icinga2_obejcts_sub_dir_group,
  326. mode => $etc_icinga2_obejcts_sub_dir_mode,
  327. }
  328. #Directory resource for /etc/icinga2/objects/endpoints/:
  329. file { '/etc/icinga2/objects/endpoints/':
  330. ensure => directory,
  331. path => '/etc/icinga2/objects/endpoints/',
  332. owner => $etc_icinga2_obejcts_sub_dir_owner,
  333. group => $etc_icinga2_obejcts_sub_dir_group,
  334. mode => $etc_icinga2_obejcts_sub_dir_mode,
  335. }
  336. #Directory resource for /etc/icinga2/objects/zones/:
  337. file { '/etc/icinga2/objects/zones/':
  338. ensure => directory,
  339. path => '/etc/icinga2/objects/zones/',
  340. owner => $etc_icinga2_obejcts_sub_dir_owner,
  341. group => $etc_icinga2_obejcts_sub_dir_group,
  342. mode => $etc_icinga2_obejcts_sub_dir_mode,
  343. }
  344. #Directory resource for /etc/icinga2/objects/applys/
  345. #The files in this folder will be objects like
  346. #'apply something blah to Host...'
  347. #See the following link for more info:
  348. # http://docs.icinga.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/configuring-icinga2#apply
  349. file { '/etc/icinga2/objects/applys/':
  350. ensure => directory,
  351. path => '/etc/icinga2/objects/applys/',
  352. owner => $etc_icinga2_obejcts_sub_dir_owner,
  353. group => $etc_icinga2_obejcts_sub_dir_group,
  354. mode => $etc_icinga2_obejcts_sub_dir_mode,
  355. }
  356. #Directory resource for /etc/icinga2/objects/templates/:
  357. file { '/etc/icinga2/objects/templates/':
  358. ensure => directory,
  359. path => '/etc/icinga2/objects/templates/',
  360. owner => $etc_icinga2_obejcts_sub_dir_owner,
  361. group => $etc_icinga2_obejcts_sub_dir_group,
  362. mode => $etc_icinga2_obejcts_sub_dir_mode,
  363. }
  364. #Directory resource for /etc/icinga2/objects/constants/:
  365. file { '/etc/icinga2/objects/constants/':
  366. ensure => directory,
  367. path => '/etc/icinga2/objects/constants/',
  368. owner => $etc_icinga2_obejcts_sub_dir_owner,
  369. group => $etc_icinga2_obejcts_sub_dir_group,
  370. mode => $etc_icinga2_obejcts_sub_dir_mode,
  371. }
  372. }