cloud-mu 1.9.0.pre.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) hide show
  1. checksums.yaml +7 -0
  2. data/Berksfile +56 -0
  3. data/Berksfile.lock +250 -0
  4. data/Jenkinsfile +184 -0
  5. data/LICENSE.md +37 -0
  6. data/README.md +26 -0
  7. data/bin/mu-aws-setup +376 -0
  8. data/bin/mu-cleanup +68 -0
  9. data/bin/mu-configure +1133 -0
  10. data/bin/mu-deploy +166 -0
  11. data/bin/mu-firewall-allow-clients +30 -0
  12. data/bin/mu-gcp-setup +200 -0
  13. data/bin/mu-gen-docs +34 -0
  14. data/bin/mu-gen-env +42 -0
  15. data/bin/mu-load-config.rb +158 -0
  16. data/bin/mu-node-manage +683 -0
  17. data/bin/mu-self-update +228 -0
  18. data/bin/mu-ssh +23 -0
  19. data/bin/mu-tunnel-nagios +144 -0
  20. data/bin/mu-upload-chef-artifacts +757 -0
  21. data/bin/mu-user-manage +275 -0
  22. data/cookbooks/awscli/LICENSE +37 -0
  23. data/cookbooks/awscli/README.md +58 -0
  24. data/cookbooks/awscli/attributes/default.rb +1 -0
  25. data/cookbooks/awscli/libraries/instance_metadata.rb +21 -0
  26. data/cookbooks/awscli/metadata.rb +20 -0
  27. data/cookbooks/awscli/recipes/default.rb +56 -0
  28. data/cookbooks/awscli/templates/default/config.erb +18 -0
  29. data/cookbooks/mu-activedirectory/CHANGELOG.md +13 -0
  30. data/cookbooks/mu-activedirectory/LICENSE +37 -0
  31. data/cookbooks/mu-activedirectory/README.md +6 -0
  32. data/cookbooks/mu-activedirectory/attributes/default.rb +98 -0
  33. data/cookbooks/mu-activedirectory/files/default/password-auth +32 -0
  34. data/cookbooks/mu-activedirectory/files/default/sshd_pol.pp +0 -0
  35. data/cookbooks/mu-activedirectory/files/default/sshd_pol.te +32 -0
  36. data/cookbooks/mu-activedirectory/files/default/syslogd_oddjobd.pp +0 -0
  37. data/cookbooks/mu-activedirectory/files/default/syslogd_oddjobd.te +10 -0
  38. data/cookbooks/mu-activedirectory/files/default/system-auth +34 -0
  39. data/cookbooks/mu-activedirectory/files/default/winbindpol.pp +0 -0
  40. data/cookbooks/mu-activedirectory/files/default/winbindpol.te +37 -0
  41. data/cookbooks/mu-activedirectory/libraries/config.rb +106 -0
  42. data/cookbooks/mu-activedirectory/libraries/helper.rb +86 -0
  43. data/cookbooks/mu-activedirectory/metadata.rb +17 -0
  44. data/cookbooks/mu-activedirectory/providers/domain.rb +152 -0
  45. data/cookbooks/mu-activedirectory/providers/domain_controller.rb +89 -0
  46. data/cookbooks/mu-activedirectory/providers/domain_node.rb +275 -0
  47. data/cookbooks/mu-activedirectory/recipes/default.rb +8 -0
  48. data/cookbooks/mu-activedirectory/recipes/domain-controller.rb +44 -0
  49. data/cookbooks/mu-activedirectory/recipes/domain-node.rb +50 -0
  50. data/cookbooks/mu-activedirectory/recipes/domain.rb +43 -0
  51. data/cookbooks/mu-activedirectory/recipes/sssd.rb +185 -0
  52. data/cookbooks/mu-activedirectory/resources/domain.rb +25 -0
  53. data/cookbooks/mu-activedirectory/resources/domain_controller.rb +25 -0
  54. data/cookbooks/mu-activedirectory/resources/domain_node.rb +20 -0
  55. data/cookbooks/mu-activedirectory/templates/default/dhclient-eth0.conf.erb +4 -0
  56. data/cookbooks/mu-activedirectory/templates/default/interface +0 -0
  57. data/cookbooks/mu-activedirectory/templates/default/krb5.conf.erb +23 -0
  58. data/cookbooks/mu-activedirectory/templates/default/ntp.conf.erb +56 -0
  59. data/cookbooks/mu-activedirectory/templates/default/smb.conf.erb +33 -0
  60. data/cookbooks/mu-activedirectory/templates/default/sssd.conf.erb +60 -0
  61. data/cookbooks/mu-activedirectory/templates/windows/Backup.xml.erb +20 -0
  62. data/cookbooks/mu-activedirectory/templates/windows/bkupInfo.xml.erb +1 -0
  63. data/cookbooks/mu-activedirectory/templates/windows/gpreprt.xml.erb +198 -0
  64. data/cookbooks/mu-activedirectory/templates/windows/gptmpl.inf.erb +12 -0
  65. data/cookbooks/mu-activedirectory/templates/windows/manifest.xml.erb +1 -0
  66. data/cookbooks/mu-firewall/CHANGELOG.md +11 -0
  67. data/cookbooks/mu-firewall/LICENSE +37 -0
  68. data/cookbooks/mu-firewall/README.md +5 -0
  69. data/cookbooks/mu-firewall/attributes/default.rb +3 -0
  70. data/cookbooks/mu-firewall/metadata.rb +16 -0
  71. data/cookbooks/mu-firewall/recipes/default.rb +10 -0
  72. data/cookbooks/mu-glusterfs/CHANGELOG.md +13 -0
  73. data/cookbooks/mu-glusterfs/LICENSE +37 -0
  74. data/cookbooks/mu-glusterfs/README.md +5 -0
  75. data/cookbooks/mu-glusterfs/attributes/default.rb +34 -0
  76. data/cookbooks/mu-glusterfs/metadata.rb +17 -0
  77. data/cookbooks/mu-glusterfs/recipes/client.rb +62 -0
  78. data/cookbooks/mu-glusterfs/recipes/default.rb +16 -0
  79. data/cookbooks/mu-glusterfs/recipes/samba.rb +57 -0
  80. data/cookbooks/mu-glusterfs/recipes/server.rb +200 -0
  81. data/cookbooks/mu-glusterfs/templates/default/mu-gluster-client.erb +71 -0
  82. data/cookbooks/mu-glusterfs/templates/default/smb.conf.erb +14 -0
  83. data/cookbooks/mu-jenkins/CHANGELOG.md +13 -0
  84. data/cookbooks/mu-jenkins/LICENSE +37 -0
  85. data/cookbooks/mu-jenkins/README.md +105 -0
  86. data/cookbooks/mu-jenkins/attributes/default.rb +42 -0
  87. data/cookbooks/mu-jenkins/files/default/cleanup_deploy_config.xml +73 -0
  88. data/cookbooks/mu-jenkins/files/default/deploy_config.xml +44 -0
  89. data/cookbooks/mu-jenkins/metadata.rb +21 -0
  90. data/cookbooks/mu-jenkins/recipes/default.rb +195 -0
  91. data/cookbooks/mu-jenkins/recipes/node-ssh-config.rb +54 -0
  92. data/cookbooks/mu-jenkins/recipes/public_key.rb +24 -0
  93. data/cookbooks/mu-jenkins/templates/default/example_job.config.xml.erb +24 -0
  94. data/cookbooks/mu-jenkins/templates/default/org.jvnet.hudson.plugins.SSHBuildWrapper.xml.erb +14 -0
  95. data/cookbooks/mu-jenkins/templates/default/ssh_config.erb +6 -0
  96. data/cookbooks/mu-master/CHANGELOG.md +13 -0
  97. data/cookbooks/mu-master/LICENSE +37 -0
  98. data/cookbooks/mu-master/README.md +6 -0
  99. data/cookbooks/mu-master/attributes/default.rb +95 -0
  100. data/cookbooks/mu-master/files/default/0-mu-log-server.conf +19 -0
  101. data/cookbooks/mu-master/files/default/addRSA.ldif +8 -0
  102. data/cookbooks/mu-master/files/default/check_mem.pl +197 -0
  103. data/cookbooks/mu-master/files/default/cloudamatic.png +0 -0
  104. data/cookbooks/mu-master/files/default/dirsrv_admin.pp +0 -0
  105. data/cookbooks/mu-master/files/default/dirsrv_admin.te +13 -0
  106. data/cookbooks/mu-master/files/default/nagios_selinux.pp +0 -0
  107. data/cookbooks/mu-master/files/default/nagios_selinux.te +51 -0
  108. data/cookbooks/mu-master/files/default/nagios_selinux_7.pp +0 -0
  109. data/cookbooks/mu-master/files/default/nagios_selinux_7.te +17 -0
  110. data/cookbooks/mu-master/files/default/pam_sshd +18 -0
  111. data/cookbooks/mu-master/files/default/ssl_enable.ldif +18 -0
  112. data/cookbooks/mu-master/files/default/syslogd_oddjobd.pp +0 -0
  113. data/cookbooks/mu-master/files/default/syslogd_oddjobd.te +10 -0
  114. data/cookbooks/mu-master/files/default/vimrc +19 -0
  115. data/cookbooks/mu-master/libraries/mu.rb +29 -0
  116. data/cookbooks/mu-master/metadata.rb +30 -0
  117. data/cookbooks/mu-master/providers/user.rb +41 -0
  118. data/cookbooks/mu-master/recipes/389ds.rb +164 -0
  119. data/cookbooks/mu-master/recipes/basepackages.rb +58 -0
  120. data/cookbooks/mu-master/recipes/caching_nameserver.rb +37 -0
  121. data/cookbooks/mu-master/recipes/default.rb +451 -0
  122. data/cookbooks/mu-master/recipes/eks-kubectl.rb +41 -0
  123. data/cookbooks/mu-master/recipes/firewall-holes.rb +70 -0
  124. data/cookbooks/mu-master/recipes/init.rb +542 -0
  125. data/cookbooks/mu-master/recipes/ssl-certs.rb +109 -0
  126. data/cookbooks/mu-master/recipes/sssd.rb +89 -0
  127. data/cookbooks/mu-master/recipes/update_nagios_only.rb +242 -0
  128. data/cookbooks/mu-master/recipes/vault.rb +111 -0
  129. data/cookbooks/mu-master/resources/user.rb +19 -0
  130. data/cookbooks/mu-master/templates/default/389-directory-setup.inf.erb +28 -0
  131. data/cookbooks/mu-master/templates/default/chef-server.rb.erb +18 -0
  132. data/cookbooks/mu-master/templates/default/dhclient-eth0.conf.erb +9 -0
  133. data/cookbooks/mu-master/templates/default/mu-momma-cat.erb +149 -0
  134. data/cookbooks/mu-master/templates/default/mu.rc.erb +9 -0
  135. data/cookbooks/mu-master/templates/default/openssl.cnf.erb +354 -0
  136. data/cookbooks/mu-master/templates/default/sssd.conf.erb +44 -0
  137. data/cookbooks/mu-master/templates/default/web_app.conf.erb +90 -0
  138. data/cookbooks/mu-mongo/CHANGELOG.md +13 -0
  139. data/cookbooks/mu-mongo/LICENSE +37 -0
  140. data/cookbooks/mu-mongo/README.md +5 -0
  141. data/cookbooks/mu-mongo/attributes/default.rb +22 -0
  142. data/cookbooks/mu-mongo/files/default/keyfile +16 -0
  143. data/cookbooks/mu-mongo/files/default/remove_nodes.js +5 -0
  144. data/cookbooks/mu-mongo/metadata.rb +17 -0
  145. data/cookbooks/mu-mongo/recipes/default.rb +149 -0
  146. data/cookbooks/mu-mongo/recipes/yum-update-rule.rb +18 -0
  147. data/cookbooks/mu-mongo/templates/default/mongo_create_openfema_db.js.erb +2 -0
  148. data/cookbooks/mu-mongo/templates/default/mongo_init.js.erb +1 -0
  149. data/cookbooks/mu-mongo/templates/default/mongo_logrotate.erb +14 -0
  150. data/cookbooks/mu-mongo/templates/default/mongo_replset_addnodes.js.erb +6 -0
  151. data/cookbooks/mu-mongo/templates/default/replset_init.js.erb +2 -0
  152. data/cookbooks/mu-openvpn/CHANGELOG.md +13 -0
  153. data/cookbooks/mu-openvpn/LICENSE +37 -0
  154. data/cookbooks/mu-openvpn/README.md +6 -0
  155. data/cookbooks/mu-openvpn/attributes/default.rb +119 -0
  156. data/cookbooks/mu-openvpn/metadata.rb +18 -0
  157. data/cookbooks/mu-openvpn/recipes/default.rb +108 -0
  158. data/cookbooks/mu-openvpn/templates/default/users.json.erb +42 -0
  159. data/cookbooks/mu-php54/CHANGELOG.md +12 -0
  160. data/cookbooks/mu-php54/LICENSE +37 -0
  161. data/cookbooks/mu-php54/README.md +0 -0
  162. data/cookbooks/mu-php54/files/centos/php.ini +1802 -0
  163. data/cookbooks/mu-php54/files/ubuntu/php.ini +1870 -0
  164. data/cookbooks/mu-php54/metadata.rb +21 -0
  165. data/cookbooks/mu-php54/recipes/default.rb +97 -0
  166. data/cookbooks/mu-splunk/CHANGELOG.md +37 -0
  167. data/cookbooks/mu-splunk/LICENSE +37 -0
  168. data/cookbooks/mu-splunk/README.md +451 -0
  169. data/cookbooks/mu-splunk/attributes/default.rb +95 -0
  170. data/cookbooks/mu-splunk/attributes/upgrade.rb +49 -0
  171. data/cookbooks/mu-splunk/definitions/splunk_installer.rb +103 -0
  172. data/cookbooks/mu-splunk/files/default/splunk-nocheck +10 -0
  173. data/cookbooks/mu-splunk/libraries/helpers.rb +72 -0
  174. data/cookbooks/mu-splunk/libraries/splunk_app_provider.rb +156 -0
  175. data/cookbooks/mu-splunk/libraries/splunk_app_resource.rb +43 -0
  176. data/cookbooks/mu-splunk/metadata.json +30 -0
  177. data/cookbooks/mu-splunk/metadata.rb +17 -0
  178. data/cookbooks/mu-splunk/recipes/client.rb +143 -0
  179. data/cookbooks/mu-splunk/recipes/default.rb +31 -0
  180. data/cookbooks/mu-splunk/recipes/disabled.rb +41 -0
  181. data/cookbooks/mu-splunk/recipes/install_forwarder.rb +23 -0
  182. data/cookbooks/mu-splunk/recipes/install_server.rb +23 -0
  183. data/cookbooks/mu-splunk/recipes/server.rb +53 -0
  184. data/cookbooks/mu-splunk/recipes/service.rb +95 -0
  185. data/cookbooks/mu-splunk/recipes/setup_auth.rb +49 -0
  186. data/cookbooks/mu-splunk/recipes/setup_ssl.rb +63 -0
  187. data/cookbooks/mu-splunk/recipes/upgrade.rb +94 -0
  188. data/cookbooks/mu-splunk/recipes/user.rb +34 -0
  189. data/cookbooks/mu-splunk/templates/default/base_logs_unix_inputs.conf.erb +26 -0
  190. data/cookbooks/mu-splunk/templates/default/inputs.conf.erb +13 -0
  191. data/cookbooks/mu-splunk/templates/default/outputs.conf.erb +9 -0
  192. data/cookbooks/mu-splunk/templates/default/splunk-init.erb +74 -0
  193. data/cookbooks/mu-splunk/templates/default/system-web.conf.erb +7 -0
  194. data/cookbooks/mu-tools/CHANGELOG.md +12 -0
  195. data/cookbooks/mu-tools/LICENSE +37 -0
  196. data/cookbooks/mu-tools/README.md +188 -0
  197. data/cookbooks/mu-tools/attributes/default.rb +142 -0
  198. data/cookbooks/mu-tools/attributes/ebs_rolling_snapshots.rb +3 -0
  199. data/cookbooks/mu-tools/files/amazon/etc/freshclam.conf +235 -0
  200. data/cookbooks/mu-tools/files/centos/CentOS-Base.repo +52 -0
  201. data/cookbooks/mu-tools/files/centos/etc/bashrc +93 -0
  202. data/cookbooks/mu-tools/files/centos/etc/freshclam.conf +235 -0
  203. data/cookbooks/mu-tools/files/centos/etc/login.defs +72 -0
  204. data/cookbooks/mu-tools/files/centos/etc/profile +77 -0
  205. data/cookbooks/mu-tools/files/centos/etc/security/limits.conf +57 -0
  206. data/cookbooks/mu-tools/files/centos/etc/sysconfig/init +19 -0
  207. data/cookbooks/mu-tools/files/centos/etc/sysctl.conf +82 -0
  208. data/cookbooks/mu-tools/files/centos-6/README_MU +0 -0
  209. data/cookbooks/mu-tools/files/centos-6/etc/audit/stig.rules +173 -0
  210. data/cookbooks/mu-tools/files/centos-6/etc/bashrc +90 -0
  211. data/cookbooks/mu-tools/files/centos-6/etc/login.defs +70 -0
  212. data/cookbooks/mu-tools/files/centos-6/etc/pam.d/su +12 -0
  213. data/cookbooks/mu-tools/files/centos-6/etc/profile +83 -0
  214. data/cookbooks/mu-tools/files/centos-6/etc/securetty +12 -0
  215. data/cookbooks/mu-tools/files/centos-6/etc/sysconfig/init +30 -0
  216. data/cookbooks/mu-tools/files/centos-6/etc/sysctl.conf +40 -0
  217. data/cookbooks/mu-tools/files/default/Mu_CA.pem +34 -0
  218. data/cookbooks/mu-tools/files/default/PSWindowsUpdate.zip +0 -0
  219. data/cookbooks/mu-tools/files/default/ebs_snapshots.py +123 -0
  220. data/cookbooks/mu-tools/files/default/etc/BANNER +0 -0
  221. data/cookbooks/mu-tools/files/default/etc/BANNER-FEDERAL +19 -0
  222. data/cookbooks/mu-tools/files/default/gpo_no_uac.zip +0 -0
  223. data/cookbooks/mu-tools/files/default/mypol.pp +0 -0
  224. data/cookbooks/mu-tools/files/default/mypol.te +37 -0
  225. data/cookbooks/mu-tools/files/default/nrpe_c7.pp +0 -0
  226. data/cookbooks/mu-tools/files/default/nrpe_c7.te +31 -0
  227. data/cookbooks/mu-tools/files/default/nrpe_check_disk.pp +0 -0
  228. data/cookbooks/mu-tools/files/default/nrpe_check_disk.te +11 -0
  229. data/cookbooks/mu-tools/files/default/nrpe_disk.pp +0 -0
  230. data/cookbooks/mu-tools/files/default/nrpe_disk.te +10 -0
  231. data/cookbooks/mu-tools/files/default/nrpe_file.pp +0 -0
  232. data/cookbooks/mu-tools/files/default/nrpe_file.te +31 -0
  233. data/cookbooks/mu-tools/files/default/ntrights +0 -0
  234. data/cookbooks/mu-tools/files/default/serverclass.conf +18 -0
  235. data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_unix/local/app.conf +1 -0
  236. data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_unix/local/inputs.conf +13 -0
  237. data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_windows/local/app.conf +1 -0
  238. data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_windows/local/inputs.conf +8 -0
  239. data/cookbooks/mu-tools/files/default/sshd_pol.pp +0 -0
  240. data/cookbooks/mu-tools/files/default/sshd_pol.te +32 -0
  241. data/cookbooks/mu-tools/files/redhat/etc/bashrc +93 -0
  242. data/cookbooks/mu-tools/files/redhat/etc/freshclam.conf +235 -0
  243. data/cookbooks/mu-tools/files/redhat/etc/login.defs +72 -0
  244. data/cookbooks/mu-tools/files/redhat/etc/profile +77 -0
  245. data/cookbooks/mu-tools/files/redhat/etc/security/limits.conf +57 -0
  246. data/cookbooks/mu-tools/files/redhat/etc/sysconfig/init +19 -0
  247. data/cookbooks/mu-tools/files/redhat/etc/sysctl.conf +82 -0
  248. data/cookbooks/mu-tools/files/redhat-6/README_MU +0 -0
  249. data/cookbooks/mu-tools/files/redhat-6/etc/audit/stig.rules +173 -0
  250. data/cookbooks/mu-tools/files/redhat-6/etc/bashrc +90 -0
  251. data/cookbooks/mu-tools/files/redhat-6/etc/login.defs +70 -0
  252. data/cookbooks/mu-tools/files/redhat-6/etc/pam.d/su +12 -0
  253. data/cookbooks/mu-tools/files/redhat-6/etc/profile +83 -0
  254. data/cookbooks/mu-tools/files/redhat-6/etc/securetty +12 -0
  255. data/cookbooks/mu-tools/files/redhat-6/etc/sysconfig/init +30 -0
  256. data/cookbooks/mu-tools/files/redhat-6/etc/sysctl.conf +40 -0
  257. data/cookbooks/mu-tools/files/redhat-7.1/etc/freshclam.conf +235 -0
  258. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/bash.bashrc +64 -0
  259. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/common-session +30 -0
  260. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/login.defs +338 -0
  261. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/profile +30 -0
  262. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/security/limits.conf +56 -0
  263. data/cookbooks/mu-tools/files/ubuntu-12.04/etc/sysctl.conf +60 -0
  264. data/cookbooks/mu-tools/libraries/helper.rb +292 -0
  265. data/cookbooks/mu-tools/metadata.rb +28 -0
  266. data/cookbooks/mu-tools/recipes/add_admin_ssh_keys.rb +35 -0
  267. data/cookbooks/mu-tools/recipes/apply_security.rb +440 -0
  268. data/cookbooks/mu-tools/recipes/aws_api.rb +23 -0
  269. data/cookbooks/mu-tools/recipes/base_repositories.rb +31 -0
  270. data/cookbooks/mu-tools/recipes/cisbenchmark.rb +59 -0
  271. data/cookbooks/mu-tools/recipes/clamav.rb +53 -0
  272. data/cookbooks/mu-tools/recipes/cloudinit.rb +58 -0
  273. data/cookbooks/mu-tools/recipes/configure_oracle_tools.rb +81 -0
  274. data/cookbooks/mu-tools/recipes/disable-requiretty.rb +22 -0
  275. data/cookbooks/mu-tools/recipes/ebs_rolling_snapshots.rb +75 -0
  276. data/cookbooks/mu-tools/recipes/efs.rb +70 -0
  277. data/cookbooks/mu-tools/recipes/eks.rb +160 -0
  278. data/cookbooks/mu-tools/recipes/gcloud.rb +98 -0
  279. data/cookbooks/mu-tools/recipes/google_api.rb +25 -0
  280. data/cookbooks/mu-tools/recipes/maldet.rb +67 -0
  281. data/cookbooks/mu-tools/recipes/nagios.rb +19 -0
  282. data/cookbooks/mu-tools/recipes/newclient.rb +23 -0
  283. data/cookbooks/mu-tools/recipes/nrpe.rb +115 -0
  284. data/cookbooks/mu-tools/recipes/python_pip.rb +35 -0
  285. data/cookbooks/mu-tools/recipes/retrieve_application.rb +51 -0
  286. data/cookbooks/mu-tools/recipes/rsyslog.rb +65 -0
  287. data/cookbooks/mu-tools/recipes/set_local_fw.rb +57 -0
  288. data/cookbooks/mu-tools/recipes/set_mu_hostname.rb +81 -0
  289. data/cookbooks/mu-tools/recipes/split_var_partitions.rb +86 -0
  290. data/cookbooks/mu-tools/recipes/splunk-client.rb +69 -0
  291. data/cookbooks/mu-tools/recipes/splunk-server.rb +104 -0
  292. data/cookbooks/mu-tools/recipes/store_inspec_attr.rb +8 -0
  293. data/cookbooks/mu-tools/recipes/updates.rb +96 -0
  294. data/cookbooks/mu-tools/recipes/windows-client.rb +202 -0
  295. data/cookbooks/mu-tools/resources/aws_windows.rb +33 -0
  296. data/cookbooks/mu-tools/resources/disk.rb +88 -0
  297. data/cookbooks/mu-tools/resources/mommacat_request.rb +11 -0
  298. data/cookbooks/mu-tools/resources/scheduled_tasks.rb +29 -0
  299. data/cookbooks/mu-tools/resources/sshd_service.rb +45 -0
  300. data/cookbooks/mu-tools/resources/windows_users.rb +242 -0
  301. data/cookbooks/mu-tools/templates/amazon/sshd_config.erb +168 -0
  302. data/cookbooks/mu-tools/templates/centos-6/sshd_config.erb +212 -0
  303. data/cookbooks/mu-tools/templates/centos-7/sshd_config.erb +215 -0
  304. data/cookbooks/mu-tools/templates/default/0-mu-log-client.conf.erb +13 -0
  305. data/cookbooks/mu-tools/templates/default/conf.maldet.erb +137 -0
  306. data/cookbooks/mu-tools/templates/default/etc_hosts.erb +30 -0
  307. data/cookbooks/mu-tools/templates/default/etc_pamd_password-auth.erb +14 -0
  308. data/cookbooks/mu-tools/templates/default/etc_pamd_system-auth.erb +14 -0
  309. data/cookbooks/mu-tools/templates/default/etc_sysconfig_network.erb +12 -0
  310. data/cookbooks/mu-tools/templates/default/kubeconfig.erb +29 -0
  311. data/cookbooks/mu-tools/templates/default/kubelet.service.erb +35 -0
  312. data/cookbooks/mu-tools/templates/default/maldet_scanall.sh.erb +15 -0
  313. data/cookbooks/mu-tools/templates/default/nrpe.cfg.erb +233 -0
  314. data/cookbooks/mu-tools/templates/redhat-6/sshd_config.erb +213 -0
  315. data/cookbooks/mu-tools/templates/redhat-7/sshd_config.erb +215 -0
  316. data/cookbooks/mu-tools/templates/ubuntu-12.04/sshd_config.erb +146 -0
  317. data/cookbooks/mu-tools/templates/ubuntu-14.04/sshd_config.erb +145 -0
  318. data/cookbooks/mu-tools/templates/windows/Backup.xml.erb +20 -0
  319. data/cookbooks/mu-tools/templates/windows/bkupInfo.xml.erb +1 -0
  320. data/cookbooks/mu-tools/templates/windows/gpreprt.xml.erb +214 -0
  321. data/cookbooks/mu-tools/templates/windows/gptmpl.inf.erb +12 -0
  322. data/cookbooks/mu-tools/templates/windows/manifest.xml.erb +1 -0
  323. data/cookbooks/mu-tools/templates/windows/set_ad_dns_scheduled_task.ps1.erb +6 -0
  324. data/cookbooks/mu-tools/templates/windows/sshd_config.erb +136 -0
  325. data/cookbooks/mu-utility/CHANGELOG.md +12 -0
  326. data/cookbooks/mu-utility/LICENSE +37 -0
  327. data/cookbooks/mu-utility/README.md +6 -0
  328. data/cookbooks/mu-utility/attributes/default.rb +1 -0
  329. data/cookbooks/mu-utility/libraries/matchers.rb +21 -0
  330. data/cookbooks/mu-utility/metadata.rb +16 -0
  331. data/cookbooks/mu-utility/recipes/apt.rb +23 -0
  332. data/cookbooks/mu-utility/recipes/cleanup_image_helper.rb +118 -0
  333. data/cookbooks/mu-utility/recipes/iptables.rb +26 -0
  334. data/cookbooks/mu-utility/recipes/luks.rb +18 -0
  335. data/cookbooks/mu-utility/recipes/nat.rb +104 -0
  336. data/cookbooks/mu-utility/recipes/php.rb +33 -0
  337. data/cookbooks/mu-utility/recipes/rdp_gateway.rb +83 -0
  338. data/cookbooks/mu-utility/recipes/remi.rb +44 -0
  339. data/cookbooks/mu-utility/recipes/vim.rb +26 -0
  340. data/cookbooks/mu-utility/recipes/windows_basics.rb +37 -0
  341. data/cookbooks/mu-utility/recipes/zip.rb +26 -0
  342. data/cookbooks/mu-utility/templates/default/BundleConfig.xml.erb +34 -0
  343. data/cookbooks/mu-utility/templates/default/config.xml.erb +60 -0
  344. data/cookbooks/nagios/Berksfile +8 -0
  345. data/cookbooks/nagios/CHANGELOG.md +589 -0
  346. data/cookbooks/nagios/CONTRIBUTING.md +11 -0
  347. data/cookbooks/nagios/LICENSE +37 -0
  348. data/cookbooks/nagios/README.md +328 -0
  349. data/cookbooks/nagios/TESTING.md +2 -0
  350. data/cookbooks/nagios/attributes/config.rb +171 -0
  351. data/cookbooks/nagios/attributes/default.rb +228 -0
  352. data/cookbooks/nagios/chefignore +102 -0
  353. data/cookbooks/nagios/definitions/command.rb +33 -0
  354. data/cookbooks/nagios/definitions/contact.rb +33 -0
  355. data/cookbooks/nagios/definitions/contactgroup.rb +33 -0
  356. data/cookbooks/nagios/definitions/host.rb +33 -0
  357. data/cookbooks/nagios/definitions/hostdependency.rb +33 -0
  358. data/cookbooks/nagios/definitions/hostescalation.rb +34 -0
  359. data/cookbooks/nagios/definitions/hostgroup.rb +33 -0
  360. data/cookbooks/nagios/definitions/nagios_conf.rb +38 -0
  361. data/cookbooks/nagios/definitions/resource.rb +33 -0
  362. data/cookbooks/nagios/definitions/service.rb +33 -0
  363. data/cookbooks/nagios/definitions/servicedependency.rb +33 -0
  364. data/cookbooks/nagios/definitions/serviceescalation.rb +34 -0
  365. data/cookbooks/nagios/definitions/servicegroup.rb +33 -0
  366. data/cookbooks/nagios/definitions/timeperiod.rb +33 -0
  367. data/cookbooks/nagios/libraries/base.rb +314 -0
  368. data/cookbooks/nagios/libraries/command.rb +91 -0
  369. data/cookbooks/nagios/libraries/contact.rb +230 -0
  370. data/cookbooks/nagios/libraries/contactgroup.rb +112 -0
  371. data/cookbooks/nagios/libraries/custom_option.rb +36 -0
  372. data/cookbooks/nagios/libraries/data_bag_helper.rb +23 -0
  373. data/cookbooks/nagios/libraries/default.rb +90 -0
  374. data/cookbooks/nagios/libraries/host.rb +412 -0
  375. data/cookbooks/nagios/libraries/hostdependency.rb +181 -0
  376. data/cookbooks/nagios/libraries/hostescalation.rb +173 -0
  377. data/cookbooks/nagios/libraries/hostgroup.rb +119 -0
  378. data/cookbooks/nagios/libraries/nagios.rb +282 -0
  379. data/cookbooks/nagios/libraries/resource.rb +59 -0
  380. data/cookbooks/nagios/libraries/service.rb +455 -0
  381. data/cookbooks/nagios/libraries/servicedependency.rb +215 -0
  382. data/cookbooks/nagios/libraries/serviceescalation.rb +195 -0
  383. data/cookbooks/nagios/libraries/servicegroup.rb +144 -0
  384. data/cookbooks/nagios/libraries/timeperiod.rb +160 -0
  385. data/cookbooks/nagios/libraries/users_helper.rb +54 -0
  386. data/cookbooks/nagios/metadata.rb +25 -0
  387. data/cookbooks/nagios/recipes/_load_databag_config.rb +153 -0
  388. data/cookbooks/nagios/recipes/_load_default_config.rb +241 -0
  389. data/cookbooks/nagios/recipes/apache.rb +48 -0
  390. data/cookbooks/nagios/recipes/default.rb +204 -0
  391. data/cookbooks/nagios/recipes/nginx.rb +82 -0
  392. data/cookbooks/nagios/recipes/pagerduty.rb +143 -0
  393. data/cookbooks/nagios/recipes/server_package.rb +40 -0
  394. data/cookbooks/nagios/recipes/server_source.rb +164 -0
  395. data/cookbooks/nagios/templates/default/apache2.conf.erb +96 -0
  396. data/cookbooks/nagios/templates/default/cgi.cfg.erb +266 -0
  397. data/cookbooks/nagios/templates/default/commands.cfg.erb +13 -0
  398. data/cookbooks/nagios/templates/default/contacts.cfg.erb +37 -0
  399. data/cookbooks/nagios/templates/default/hostgroups.cfg.erb +25 -0
  400. data/cookbooks/nagios/templates/default/hosts.cfg.erb +15 -0
  401. data/cookbooks/nagios/templates/default/htpasswd.users.erb +6 -0
  402. data/cookbooks/nagios/templates/default/nagios.cfg.erb +22 -0
  403. data/cookbooks/nagios/templates/default/nginx.conf.erb +62 -0
  404. data/cookbooks/nagios/templates/default/pagerduty.cgi.erb +185 -0
  405. data/cookbooks/nagios/templates/default/resource.cfg.erb +27 -0
  406. data/cookbooks/nagios/templates/default/servicedependencies.cfg.erb +15 -0
  407. data/cookbooks/nagios/templates/default/servicegroups.cfg.erb +14 -0
  408. data/cookbooks/nagios/templates/default/services.cfg.erb +14 -0
  409. data/cookbooks/nagios/templates/default/templates.cfg.erb +31 -0
  410. data/cookbooks/nagios/templates/default/timeperiods.cfg.erb +13 -0
  411. data/cookbooks/s3fs/CHANGELOG.md +13 -0
  412. data/cookbooks/s3fs/LICENSE +37 -0
  413. data/cookbooks/s3fs/README.md +6 -0
  414. data/cookbooks/s3fs/attributes/default.rb +15 -0
  415. data/cookbooks/s3fs/files/default/fuse-2.9.3.zip +0 -0
  416. data/cookbooks/s3fs/metadata.rb +16 -0
  417. data/cookbooks/s3fs/recipes/default.rb +91 -0
  418. data/data_bags/demo/app.json +7 -0
  419. data/data_bags/nagios_services/chef.json +6 -0
  420. data/data_bags/nagios_services/linux_diskspace.json +5 -0
  421. data/data_bags/nagios_services/momma_cat.json +6 -0
  422. data/data_bags/nagios_services/mu-master-memory.json +5 -0
  423. data/data_bags/nagios_services/nagios_ui.json +6 -0
  424. data/data_bags/nagios_services/node_ssh.json +6 -0
  425. data/data_bags/nagios_services/ssh.json +6 -0
  426. data/demo/lambda_test.yaml +29 -0
  427. data/environments/DEV.json +8 -0
  428. data/environments/PROD.json +8 -0
  429. data/environments/dev.json +8 -0
  430. data/environments/development.json +8 -0
  431. data/environments/prod.json +8 -0
  432. data/extras/README.md +1 -0
  433. data/extras/admin-role-binding.yaml +16 -0
  434. data/extras/admin-user.yaml +6 -0
  435. data/extras/aws-auth-cm.yaml.erb +12 -0
  436. data/extras/clean-stock-amis +48 -0
  437. data/extras/git-fix-permissions-hook +12 -0
  438. data/extras/gitlab-eks-helper.sh.erb +20 -0
  439. data/extras/image-generators/README.md +2 -0
  440. data/extras/image-generators/aws/centos6.yaml +18 -0
  441. data/extras/image-generators/aws/centos7-govcloud.yaml +24 -0
  442. data/extras/image-generators/aws/centos7.yaml +17 -0
  443. data/extras/image-generators/aws/rhel7.yaml +17 -0
  444. data/extras/image-generators/aws/win2k12.yaml +16 -0
  445. data/extras/image-generators/aws/win2k16.yaml +16 -0
  446. data/extras/image-generators/aws/windows.yaml +18 -0
  447. data/extras/image-generators/gcp/centos6.yaml +17 -0
  448. data/extras/lambda_waf_domain_blacklist.py +103 -0
  449. data/extras/platform_berksfile_base +50 -0
  450. data/extras/ruby_rpm/build.sh +17 -0
  451. data/extras/ruby_rpm/muby.spec +44 -0
  452. data/extras/vault_tools/README.md +6 -0
  453. data/extras/vault_tools/export_vaults.sh +3 -0
  454. data/extras/vault_tools/recreate_vaults.sh +5 -0
  455. data/extras/vault_tools/test_vaults.sh +5 -0
  456. data/install/README.md +8 -0
  457. data/install/cfn_create_mu_master.json +1034 -0
  458. data/install/chef-server.rb.erb +19 -0
  459. data/install/deprecated-bash-library.sh +1891 -0
  460. data/install/images/Usage.png +0 -0
  461. data/install/installer +71 -0
  462. data/install/jenkinskeys.rb +8 -0
  463. data/install/user-dot-murc.erb +14 -0
  464. data/modules/html.erb +19 -0
  465. data/modules/mommacat.ru +426 -0
  466. data/modules/mu/cleanup.rb +339 -0
  467. data/modules/mu/cloud.rb +1446 -0
  468. data/modules/mu/clouds/README.md +201 -0
  469. data/modules/mu/clouds/aws/alarm.rb +319 -0
  470. data/modules/mu/clouds/aws/cache_cluster.rb +1010 -0
  471. data/modules/mu/clouds/aws/collection.rb +373 -0
  472. data/modules/mu/clouds/aws/container_cluster.rb +667 -0
  473. data/modules/mu/clouds/aws/database.rb +1836 -0
  474. data/modules/mu/clouds/aws/dnszone.rb +911 -0
  475. data/modules/mu/clouds/aws/firewall_rule.rb +641 -0
  476. data/modules/mu/clouds/aws/folder.rb +92 -0
  477. data/modules/mu/clouds/aws/function.rb +349 -0
  478. data/modules/mu/clouds/aws/group.rb +251 -0
  479. data/modules/mu/clouds/aws/loadbalancer.rb +888 -0
  480. data/modules/mu/clouds/aws/log.rb +363 -0
  481. data/modules/mu/clouds/aws/msg_queue.rb +480 -0
  482. data/modules/mu/clouds/aws/notification.rb +139 -0
  483. data/modules/mu/clouds/aws/role.rb +656 -0
  484. data/modules/mu/clouds/aws/search_domain.rb +646 -0
  485. data/modules/mu/clouds/aws/server.rb +2294 -0
  486. data/modules/mu/clouds/aws/server_pool.rb +1388 -0
  487. data/modules/mu/clouds/aws/storage_pool.rb +495 -0
  488. data/modules/mu/clouds/aws/user.rb +382 -0
  489. data/modules/mu/clouds/aws/userdata/README.md +4 -0
  490. data/modules/mu/clouds/aws/userdata/linux.erb +179 -0
  491. data/modules/mu/clouds/aws/userdata/windows.erb +278 -0
  492. data/modules/mu/clouds/aws/vpc.rb +1943 -0
  493. data/modules/mu/clouds/aws.rb +1009 -0
  494. data/modules/mu/clouds/cloudformation/alarm.rb +146 -0
  495. data/modules/mu/clouds/cloudformation/cache_cluster.rb +167 -0
  496. data/modules/mu/clouds/cloudformation/collection.rb +117 -0
  497. data/modules/mu/clouds/cloudformation/database.rb +278 -0
  498. data/modules/mu/clouds/cloudformation/dnszone.rb +274 -0
  499. data/modules/mu/clouds/cloudformation/firewall_rule.rb +308 -0
  500. data/modules/mu/clouds/cloudformation/loadbalancer.rb +193 -0
  501. data/modules/mu/clouds/cloudformation/log.rb +170 -0
  502. data/modules/mu/clouds/cloudformation/server.rb +370 -0
  503. data/modules/mu/clouds/cloudformation/server_pool.rb +279 -0
  504. data/modules/mu/clouds/cloudformation/vpc.rb +322 -0
  505. data/modules/mu/clouds/cloudformation.rb +733 -0
  506. data/modules/mu/clouds/docker.rb +30 -0
  507. data/modules/mu/clouds/google/container_cluster.rb +290 -0
  508. data/modules/mu/clouds/google/database.rb +152 -0
  509. data/modules/mu/clouds/google/firewall_rule.rb +267 -0
  510. data/modules/mu/clouds/google/group.rb +164 -0
  511. data/modules/mu/clouds/google/loadbalancer.rb +479 -0
  512. data/modules/mu/clouds/google/server.rb +1510 -0
  513. data/modules/mu/clouds/google/server_pool.rb +274 -0
  514. data/modules/mu/clouds/google/user.rb +266 -0
  515. data/modules/mu/clouds/google/userdata/README.md +4 -0
  516. data/modules/mu/clouds/google/userdata/linux.erb +137 -0
  517. data/modules/mu/clouds/google/userdata/windows.erb +275 -0
  518. data/modules/mu/clouds/google/vpc.rb +890 -0
  519. data/modules/mu/clouds/google.rb +811 -0
  520. data/modules/mu/config/README.md +11 -0
  521. data/modules/mu/config/alarm.rb +271 -0
  522. data/modules/mu/config/cache_cluster.rb +172 -0
  523. data/modules/mu/config/collection.rb +87 -0
  524. data/modules/mu/config/container_cluster.rb +103 -0
  525. data/modules/mu/config/container_cluster.yml +36 -0
  526. data/modules/mu/config/database.rb +458 -0
  527. data/modules/mu/config/database.yml +26 -0
  528. data/modules/mu/config/dnszone.rb +327 -0
  529. data/modules/mu/config/firewall_rule.rb +118 -0
  530. data/modules/mu/config/folder.rb +70 -0
  531. data/modules/mu/config/function.rb +140 -0
  532. data/modules/mu/config/group.rb +64 -0
  533. data/modules/mu/config/loadbalancer.rb +482 -0
  534. data/modules/mu/config/log.rb +47 -0
  535. data/modules/mu/config/log.yml +6 -0
  536. data/modules/mu/config/msg_queue.rb +47 -0
  537. data/modules/mu/config/msg_queue.yml +9 -0
  538. data/modules/mu/config/notification.rb +44 -0
  539. data/modules/mu/config/project.rb +71 -0
  540. data/modules/mu/config/role.rb +102 -0
  541. data/modules/mu/config/search_domain.rb +61 -0
  542. data/modules/mu/config/search_domain.yml +25 -0
  543. data/modules/mu/config/server.rb +587 -0
  544. data/modules/mu/config/server.yml +8 -0
  545. data/modules/mu/config/server_pool.rb +216 -0
  546. data/modules/mu/config/server_pool.yml +71 -0
  547. data/modules/mu/config/storage_pool.rb +145 -0
  548. data/modules/mu/config/user.rb +78 -0
  549. data/modules/mu/config/vpc.rb +743 -0
  550. data/modules/mu/config/vpc.yml +6 -0
  551. data/modules/mu/config.rb +2000 -0
  552. data/modules/mu/defaults/README.md +2 -0
  553. data/modules/mu/defaults/amazon_images.yaml +121 -0
  554. data/modules/mu/defaults/google_images.yaml +16 -0
  555. data/modules/mu/deploy.rb +686 -0
  556. data/modules/mu/groomer.rb +123 -0
  557. data/modules/mu/groomers/README.md +58 -0
  558. data/modules/mu/groomers/chef.rb +1024 -0
  559. data/modules/mu/kittens.rb +11319 -0
  560. data/modules/mu/logger.rb +208 -0
  561. data/modules/mu/master/README.md +27 -0
  562. data/modules/mu/master/chef.rb +471 -0
  563. data/modules/mu/master/ldap.rb +1005 -0
  564. data/modules/mu/master.rb +415 -0
  565. data/modules/mu/mommacat.rb +2703 -0
  566. data/modules/mu-load-config.rb +1 -0
  567. data/modules/mu.rb +724 -0
  568. data/modules/scratchpad.erb +1 -0
  569. data/modules/tests/super_complex_bok.yml +41 -0
  570. data/modules/tests/super_simple_bok.yml +40 -0
  571. data/mu.gemspec +62 -0
  572. data/roles/demo-dbservice-configure.json +19 -0
  573. data/roles/demo-portal-configure.json +19 -0
  574. data/roles/mu-master-jenkins.json +24 -0
  575. data/roles/mu-master-nagios-only.json +13 -0
  576. data/roles/mu-master.json +12 -0
  577. data/roles/mu-node.json +19 -0
  578. data/roles/mu-splunk-server.json +13 -0
  579. data/roles/mu-splunk.json +13 -0
  580. data/test/clean_up.py +25 -0
  581. data/test/demo-test-profile/README.md +3 -0
  582. data/test/demo-test-profile/controls/flask.rb +84 -0
  583. data/test/demo-test-profile/inspec.lock +7 -0
  584. data/test/demo-test-profile/inspec.yml +11 -0
  585. data/test/etco-test-profile/README.md +3 -0
  586. data/test/etco-test-profile/controls/all-in-one.rb +182 -0
  587. data/test/etco-test-profile/inspec.lock +7 -0
  588. data/test/etco-test-profile/inspec.yml +11 -0
  589. data/test/exec_inspec.py +246 -0
  590. data/test/exec_mu_install.py +241 -0
  591. data/test/exec_retry.py +44 -0
  592. data/test/mu-master-test/README.md +3 -0
  593. data/test/mu-master-test/controls/all_in_one.rb +557 -0
  594. data/test/mu-master-test/inspec.lock +3 -0
  595. data/test/mu-master-test/inspec.yml +11 -0
  596. data/test/mu-tools-test/README.md +3 -0
  597. data/test/mu-tools-test/controls/base.rb +265 -0
  598. data/test/mu-tools-test/inspec.lock +3 -0
  599. data/test/mu-tools-test/inspec.yml +8 -0
  600. data/test/simple-server-php-test/README.md +3 -0
  601. data/test/simple-server-php-test/controls/apachephp.rb +25 -0
  602. data/test/simple-server-php-test/controls/example.rb +19 -0
  603. data/test/simple-server-php-test/inspec.lock +7 -0
  604. data/test/simple-server-php-test/inspec.yml +12 -0
  605. data/test/simple-server-rails-test/README.md +3 -0
  606. data/test/simple-server-rails-test/controls/rails.rb +188 -0
  607. data/test/simple-server-rails-test/inspec.lock +7 -0
  608. data/test/simple-server-rails-test/inspec.yml +11 -0
  609. data/test/simple-windows-test/README.md +3 -0
  610. data/test/simple-windows-test/controls/windows.rb +20 -0
  611. data/test/simple-windows-test/inspec.lock +7 -0
  612. data/test/simple-windows-test/inspec.yml +11 -0
  613. data/test/smoke_test.rb +75 -0
  614. data/test/wordpress-test/README.md +3 -0
  615. data/test/wordpress-test/controls/wordpress.rb +97 -0
  616. data/test/wordpress-test/inspec.lock +7 -0
  617. data/test/wordpress-test/inspec.yml +11 -0
  618. metadata +979 -0
@@ -0,0 +1,153 @@
1
+ #
2
+ # Author:: Sander Botman <sbotman@schubergphilis.com>
3
+ # Cookbook Name:: nagios
4
+ # Recipe:: _load_databag_config
5
+ #
6
+ # Copyright 2014, Sander Botman
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+
20
+ # Loading all databag information
21
+ nagios_bags = NagiosDataBags.new
22
+
23
+ hostgroups = nagios_bags.get(node['nagios']['hostgroups_databag'])
24
+ hostgroups.each do |group|
25
+ next if group['search_query'].nil?
26
+ if node['nagios']['multi_environment_monitoring']
27
+ query_environments = node['nagios']['monitored_environments'].map do |environment|
28
+ "chef_environment:#{environment}"
29
+ end.join(' OR ')
30
+ result = search(:node, "(#{group['search_query']}) AND (#{query_environments})")
31
+ else
32
+ result = search(:node, "#{group['search_query']} AND chef_environment:#{node.chef_environment}")
33
+ end
34
+
35
+ result.each do |n|
36
+ n.automatic_attrs['roles'] = [group['hostgroup_name']]
37
+ Nagios.instance.push(n)
38
+ end
39
+ end
40
+
41
+ services = nagios_bags.get(node['nagios']['services_databag'])
42
+ services.each do |item|
43
+ next unless item['activate_check_in_environment'].nil? || item['activate_check_in_environment'].include?(node.chef_environment)
44
+ name = item['service_description'] || item['id']
45
+ check_command = name.downcase.start_with?('check_') ? name.downcase : 'check_' + name.downcase
46
+ command_name = item['check_command'].nil? ? check_command : item['check_command']
47
+ service_name = name.downcase.start_with?('check_') ? name.gsub('check_', '') : name.downcase
48
+ item['check_command'] = command_name
49
+
50
+ nagios_command command_name do
51
+ options item
52
+ end
53
+
54
+ nagios_service service_name do
55
+ options item
56
+ end
57
+ end
58
+
59
+ contactgroups = nagios_bags.get(node['nagios']['contactgroups_databag'])
60
+ contactgroups.each do |item|
61
+ name = item['contactgroup_name'] || item['id']
62
+ nagios_contactgroup name do
63
+ options item
64
+ end
65
+ end
66
+
67
+ eventhandlers = nagios_bags.get(node['nagios']['eventhandlers_databag'])
68
+ eventhandlers.each do |item|
69
+ name = item['command_name'] || item['id']
70
+ nagios_command name do
71
+ options item
72
+ end
73
+ end
74
+
75
+ contacts = nagios_bags.get(node['nagios']['contacts_databag'])
76
+ contacts.each do |item|
77
+ name = item['contact_name'] || item['id']
78
+ nagios_contact name do
79
+ options item
80
+ end
81
+ end
82
+
83
+ hostescalations = nagios_bags.get(node['nagios']['hostescalations_databag'])
84
+ hostescalations.each do |item|
85
+ name = item['host_description'] || item['id']
86
+ nagios_hostescalation name do
87
+ options item
88
+ end
89
+ end
90
+
91
+ hosttemplates = nagios_bags.get(node['nagios']['hosttemplates_databag'])
92
+ hosttemplates.each do |item|
93
+ name = item['host_name'] || item['id']
94
+ item['name'] = name if item['name'].nil?
95
+ nagios_host name do
96
+ options item
97
+ end
98
+ end
99
+
100
+ servicedependencies = nagios_bags.get(node['nagios']['servicedependencies_databag'])
101
+ servicedependencies.each do |item|
102
+ name = item['service_description'] || item['id']
103
+ nagios_servicedependency name do
104
+ options item
105
+ end
106
+ end
107
+
108
+ serviceescalations = nagios_bags.get(node['nagios']['serviceescalations_databag'])
109
+ serviceescalations.each do |item|
110
+ name = item['service_description'] || item['id']
111
+ nagios_serviceescalation name do
112
+ options item
113
+ end
114
+ end
115
+
116
+ servicegroups = nagios_bags.get(node['nagios']['servicegroups_databag'])
117
+ servicegroups.each do |item|
118
+ name = item['servicegroup_name'] || item['id']
119
+ nagios_servicegroup name do
120
+ options item
121
+ end
122
+ end
123
+
124
+ templates = nagios_bags.get(node['nagios']['templates_databag'])
125
+ templates.each do |item|
126
+ name = item['name'] || item['id']
127
+ item['name'] = name
128
+ nagios_service name do
129
+ options item
130
+ end
131
+ end
132
+
133
+ timeperiods = nagios_bags.get(node['nagios']['timeperiods_databag'])
134
+ timeperiods.each do |item|
135
+ name = item['timeperiod_name'] || item['id']
136
+ nagios_timeperiod name do
137
+ options item
138
+ end
139
+ end
140
+
141
+ unmanaged_hosts = nagios_bags.get(node['nagios']['unmanagedhosts_databag'])
142
+ unmanaged_hosts.each do |item|
143
+ if node['nagios']['multi_environment_monitoring'].nil?
144
+ next if item['environment'].nil? || item['environment'] != node.chef_environment
145
+ else
146
+ envs = node['nagios']['monitored_environments']
147
+ next if item['environment'].nil? || !envs.include?(item['environment'])
148
+ end
149
+ name = item['host_name'] || item['id']
150
+ nagios_host name do
151
+ options item
152
+ end
153
+ end
@@ -0,0 +1,241 @@
1
+ #
2
+ # Author:: Sander Botman <sbotman@schubergphilis.com>
3
+ # Cookbook Name:: nagios
4
+ # Recipe:: _load_default_config
5
+ #
6
+ # Copyright 2014, Sander Botman
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+
20
+ # Find nodes to monitor.
21
+ # Search in all environments if multi_environment_monitoring is enabled.
22
+ Chef::Log.info('Beginning search for nodes. This may take some time depending on your node count')
23
+
24
+ multi_env = node['nagios']['monitored_environments']
25
+ multi_env_search = multi_env.empty? ? '' : ' AND (chef_environment:' + multi_env.join(' OR chef_environment:') + ')'
26
+
27
+ nodes = if node['nagios']['multi_environment_monitoring']
28
+ search(:node, "name:*#{multi_env_search}")
29
+ else
30
+ search(:node, "name:* AND chef_environment:#{node.chef_environment}")
31
+ end
32
+
33
+ if nodes.empty?
34
+ Chef::Log.info('No nodes returned from search, using this node so hosts.cfg has data')
35
+ nodes << node
36
+ end
37
+
38
+ # Pushing current node to prevent empty hosts.cfg
39
+ Nagios.instance.push(node)
40
+
41
+ # Pushing all nodes into the Nagios.instance model
42
+ exclude_tag = nagios_array(node['nagios']['exclude_tag_host'])
43
+ nodes.each do |n|
44
+ if n.respond_to?('tags')
45
+ Nagios.instance.push(n) unless nagios_array(n.tags).any? { |tag| exclude_tag.include?(tag) }
46
+ else
47
+ Nagios.instance.push(n)
48
+ end
49
+ end
50
+
51
+ # 24x7 timeperiod
52
+ nagios_timeperiod '24x7' do
53
+ options 'alias' => '24 Hours A Day, 7 Days A Week',
54
+ 'times' => { 'sunday' => '00:00-24:00',
55
+ 'monday' => '00:00-24:00',
56
+ 'tuesday' => '00:00-24:00',
57
+ 'wednesday' => '00:00-24:00',
58
+ 'thursday' => '00:00-24:00',
59
+ 'friday' => '00:00-24:00',
60
+ 'saturday' => '00:00-24:00',
61
+ }
62
+ end
63
+
64
+ # Host checks
65
+ nagios_command 'check_host_alive' do
66
+ options 'command_line' => '$USER1$/check_ping -H $HOSTADDRESS$ -w 2000,80% -c 3000,100% -p 1'
67
+ end
68
+
69
+ # Service checks
70
+ nagios_command 'check_nagios' do
71
+ options 'command_line' => '$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_nagios -t 20'
72
+ end
73
+
74
+ # nrpe remote host checks
75
+ nagios_command 'check_nrpe_alive' do
76
+ options 'command_line' => '$USER1$/check_nrpe -H $HOSTADDRESS$ -t 20'
77
+ end
78
+
79
+ nagios_command 'check_nrpe' do
80
+ options 'command_line' => '$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20'
81
+ end
82
+
83
+ # host_notify_by_email command
84
+ nagios_command 'host_notify_by_email' do
85
+ options 'command_line' => '/usr/bin/printf "%b" "$LONGDATETIME$\n\n$HOSTALIAS$ $NOTIFICATIONTYPE$ $HOSTSTATE$\n\n$HOSTOUTPUT$\n\nLogin: ssh://$HOSTNAME$" | ' + node['nagios']['server']['mail_command'] + ' -s "$NOTIFICATIONTYPE$ - $HOSTALIAS$ $HOSTSTATE$!" $CONTACTEMAIL$'
86
+ end
87
+
88
+ # service_notify_by_email command
89
+ nagios_command 'service_notify_by_email' do
90
+ options 'command_line' => '/usr/bin/printf "%b" "$LONGDATETIME$ - $SERVICEDESC$ $SERVICESTATE$\n\n$HOSTALIAS$ $NOTIFICATIONTYPE$\n\n$SERVICEOUTPUT$\n\nLogin: ssh://$HOSTNAME$" | ' + node['nagios']['server']['mail_command'] + ' -s "** $NOTIFICATIONTYPE$ - $HOSTALIAS$ - $SERVICEDESC$ - $SERVICESTATE$" $CONTACTEMAIL$'
91
+ end
92
+
93
+ # host_notify_by_sms_email command
94
+ nagios_command 'host_notify_by_sms_email' do
95
+ options 'command_line' => '/usr/bin/printf "%b" "$HOSTALIAS$ $NOTIFICATIONTYPE$ $HOSTSTATE$\n\n$HOSTOUTPUT$" | ' + node['nagios']['server']['mail_command'] + ' -s "$HOSTALIAS$ $HOSTSTATE$!" $CONTACTPAGER$'
96
+ end
97
+
98
+ # service_notify_by_sms_email command
99
+ nagios_command 'service_notify_by_sms_email' do
100
+ options 'command_line' => '/usr/bin/printf "%b" "$SERVICEDESC$ $NOTIFICATIONTYPE$ $SERVICESTATE$\n\n$SERVICEOUTPUT$" | ' + node['nagios']['server']['mail_command'] + ' -s "$HOSTALIAS$ $SERVICEDESC$ $SERVICESTATE$!" $CONTACTPAGER$'
101
+ end
102
+
103
+ # root contact
104
+ nagios_contact 'root' do
105
+ options 'alias' => 'Root',
106
+ 'service_notification_period' => '24x7',
107
+ 'host_notification_period' => '24x7',
108
+ 'service_notification_options' => 'w,u,c,r',
109
+ 'host_notification_options' => 'd,r',
110
+ 'service_notification_commands' => 'service_notify_by_email',
111
+ 'host_notification_commands' => 'host_notify_by_email',
112
+ 'email' => 'root@localhost'
113
+ end
114
+
115
+ # admin contact
116
+ nagios_contact 'admin' do
117
+ options 'alias' => 'Admin',
118
+ 'service_notification_period' => '24x7',
119
+ 'host_notification_period' => '24x7',
120
+ 'service_notification_options' => 'w,u,c,r',
121
+ 'host_notification_options' => 'd,r',
122
+ 'service_notification_commands' => 'service_notify_by_email',
123
+ 'host_notification_commands' => 'host_notify_by_email'
124
+ end
125
+
126
+ nagios_contact 'default-contact' do
127
+ options 'name' => 'default-contact',
128
+ 'service_notification_period' => '24x7',
129
+ 'host_notification_period' => '24x7',
130
+ 'service_notification_options' => 'w,u,c,r,f',
131
+ 'host_notification_options' => 'd,u,r,f,s',
132
+ 'service_notification_commands' => 'service_notify_by_email',
133
+ 'host_notification_commands' => 'host_notify_by_email'
134
+ end
135
+
136
+ nagios_host 'default-host' do
137
+ options 'name' => 'default-host',
138
+ 'notifications_enabled' => 1,
139
+ 'event_handler_enabled' => 1,
140
+ 'flap_detection_enabled' => nagios_boolean(nagios_attr(:default_host)[:flap_detection]),
141
+ 'process_perf_data' => nagios_boolean(nagios_attr(:default_host)[:process_perf_data]),
142
+ 'retain_status_information' => 1,
143
+ 'retain_nonstatus_information' => 1,
144
+ 'notification_period' => '24x7',
145
+ 'register' => 0,
146
+ 'action_url' => nagios_attr(:default_host)[:action_url]
147
+ end
148
+
149
+ nagios_host 'server' do
150
+ options 'name' => 'server',
151
+ 'use' => 'default-host',
152
+ 'check_period' => nagios_attr(:default_host)[:check_period],
153
+ 'check_interval' => nagios_interval(nagios_attr(:default_host)[:check_interval]),
154
+ 'retry_interval' => nagios_interval(nagios_attr(:default_host)[:retry_interval]),
155
+ 'max_check_attempts' => nagios_attr(:default_host)[:max_check_attempts],
156
+ 'check_command' => nagios_attr(:default_host)[:check_command],
157
+ 'notification_interval' => nagios_interval(nagios_attr(:default_host)[:notification_interval]),
158
+ 'notification_options' => nagios_attr(:default_host)[:notification_options],
159
+ 'contact_groups' => nagios_attr(:default_contact_groups),
160
+ 'register' => 0
161
+ end
162
+
163
+ # Defaut host template
164
+ Nagios.instance.default_host = node['nagios']['host_template']
165
+
166
+ # Users
167
+ # use the users_helper.rb library to build arrays of users and contacts
168
+ nagios_users = NagiosUsers.new(node)
169
+ nagios_users.users.each do |item|
170
+ o = Nagios::Contact.create(item['id'])
171
+ o.import(item.to_hash)
172
+ o.import(item['nagios'].to_hash) unless item['nagios'].nil?
173
+ o.use = 'default-contact'
174
+ end
175
+
176
+ nagios_contactgroup 'admins' do
177
+ options 'alias' => 'Nagios Administrators',
178
+ 'members' => nagios_users.return_user_contacts
179
+ end
180
+
181
+ nagios_contactgroup 'admins-sms' do
182
+ options 'alias' => 'Sysadmin SMS',
183
+ 'members' => nagios_users.return_user_contacts
184
+ end
185
+
186
+ # Services
187
+ nagios_service 'default-service' do
188
+ options 'name' => 'default-service',
189
+ 'active_checks_enabled' => 1,
190
+ 'passive_checks_enabled' => 1,
191
+ 'parallelize_check' => 1,
192
+ 'obsess_over_service' => 1,
193
+ 'check_freshness' => 0,
194
+ 'notifications_enabled' => 1,
195
+ 'event_handler_enabled' => 1,
196
+ 'flap_detection_enabled' => nagios_boolean(nagios_attr(:default_service)[:flap_detection]),
197
+ 'process_perf_data' => nagios_boolean(nagios_attr(:default_service)[:process_perf_data]),
198
+ 'retain_status_information' => 1,
199
+ 'retain_nonstatus_information' => 1,
200
+ 'is_volatile' => 0,
201
+ 'check_period' => '24x7',
202
+ 'max_check_attempts' => nagios_attr(:default_service)[:max_check_attempts],
203
+ 'check_interval' => nagios_interval(nagios_attr(:default_service)[:check_interval]),
204
+ 'retry_interval' => nagios_interval(nagios_attr(:default_service)[:retry_interval]),
205
+ 'contact_groups' => nagios_attr(:default_contact_groups),
206
+ 'notification_options' => 'w,u,c,r',
207
+ 'notification_interval' => nagios_interval(nagios_attr(:default_service)[:notification_interval]),
208
+ 'notification_period' => '24x7',
209
+ 'register' => 0,
210
+ 'action_url' => nagios_attr(:default_service)[:action_url]
211
+ end
212
+ # Default service template
213
+ Nagios.instance.default_service = 'default-service'
214
+
215
+ # Define the log monitoring template (monitoring logs is very different)
216
+ nagios_service 'default-logfile' do
217
+ options 'name' => 'default-logfile',
218
+ 'use' => 'default-service',
219
+ 'check_period' => '24x7',
220
+ 'max_check_attempts' => 1,
221
+ 'check_interval' => nagios_interval(nagios_attr(:default_service)[:check_interval]),
222
+ 'retry_interval' => nagios_interval(nagios_attr(:default_service)[:retry_interval]),
223
+ 'contact_groups' => nagios_attr(:default_contact_groups),
224
+ 'notification_options' => 'w,u,c,r',
225
+ 'notification_period' => '24x7',
226
+ 'register' => 0,
227
+ 'is_volatile' => 1
228
+ end
229
+
230
+ nagios_service 'service-template' do
231
+ options 'name' => 'service-template',
232
+ 'max_check_attempts' => nagios_attr(:default_service)[:max_check_attempts],
233
+ 'check_interval' => nagios_interval(nagios_attr(:default_service)[:check_interval]),
234
+ 'retry_interval' => nagios_interval(nagios_attr(:default_service)[:retry_interval]),
235
+ 'notification_interval' => nagios_interval(nagios_attr(:default_service)[:notification_interval]),
236
+ 'register' => 0
237
+ end
238
+
239
+ nagios_resource 'USER1' do
240
+ options 'value' => node['nagios']['plugin_dir']
241
+ end
@@ -0,0 +1,48 @@
1
+ #
2
+ # Author:: Tim Smith <tsmith@chef.io>
3
+ # Cookbook Name:: nagios
4
+ # Recipe:: apache
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ include_recipe 'apache2'
20
+ include_recipe 'apache2::mod_rewrite'
21
+ include_recipe 'apache2::mod_php5'
22
+ include_recipe 'apache2::mod_ssl' if node['nagios']['enable_ssl']
23
+
24
+ apache_site '000-default' do
25
+ enable false
26
+ end
27
+
28
+ apache_module 'cgi'
29
+
30
+ template "#{node['apache']['dir']}/sites-available/#{node['nagios']['server']['vname']}.conf" do
31
+ source 'apache2.conf.erb'
32
+ mode '0644'
33
+ variables(
34
+ nagios_url: node['nagios']['url'],
35
+ https: node['nagios']['enable_ssl'],
36
+ ssl_cert_file: node['nagios']['ssl_cert_file'],
37
+ ssl_cert_key: node['nagios']['ssl_cert_key']
38
+ )
39
+ if File.symlink?("#{node['apache']['dir']}/sites-enabled/#{node['nagios']['server']['vname']}.conf")
40
+ notifies :reload, 'service[apache2]'
41
+ end
42
+ end
43
+
44
+ file "#{node['apache']['dir']}/conf.d/#{node['nagios']['server']['vname']}.conf" do
45
+ action :delete
46
+ end
47
+
48
+ apache_site node['nagios']['server']['vname']
@@ -0,0 +1,204 @@
1
+ #
2
+ # Author:: Joshua Sierles <joshua@37signals.com>
3
+ # Author:: Joshua Timberman <joshua@getchef.com>
4
+ # Author:: Nathan Haneysmith <nathan@getchef.com>
5
+ # Author:: Seth Chisamore <schisamo@getchef.com>
6
+ # Author:: Tim Smith <tsmith@chef.io>
7
+ # Cookbook Name:: nagios
8
+ # Recipe:: default
9
+ #
10
+ # Copyright 2009, 37signals
11
+ # Copyright 2009-2016, Chef Software, Inc.
12
+ # Copyright 2013-2014, Limelight Networks, Inc.
13
+ #
14
+ # Licensed under the Apache License, Version 2.0 (the "License");
15
+ # you may not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing, software
21
+ # distributed under the License is distributed on an "AS IS" BASIS,
22
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ # See the License for the specific language governing permissions and
24
+ # limitations under the License.
25
+
26
+ # workaround to allow for a nagios server install from source using the override attribute on debian/ubuntu (COOK-2350)
27
+ nagios_service_name = if platform_family?('debian') && node['nagios']['server']['install_method'] == 'source'
28
+ node['nagios']['server']['name']
29
+ else
30
+ node['nagios']['server']['service_name']
31
+ end
32
+
33
+ # install nagios service either from source of package
34
+ include_recipe "nagios::server_#{node['nagios']['server']['install_method']}"
35
+
36
+ # configure either Apache2 or NGINX
37
+ case node['nagios']['server']['web_server']
38
+ when 'nginx'
39
+ Chef::Log.info 'Setting up Nagios server via NGINX'
40
+ include_recipe 'nagios::nginx'
41
+ web_user = node['nginx']['user']
42
+ web_group = node['nginx']['group'] || web_user
43
+ when 'apache'
44
+ Chef::Log.info 'Setting up Nagios server via Apache2'
45
+ include_recipe 'nagios::apache'
46
+ web_user = node['apache']['user']
47
+ web_group = node['apache']['group'] || web_user
48
+ else
49
+ Chef::Log.fatal('Unknown web server option provided for Nagios server: ' \
50
+ "#{node['nagios']['server']['web_server']} provided. Allowed: 'nginx' or 'apache'")
51
+ raise 'Unknown web server option provided for Nagios server'
52
+ end
53
+
54
+ # use the users_helper.rb library to build arrays of users and contacts
55
+ nagios_users = NagiosUsers.new(node)
56
+
57
+ Chef::Log.fatal("Could not find users in the \"#{node['nagios']['users_databag']}\" databag with the \"#{node['nagios']['users_databag_group']}\"" \
58
+ ' group. Users must be defined to allow for logins to the UI. Make sure the databag exists and, if you have set the ' \
59
+ '"users_databag_group", that users in that group exist.') if nagios_users.users.empty?
60
+
61
+ # configure the appropriate authentication method for the web server
62
+ case node['nagios']['server_auth_method']
63
+ when 'openid'
64
+ if node['nagios']['server']['web_server'] == 'apache'
65
+ include_recipe 'apache2::mod_auth_openid'
66
+ else
67
+ Chef::Log.fatal('OpenID authentication for Nagios is not supported on NGINX')
68
+ Chef::Log.fatal("Set node['nagios']['server_auth_method'] attribute in your Nagios role")
69
+ raise 'OpenID authentication not supported on NGINX'
70
+ end
71
+ when 'cas'
72
+ if node['nagios']['server']['web_server'] == 'apache'
73
+ include_recipe 'apache2::mod_auth_cas'
74
+ else
75
+ Chef::Log.fatal('CAS authentication for Nagios is not supported on NGINX')
76
+ Chef::Log.fatal("Set node['nagios']['server_auth_method'] attribute in your Nagios role")
77
+ raise 'CAS authentivation not supported on NGINX'
78
+ end
79
+ when 'ldap'
80
+ if node['nagios']['server']['web_server'] == 'apache'
81
+ include_recipe 'apache2::mod_authnz_ldap'
82
+ else
83
+ Chef::Log.fatal('LDAP authentication for Nagios is not supported on NGINX')
84
+ Chef::Log.fatal("Set node['nagios']['server_auth_method'] attribute in your Nagios role")
85
+ raise 'LDAP authentication not supported on NGINX'
86
+ end
87
+ else
88
+ # setup htpasswd auth
89
+ directory node['nagios']['conf_dir']
90
+
91
+ template "#{node['nagios']['conf_dir']}/htpasswd.users" do
92
+ source 'htpasswd.users.erb'
93
+ owner node['nagios']['user']
94
+ group web_group
95
+ mode '0640'
96
+ variables(nagios_users: nagios_users.users)
97
+ end
98
+ end
99
+
100
+ # Setting all general options
101
+ unless node['nagios'].nil?
102
+ unless node['nagios']['server'].nil?
103
+ Nagios.instance.normalize_hostname = node['nagios']['server']['normalize_hostname']
104
+ end
105
+ end
106
+
107
+ Nagios.instance.host_name_attribute = node['nagios']['host_name_attribute']
108
+
109
+ # loading default configuration data
110
+ if node['nagios']['server']['load_default_config']
111
+ include_recipe 'nagios::_load_default_config'
112
+ end
113
+
114
+ # loading all databag configurations
115
+ if node['nagios']['server']['load_databag_config']
116
+ include_recipe 'nagios::_load_databag_config'
117
+ end
118
+
119
+ directory "#{node['nagios']['conf_dir']}/dist" do
120
+ owner node['nagios']['user']
121
+ group node['nagios']['group']
122
+ mode '0755'
123
+ end
124
+
125
+ directory node['nagios']['state_dir'] do
126
+ owner node['nagios']['user']
127
+ group node['nagios']['group']
128
+ mode '0751'
129
+ end
130
+
131
+ directory "#{node['nagios']['state_dir']}/rw" do
132
+ owner node['nagios']['user']
133
+ group web_group
134
+ mode '2710'
135
+ end
136
+
137
+ execute 'archive-default-nagios-object-definitions' do
138
+ command "mv #{node['nagios']['config_dir']}/*_#{node['nagios']['server']['name']}*.cfg #{node['nagios']['conf_dir']}/dist"
139
+ not_if { Dir.glob("#{node['nagios']['config_dir']}/*_#{node['nagios']['server']['name']}*.cfg").empty? }
140
+ end
141
+
142
+ directory "#{node['nagios']['conf_dir']}/certificates" do
143
+ owner web_user
144
+ group web_group
145
+ mode '0700'
146
+ end
147
+
148
+ ssl_code = "umask 077
149
+ openssl genrsa 2048 > nagios-server.key
150
+ openssl req -subj #{node['nagios']['ssl_req']} -new -x509 -nodes -sha1 -days 3650 -key nagios-server.key > nagios-server.crt
151
+ cat nagios-server.key nagios-server.crt > nagios-server.pem"
152
+
153
+ bash 'Create SSL Certificates' do
154
+ cwd "#{node['nagios']['conf_dir']}/certificates"
155
+ code ssl_code
156
+ not_if { ::File.exist?(node['nagios']['ssl_cert_file']) }
157
+ end
158
+
159
+ nagios_conf node['nagios']['server']['name'] do
160
+ config_subdir false
161
+ source 'nagios.cfg.erb'
162
+ variables(nagios_config: node['nagios']['conf'])
163
+ end
164
+
165
+ nagios_conf 'cgi' do
166
+ config_subdir false
167
+ variables(nagios_service_name: nagios_service_name)
168
+ end
169
+
170
+ # resource.cfg differs on RPM and tarball based systems
171
+ if node['platform_family'] == 'rhel' || node['platform_family'] == 'fedora'
172
+ template "#{node['nagios']['resource_dir']}/resource.cfg" do
173
+ source 'resource.cfg.erb'
174
+ owner node['nagios']['user']
175
+ group node['nagios']['group']
176
+ mode '0600'
177
+ end
178
+
179
+ directory node['nagios']['resource_dir'] do
180
+ owner 'root'
181
+ group node['nagios']['group']
182
+ mode '0755'
183
+ end
184
+ end
185
+
186
+ nagios_conf 'timeperiods'
187
+ nagios_conf 'contacts'
188
+ nagios_conf 'commands'
189
+ nagios_conf 'hosts'
190
+ nagios_conf 'hostgroups'
191
+ nagios_conf 'templates'
192
+ nagios_conf 'services'
193
+ nagios_conf 'servicegroups'
194
+ nagios_conf 'servicedependencies'
195
+
196
+ zap_directory node['nagios']['config_dir'] do
197
+ pattern '*.cfg'
198
+ end
199
+
200
+ service 'nagios' do
201
+ service_name nagios_service_name
202
+ supports status: true, restart: true, reload: true
203
+ action [:enable, :start]
204
+ end