Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.51 KB | None | 0 0
  1. class nagios::base {
  2. # include the variables
  3. include nagios::defaults::vars
  4.  
  5. package { 'nagios':
  6. alias => 'nagios',
  7. ensure => present,
  8. }
  9.  
  10. service { 'nagios':
  11. ensure => running,
  12. enable => true,
  13. #hasstatus => true, #fixme!
  14. require => Package['nagios'],
  15. }
  16.  
  17. # this file should contain all the nagios_puppet-paths:
  18. file { 'nagios_main_cfg':
  19. path => "${nagios::defaults::vars::int_nagios_cfgdir}/nagios.cfg",
  20. source => [ "puppet:///modules/site-nagios/configs/${fqdn}/nagios.cfg",
  21. "puppet:///modules/site-nagios/configs/${operatingsystem}/nagios.cfg",
  22. "puppet:///modules/site-nagios/configs/nagios.cfg",
  23. "puppet:///modules/nagios/configs/${operatingsystem}/nagios.cfg",
  24. "puppet:///modules/nagios/configs/nagios.cfg" ],
  25. notify => Service['nagios'],
  26. mode => 0644, owner => root, group => root;
  27. }
  28.  
  29. file { 'nagios_cgi_cfg':
  30. path => "${nagios::defaults::vars::int_nagios_cfgdir}/cgi.cfg",
  31. source => [ "puppet:///modules/site-nagios/configs/${fqdn}/cgi.cfg",
  32. "puppet:///modules/site-nagios/configs/${operatingsystem}/cgi.cfg",
  33. "puppet:///modules/site-nagios/configs/cgi.cfg",
  34. "puppet:///modules/nagios/configs/${operatingsystem}/cgi.cfg",
  35. "puppet:///modules/nagios/configs/cgi.cfg" ],
  36. mode => '0644', owner => 'root', group => 0,
  37. #notify => Service['httpd'],
  38. }
  39.  
  40. file { 'nagios_htpasswd':
  41. path => "${nagios::defaults::vars::int_nagios_cfgdir}/htpasswd.users",
  42. source => [ "puppet:///modules/site-nagios/htpasswd.users",
  43. "puppet:///modules/nagios/htpasswd.users" ],
  44. mode => 0640, owner => root, group => apache;
  45. }
  46.  
  47. file { 'nagios_private':
  48. path => "${nagios::defaults::vars::int_nagios_cfgdir}/private/",
  49. source => "puppet:///modules/common/empty",
  50. ensure => directory,
  51. purge => true,
  52. recurse => true,
  53. ignore => ['.svn'],
  54. notify => Service['nagios'],
  55. mode => '0750', owner => root, group => nagios;
  56. }
  57.  
  58. file { 'nagios_private_resource_cfg':
  59. path => "${nagios::defaults::vars::int_nagios_cfgdir}/private/resource.cfg",
  60. source => [ "puppet:///modules/site-nagios/configs/${operatingsystem}/private/resource.cfg.${architecture}",
  61. "puppet:///modules/nagios/configs/${operatingsystem}/private/resource.cfg.${architecture}" ],
  62. notify => Service['nagios'],
  63. owner => root, group => nagios, mode => '0640';
  64. }
  65.  
  66. file { 'nagios_confd':
  67. path => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/",
  68. source => "puppet:///modules/common/empty",
  69. ensure => directory,
  70. purge => true,
  71. recurse => true,
  72. ignore => ['.svn'],
  73. notify => Service['nagios'],
  74. mode => '0750', owner => root, group => nagios;
  75. }
  76. Package <<| tag == 'nagios::plugin::deploy::package' |>>
  77. File <<| tag == 'nagios::plugin::deploy::file' |>>
  78. Nagios_command <<||>>
  79. Nagios_contactgroup <<||>>
  80. Nagios_contact <<||>>
  81. Nagios_hostdependency <<||>>
  82. Nagios_hostescalation <<||>>
  83. Nagios_hostextinfo <<||>>
  84. Nagios_hostgroup <<||>>
  85. Nagios_host <<| |>>
  86. Nagios_servicedependency <<||>>
  87. Nagios_serviceescalation <<||>>
  88. Nagios_servicegroup <<||>>
  89. Nagios_serviceextinfo <<||>>
  90. Nagios_service <<| |>>
  91. Nagios_timeperiod <<||>>
  92. File <<| tag == 'nagios_plugin' |>>
  93.  
  94. resources { "nagios_host":
  95. purge => true,
  96. }
  97.  
  98. Nagios_command <||> {
  99. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_command.cfg",
  100. require => File['nagios_confd'],
  101. notify => Service['nagios'],
  102. }
  103. Nagios_contact <||> {
  104. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_contact.cfg",
  105. require => File['nagios_confd'],
  106. notify => Service['nagios'],
  107. }
  108. Nagios_contactgroup <||> {
  109. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_contactgroup.cfg",
  110. require => File['nagios_confd'],
  111. notify => Service['nagios'],
  112. }
  113. Nagios_host <||> {
  114. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_host.cfg",
  115. require => File['nagios_confd'],
  116. notify => Service['nagios'],
  117. }
  118. Nagios_hostdependency <||> {
  119. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostdependency.cfg",
  120. notify => Service['nagios'],
  121. }
  122. Nagios_hostescalation <||> {
  123. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostescalation.cfg",
  124. notify => Service['nagios'],
  125. }
  126. Nagios_hostextinfo <||> {
  127. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostextinfo.cfg",
  128. require => File['nagios_confd'],
  129. notify => Service['nagios'],
  130. }
  131. Nagios_hostgroup <||> {
  132. #target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostgroup.cfg",
  133. require => File['nagios_confd'],
  134. notify => Service['nagios'],
  135. }
  136. Nagios_service <||> {
  137. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_service.cfg",
  138. require => File['nagios_confd'],
  139. notify => Service['nagios'],
  140. }
  141. Nagios_servicegroup <||> {
  142. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_servicegroup.cfg",
  143. notify => Service['nagios'],
  144. }
  145. Nagios_servicedependency <||> {
  146. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_servicedependency.cfg",
  147. require => File['nagios_confd'],
  148. notify => Service['nagios'],
  149. }
  150. Nagios_serviceescalation <||> {
  151. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_serviceescalation.cfg",
  152. require => File['nagios_confd'],
  153. notify => Service['nagios'],
  154. }
  155. Nagios_serviceextinfo <||> {
  156. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_serviceextinfo.cfg",
  157. require => File['nagios_confd'],
  158. notify => Service['nagios'],
  159. }
  160. Nagios_timeperiod <||> {
  161. target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_timeperiod.cfg",
  162. require => File['nagios_confd'],
  163. notify => Service['nagios'],
  164. }
  165.  
  166. file{[ "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_command.cfg",
  167. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_contact.cfg",
  168. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_contactgroup.cfg",
  169. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_host.cfg",
  170. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostdependency.cfg",
  171. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostescalation.cfg",
  172. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostextinfo.cfg",
  173. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostgroup.cfg",
  174. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_hostgroupescalation.cfg",
  175. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_service.cfg",
  176. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_servicedependency.cfg",
  177. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_serviceescalation.cfg",
  178. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_serviceextinfo.cfg",
  179. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_servicegroup.cfg",
  180. "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_timeperiod.cfg" ]:
  181. ensure => file,
  182. replace => false,
  183. notify => Service['nagios'],
  184. mode => 0644, owner => root, group => 0;
  185. }
  186.  
  187. # manage nagios cfg files
  188. # must be defined after exported resource overrides and cfg file defs
  189. file { 'nagios_cfgdir':
  190. path => "${nagios::defaults::vars::int_nagios_cfgdir}/",
  191. source => "puppet:///modules/common/empty",
  192. ensure => directory,
  193. recurse => true,
  194. ignore => ['.svn'],
  195. purge => true,
  196. notify => Service['nagios'],
  197. mode => 0755, owner => root, group => root;
  198. }
  199.  
  200. if $use_munin {
  201. include nagios::munin
  202. }
  203.  
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement