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,197 @@
1
+ #! /usr/bin/perl -w
2
+ #
3
+ # $Id: check_mem.pl 8 2008-08-23 08:59:52Z rhomann $
4
+ #
5
+ # check_mem v1.7 plugin for nagios
6
+ #
7
+ # uses the output of `free` to find the percentage of memory used
8
+ #
9
+ # Copyright Notice: GPL
10
+ #
11
+ # History:
12
+ # v1.8 Rouven Homann - rouven.homann@cimt.de
13
+ # + added findbin patch from Duane Toler
14
+ # + added backward compatibility patch from Timour Ezeev
15
+ #
16
+ # v1.7 Ingo Lantschner - ingo AT boxbe DOT com
17
+ # + adapted for systems with no swap (avoiding divison through 0)
18
+ #
19
+ # v1.6 Cedric Temple - cedric DOT temple AT cedrictemple DOT info
20
+ # + add swap monitoring
21
+ # + if warning and critical threshold are 0, exit with OK
22
+ # + add a directive to exclude/include buffers
23
+ #
24
+ # v1.5 Rouven Homann - rouven.homann@cimt.de
25
+ # + perfomance tweak with free -mt (just one sub process started instead of 7)
26
+ # + more code cleanup
27
+ #
28
+ # v1.4 Garrett Honeycutt - gh@3gupload.com
29
+ # + Fixed PerfData output to adhere to standards and show crit/warn values
30
+ #
31
+ # v1.3 Rouven Homann - rouven.homann@cimt.de
32
+ # + Memory installed, used and free displayed in verbose mode
33
+ # + Bit Code Cleanup
34
+ #
35
+ # v1.2 Rouven Homann - rouven.homann@cimt.de
36
+ # + Bug fixed where verbose output was required (nrpe2)
37
+ # + Bug fixed where perfomance data was not displayed at verbose output
38
+ # + FindBin Module used for the nagios plugin path of the utils.pm
39
+ #
40
+ # v1.1 Rouven Homann - rouven.homann@cimt.de
41
+ # + Status Support (-c, -w)
42
+ # + Syntax Help Informations (-h)
43
+ # + Version Informations Output (-V)
44
+ # + Verbose Output (-v)
45
+ # + Better Error Code Output (as described in plugin guideline)
46
+ #
47
+ # v1.0 Garrett Honeycutt - gh@3gupload.com
48
+ # + Initial Release
49
+ #
50
+ use strict;
51
+ use FindBin;
52
+ FindBin::again();
53
+ use lib $FindBin::Bin;
54
+ use utils qw($TIMEOUT %ERRORS &print_revision &support);
55
+ use vars qw($PROGNAME $PROGVER);
56
+ use Getopt::Long;
57
+ use vars qw($opt_V $opt_h $verbose $opt_w $opt_c);
58
+
59
+ $PROGNAME = "check_mem";
60
+ $PROGVER = "1.8";
61
+
62
+ # add a directive to exclude buffers:
63
+ my $DONT_INCLUDE_BUFFERS = 0;
64
+
65
+ sub print_help ();
66
+ sub print_usage ();
67
+
68
+ Getopt::Long::Configure('bundling');
69
+ GetOptions ("V" => \$opt_V, "version" => \$opt_V,
70
+ "h" => \$opt_h, "help" => \$opt_h,
71
+ "v" => \$verbose, "verbose" => \$verbose,
72
+ "w=s" => \$opt_w, "warning=s" => \$opt_w,
73
+ "c=s" => \$opt_c, "critical=s" => \$opt_c);
74
+
75
+ if ($opt_V) {
76
+ print_revision($PROGNAME,'$Revision: '.$PROGVER.' $');
77
+ exit $ERRORS{'UNKNOWN'};
78
+ }
79
+
80
+ if ($opt_h) {
81
+ print_help();
82
+ exit $ERRORS{'UNKNOWN'};
83
+ }
84
+
85
+ print_usage() unless (($opt_c) && ($opt_w));
86
+
87
+ my ($mem_critical, $swap_critical);
88
+ my ($mem_warning, $swap_warning);
89
+ ($mem_critical, $swap_critical) = ($1,$2) if ($opt_c =~ /([0-9]+)[%]?(?:,([0-9]+)[%]?)?/);
90
+ ($mem_warning, $swap_warning) = ($1,$2) if ($opt_w =~ /([0-9]+)[%]?(?:,([0-9]+)[%]?)?/);
91
+
92
+ # Check if swap params were supplied
93
+ $swap_critical ||= 100;
94
+ $swap_warning ||= 100;
95
+
96
+ # print threshold in output message
97
+ my $mem_threshold_output = " (";
98
+ my $swap_threshold_output = " (";
99
+
100
+ if ( $mem_warning > 0 && $mem_critical > 0) {
101
+ $mem_threshold_output .= "W> $mem_warning, C> $mem_critical";
102
+ }
103
+ elsif ( $mem_warning > 0 ) {
104
+ $mem_threshold_output .= "W> $mem_warning";
105
+ }
106
+ elsif ( $mem_critical > 0 ) {
107
+ $mem_threshold_output .= "C> $mem_critical";
108
+ }
109
+
110
+ if ( $swap_warning > 0 && $swap_critical > 0) {
111
+ $swap_threshold_output .= "W> $swap_warning, C> $swap_critical";
112
+ }
113
+ elsif ( $swap_warning > 0 ) {
114
+ $swap_threshold_output .= "W> $swap_warning";
115
+ }
116
+ elsif ( $swap_critical > 0 ) {
117
+ $swap_threshold_output .= "C> $swap_critical";
118
+ }
119
+
120
+ $mem_threshold_output .= ")";
121
+ $swap_threshold_output .= ")";
122
+
123
+ my $verbose = $verbose;
124
+
125
+ my ($mem_percent, $mem_total, $mem_used, $swap_percent, $swap_total, $swap_used) = &sys_stats();
126
+ my $free_mem = $mem_total - $mem_used;
127
+ my $free_swap = $swap_total - $swap_used;
128
+
129
+ # set output message
130
+ my $output = "Memory Usage".$mem_threshold_output.": ". $mem_percent.'% <br>';
131
+ $output .= "Swap Usage".$swap_threshold_output.": ". $swap_percent.'%';
132
+
133
+ # set verbose output message
134
+ my $verbose_output = "Memory Usage:".$mem_threshold_output.": ". $mem_percent.'% '."- Total: $mem_total MB, used: $mem_used MB, free: $free_mem MB<br>";
135
+ $verbose_output .= "Swap Usage:".$swap_threshold_output.": ". $swap_percent.'% '."- Total: $swap_total MB, used: $swap_used MB, free: $free_swap MB<br>";
136
+
137
+ # set perfdata message
138
+ my $perfdata_output = "MemUsed=$mem_percent\%;$mem_warning;$mem_critical";
139
+ $perfdata_output .= " SwapUsed=$swap_percent\%;$swap_warning;$swap_critical";
140
+
141
+
142
+ # if threshold are 0, exit with OK
143
+ if ( $mem_warning == 0 ) { $mem_warning = 101 };
144
+ if ( $swap_warning == 0 ) { $swap_warning = 101 };
145
+ if ( $mem_critical == 0 ) { $mem_critical = 101 };
146
+ if ( $swap_critical == 0 ) { $swap_critical = 101 };
147
+
148
+
149
+ if ($mem_percent>$mem_critical || $swap_percent>$swap_critical) {
150
+ if ($verbose) { print "<b>CRITICAL: ".$verbose_output."</b>|".$perfdata_output."\n";}
151
+ else { print "<b>CRITICAL: ".$output."</b>|".$perfdata_output."\n";}
152
+ exit $ERRORS{'CRITICAL'};
153
+ } elsif ($mem_percent>$mem_warning || $swap_percent>$swap_warning) {
154
+ if ($verbose) { print "<b>WARNING: ".$verbose_output."</b>|".$perfdata_output."\n";}
155
+ else { print "<b>WARNING: ".$output."</b>|".$perfdata_output."\n";}
156
+ exit $ERRORS{'WARNING'};
157
+ } else {
158
+ if ($verbose) { print "OK: ".$verbose_output."|".$perfdata_output."\n";}
159
+ else { print "OK: ".$output."|".$perfdata_output."\n";}
160
+ exit $ERRORS{'OK'};
161
+ }
162
+
163
+ sub sys_stats {
164
+ my @memory = split(" ", `free -mt`);
165
+ my $mem_total = $memory[7];
166
+ my $mem_used;
167
+ if ( $DONT_INCLUDE_BUFFERS) { $mem_used = $memory[15]; }
168
+ else { $mem_used = $memory[8];}
169
+ my $swap_total = $memory[18];
170
+ my $swap_used = $memory[19];
171
+ my $mem_percent = ($mem_used / $mem_total) * 100;
172
+ my $swap_percent;
173
+ if ($swap_total == 0) {
174
+ $swap_percent = 0;
175
+ } else {
176
+ $swap_percent = ($swap_used / $swap_total) * 100;
177
+ }
178
+ return (sprintf("%.0f",$mem_percent),$mem_total,$mem_used, sprintf("%.0f",$swap_percent),$swap_total,$swap_used);
179
+ }
180
+
181
+ sub print_usage () {
182
+ print "Usage: $PROGNAME -w <warn> -c <crit> [-v] [-h]\n";
183
+ exit $ERRORS{'UNKNOWN'} unless ($opt_h);
184
+ }
185
+
186
+ sub print_help () {
187
+ print_revision($PROGNAME,'$Revision: '.$PROGVER.' $');
188
+ print "Copyright (c) 2005 Garrett Honeycutt/Rouven Homann/Cedric Temple\n";
189
+ print "\n";
190
+ print_usage();
191
+ print "\n";
192
+ print "-w <MemoryWarn>,<SwapWarn> = Memory and Swap usage to activate a warning message (eg: -w 90,25 ) .\n";
193
+ print "-c <MemoryCrit>,<SwapCrit> = Memory and Swap usage to activate a critical message (eg: -c 95,50 ).\n";
194
+ print "-v = Verbose Output.\n";
195
+ print "-h = This screen.\n\n";
196
+ support();
197
+ }
@@ -0,0 +1,13 @@
1
+
2
+ module dirsrv_admin 1.0;
3
+
4
+ require {
5
+ type httpd_t;
6
+ type unreserved_port_t;
7
+ class tcp_socket name_bind;
8
+ }
9
+
10
+ #============= httpd_t ==============
11
+
12
+ #!!!! This avc can be allowed using the boolean 'nis_enabled'
13
+ allow httpd_t unreserved_port_t:tcp_socket name_bind;
@@ -0,0 +1,51 @@
1
+ module nagios_selinux 1.0;
2
+
3
+ require {
4
+ type nagios_t;
5
+ type usr_t;
6
+ type nagios_log_t;
7
+ type httpd_t;
8
+ type httpd_sys_script_t;
9
+ type httpd_sys_content_t;
10
+ type httpd_sys_script_exec_t;
11
+ type nagios_exec_t;
12
+ type initrc_var_run_t;
13
+ type port_t;
14
+ type ssh_exec_t;
15
+ class capability chown;
16
+ class dir { search read write remove_name add_name };
17
+ class file { create open execute_no_trans read append write getattr setattr lock unlink rename execute };
18
+ class fifo_file { read open getattr write create };
19
+ class sock_file { create write unlink };
20
+ class tcp_socket { name_bind };
21
+ class capability { chown };
22
+ }
23
+
24
+ allow httpd_t nagios_log_t:dir search;
25
+ allow httpd_t nagios_log_t:file { read open };
26
+ allow httpd_t nagios_log_t:fifo_file { read open getattr write };
27
+ allow httpd_t httpd_sys_script_exec_t:fifo_file { read open getattr write };
28
+ allow nagios_t nagios_exec_t:file execute_no_trans;
29
+ allow httpd_sys_script_t nagios_log_t:dir search;
30
+ allow httpd_sys_script_t nagios_log_t:file { read open };
31
+ allow httpd_sys_script_t nagios_log_t:fifo_file { read open getattr write };
32
+ allow httpd_sys_script_t httpd_sys_script_exec_t:fifo_file { read open getattr write };
33
+ allow nagios_t nagios_exec_t:file execute_no_trans;
34
+ allow nagios_t ssh_exec_t:file { getattr execute read open execute_no_trans };
35
+ allow nagios_t self:capability chown;
36
+ allow nagios_t httpd_sys_content_t:dir { read search write remove_name add_name };
37
+ allow nagios_t httpd_sys_script_exec_t:dir { read search write remove_name add_name };
38
+ allow nagios_t nagios_log_t:dir { read search write remove_name add_name };
39
+ allow nagios_t httpd_sys_content_t:file { open read append getattr setattr create write rename };
40
+ allow nagios_t httpd_sys_script_exec_t:file { open read append getattr setattr create write rename };
41
+ allow nagios_t nagios_log_t:file { open read append getattr setattr create write rename };
42
+ allow nagios_t httpd_sys_content_t:sock_file { unlink create write };
43
+ allow nagios_t httpd_sys_script_exec_t:sock_file { unlink create write };
44
+ allow nagios_t nagios_log_t:sock_file { unlink create write };
45
+ allow nagios_t initrc_var_run_t:file { read write open lock unlink };
46
+ allow nagios_t port_t:tcp_socket { name_bind };
47
+ allow nagios_t nagios_t:capability { chown };
48
+ allow nagios_t httpd_sys_script_exec_t:fifo_file { read open getattr write create };
49
+ allow nagios_t nagios_log_t:fifo_file { read open getattr write create };
50
+ allow nagios_t nagios_log_t:fifo_file { read open getattr write create };
51
+ allow nagios_t usr_t:file { read open getattr execute execute_no_trans append };
@@ -0,0 +1,17 @@
1
+ module nagios_selinux_7 1.0;
2
+
3
+ require {
4
+ type nagios_t;
5
+ type nagios_etc_t;
6
+ type nrpe_t;
7
+ type httpd_sys_script_t;
8
+ type httpd_sys_content_t;
9
+ class unix_stream_socket connectto;
10
+ class file { read open getattr };
11
+ class dir { search read };
12
+ }
13
+
14
+ allow httpd_sys_script_t nagios_etc_t:file { read open getattr } ;
15
+ allow nagios_t self:unix_stream_socket connectto;
16
+ allow nrpe_t httpd_sys_content_t:dir { read search };
17
+ allow nrpe_t httpd_sys_content_t:file { read open getattr };
@@ -0,0 +1,18 @@
1
+ #%PAM-1.0
2
+ auth required pam_sepermit.so
3
+ auth include password-auth
4
+ auth sufficient pam_ldap.so use_first_pass
5
+ account required pam_nologin.so
6
+ account include password-auth
7
+ account [default=bad success=ok user_unknown=ignore] pam_ldap.so
8
+ password include password-auth
9
+ password sufficient pam_ldap.so use_authtok
10
+ # pam_selinux.so close should be the first session rule
11
+ session required pam_selinux.so close
12
+ session required pam_loginuid.so
13
+ # pam_selinux.so open should only be followed by sessions to be executed in the user context
14
+ session required pam_selinux.so open env_params
15
+ session optional pam_keyinit.so force revoke
16
+ session include password-auth
17
+ session optional pam_umask.so umask=0077
18
+ session optional pam_ldap.so
@@ -0,0 +1,18 @@
1
+ dn: cn=encryption,cn=config
2
+ changetype: modify
3
+ replace: nsSSL3
4
+ nsSSL3: off
5
+ -
6
+ replace: nsSSLClientAuth
7
+ nsSSLClientAuth: allowed
8
+ -
9
+ add: nsSSL3Ciphers
10
+ nsSSL3Ciphers: +all
11
+
12
+ dn: cn=config
13
+ changetype: modify
14
+ add: nsslapd-security
15
+ nsslapd-security: on
16
+ -
17
+ replace: nsslapd-ssl-check-hostname
18
+ nsslapd-ssl-check-hostname: off
@@ -0,0 +1,10 @@
1
+
2
+ module syslogd_oddjobd 1.0;
3
+
4
+ require {
5
+ type oddjob_t;
6
+ class capability dac_override;
7
+ }
8
+
9
+ #============= oddjob_t ==============
10
+ allow oddjob_t self:capability dac_override;
@@ -0,0 +1,19 @@
1
+ set columns=80
2
+ set ts=2
3
+ syntax on
4
+ set shiftwidth=2
5
+ set tabstop=2
6
+ set shiftwidth=2
7
+ set expandtab
8
+ set softtabstop=2
9
+ set smarttab
10
+ set paste
11
+ set autoindent
12
+ set smartindent
13
+ set cinwords=if,else,while,do,for,switch,def,class,elif,try,except,finally
14
+ " fix the syntax highlighting to avoid dark blue comments on a black bg
15
+ hi Comment term=bold ctermfg=DarkCyan guifg=#80a0ff
16
+ " and to get PHP right when working on Drupal
17
+ au BufReadPost *.module set syntax=php
18
+ au BufReadPost *.install set syntax=php
19
+ set viminfo='10,<500,s150,h
@@ -0,0 +1,29 @@
1
+ # Copyright:: Copyright (c) 2014 eGlobalTech, Inc., all rights reserved
2
+ #
3
+ # Licensed under the BSD-3 license (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License in the root of the project or at
6
+ #
7
+ # http://egt-labs.com/mu/LICENSE.html
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # This library deals with volume creation and mounting
16
+
17
+
18
+ # Sets the $MU_CFG hash
19
+ if ENV.include?('MU_LIBDIR')
20
+ require "#{ENV['MU_LIBDIR']}/modules/mu-load-config.rb"
21
+ elsif ENV.include?('MU_INSTALLDIR')
22
+ require "#{ENV['MU_INSTALLDIR']}/lib/modules/mu-load-config.rb"
23
+ elsif File.readable?("/opt/mu/lib/modules/mu-load-config.rb")
24
+ ENV['MU_INSTALLDIR'] = "/opt/mu"
25
+ ENV['MU_LIBDIR'] = "/opt/mu/lib"
26
+ require "/opt/mu/lib/modules/mu-load-config.rb"
27
+ end
28
+
29
+ require "mu"
@@ -0,0 +1,30 @@
1
+ name 'mu-master'
2
+ maintainer 'Mu'
3
+ maintainer_email 'mu-developers@googlegroups.com'
4
+ license 'BSD-3-Clause'
5
+ description 'Installs/Configures mu-master'
6
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
+ source_url 'https://github.com/cloudamatic/mu'
8
+ issues_url 'https://github.com/cloudamatic/mu/issues'
9
+ chef_version '>= 12.1' if respond_to?(:chef_version)
10
+ version '0.9.0'
11
+
12
+ %w( centos ).each do |os|
13
+ supports os
14
+ end
15
+
16
+ depends 'nagios'
17
+ depends 'nrpe', '~> 2.0.3'
18
+ depends 'mu-utility'
19
+ depends 'mu-tools'
20
+ depends 'mu-activedirectory'
21
+ depends 's3fs', '~> 3.0.1'
22
+ depends 'postfix', '~> 5.3.1'
23
+ depends 'bind', '~> 2.2.0'
24
+ depends 'bind9-ng', '~> 0.1.0'
25
+ depends 'mu-firewall'
26
+ depends 'vault-cluster', '~> 2.1.0'
27
+ depends 'consul-cluster', '~> 2.0.0'
28
+ depends 'hostsfile', '~> 3.0.1'
29
+ depends 'chef-vault', '~> 3.1.1'
30
+ depends 'apache2', '< 4.0'
@@ -0,0 +1,41 @@
1
+ # Cookbook Name:: mu-master
2
+ # Provider:: mu_user
3
+ #
4
+ # Copyright:: Copyright (c) 2017 eGlobalTech, Inc., all rights reserved
5
+ #
6
+ # Licensed under the BSD-3 license (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License in the root of the project or at
9
+ #
10
+ # http://egt-labs.com/mu/LICENSE.html
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
+ require 'mu'
20
+
21
+ action :add do
22
+ allusers = MU::Master.listUsers
23
+ password = nil
24
+ if !allusers.has_key?(new_resource.username)
25
+ password = new_resource.password || MU.generateWindowsPassword
26
+ end
27
+ new_resource.admin ||= false
28
+ ::MU::Master.manageUser(
29
+ new_resource.username,
30
+ name: new_resource.realname,
31
+ password: password,
32
+ email: new_resource.email,
33
+ admin: new_resource.admin,
34
+ orgs: new_resource.orgs,
35
+ remove_orgs: new_resource.remove_orgs
36
+ )
37
+ end
38
+
39
+ action :delete do
40
+ ::MU::Master.deleteUser(new_resource.username)
41
+ end
@@ -0,0 +1,164 @@
1
+ #
2
+ # Cookbook Name:: mu-master
3
+ # Recipe:: 389ds
4
+ #
5
+ # Copyright:: Copyright (c) 2017 eGlobalTech, Inc., all rights reserved
6
+ #
7
+ # Licensed under the BSD-3 license (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License in the root of the project or at
10
+ #
11
+ # http://egt-labs.com/mu/LICENSE.html
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+
19
+ include_recipe 'mu-master::firewall-holes'
20
+
21
+ package ["389-ds", "389-ds-console"]
22
+
23
+ include_recipe 'chef-vault'
24
+
25
+ # How to completely undo all of this: service dirsrv stop ; pkill ns-slapd ; yum erase -y 389-ds 389-ds-console 389-ds-base 389-admin 389-adminutil 389-console 389-ds-base-libs; rm -rf /etc/dirsrv /var/lib/dirsrv /var/log/dirsrv /var/lock/dirsrv /var/run/dirsrv /etc/sysconfig/dirsrv* /usr/lib64/dirsrv /usr/share/dirsrv; knife data bag delete -y mu_ldap
26
+
27
+ # Retrieve credentials we need to do LDAP things. Generate from scratch if they
28
+ # haven't been provided.
29
+ $CREDS = {
30
+ "bind_creds" => {
31
+ "user" => "CN=mu_bind_creds,#{$MU_CFG["ldap"]['user_ou']}"
32
+ },
33
+ "join_creds" => {
34
+ "user" => "CN=mu_join_creds,#{$MU_CFG["ldap"]['user_ou']}"
35
+ },
36
+ "cfg_directory_adm" => {
37
+ "user" => "admin"
38
+ },
39
+ "root_dn_user" => {
40
+ "user" => "CN=root_dn_user"
41
+ }
42
+ }
43
+
44
+ service_name = "dirsrv"
45
+ if node['platform_version'].to_i >= 7
46
+ service_name = service_name + "@" + $MU_CFG["hostname"]
47
+ end
48
+
49
+ directory "/root/389ds.tmp" do
50
+ recursive true
51
+ mode 0700
52
+ end
53
+ $CREDS.each_pair { |creds, cfg|
54
+ user = pw = data = nil
55
+ if $MU_CFG["ldap"].has_key?(creds)
56
+ data = chef_vault_item($MU_CFG['ldap'][creds]['vault'], $MU_CFG['ldap'][creds]['item'])
57
+ user = data[$MU_CFG["ldap"][creds]["username_field"]]
58
+ pw = data[$MU_CFG["ldap"][creds]["password_field"]]
59
+ else
60
+ data = chef_vault_item("mu_ldap", creds)
61
+ user = data["username"]
62
+ pw = data["password"]
63
+ end
64
+ $CREDS[creds]['user'] = user if !$CREDS[creds]['user']
65
+ $CREDS[creds]['pw'] = pw if !$CREDS[creds]['pw']
66
+ }
67
+ directory "/var/log/dirsrv/admin-serv" do
68
+ user "nobody"
69
+ group "nobody"
70
+ mode 0770
71
+ recursive true
72
+ end
73
+
74
+ # %x{/usr/sbin/setenforce 0}
75
+ execute "initialize 389 Directory Services" do
76
+ command "/usr/sbin/setup-ds-admin.pl -s -f /root/389ds.tmp/389-directory-setup.inf --continue --debug #{Dir.exists?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") ? "--update" : ""}"
77
+ action :nothing
78
+ end
79
+
80
+ template "/root/389ds.tmp/389-directory-setup.inf"do
81
+ source "389-directory-setup.inf.erb"
82
+ variables :hostname => $MU_CFG["hostname"],
83
+ :address => $MU_CFG["public_address"].match(/^\d+\.\d+\.\d+\.\d+$/) ? "localhost" : $MU_CFG["public_address"],
84
+ :domain => $MU_CFG["ldap"]["domain_name"],
85
+ :domain_dn => $MU_CFG["ldap"]["domain_name"].split(/\./).map{ |x| "DC=#{x}" }.join(","),
86
+ :creds => $CREDS
87
+ not_if { ::Dir.exists?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") }
88
+ notifies :run, "execute[initialize 389 Directory Services]", :immediately
89
+ end
90
+
91
+ service service_name do
92
+ action [:enable, :start]
93
+ end
94
+
95
+ if platform_family?("rhel") and node['platform_version'].to_i >= 7
96
+ cookbook_file "dirsrv_admin.pp" do
97
+ path "#{Chef::Config[:file_cache_path]}/dirsrv_admin.pp"
98
+ end
99
+
100
+ execute "Add dirsrv-admin to SELinux allow list" do
101
+ command "/usr/sbin/semodule -i dirsrv_admin.pp"
102
+ cwd Chef::Config[:file_cache_path]
103
+ not_if "/usr/sbin/semodule -l | grep dirsrv_admin"
104
+ end
105
+ end
106
+
107
+ #service "dirsrv-admin" do
108
+ # action [:enable, :start]
109
+ #end
110
+
111
+ chef_gem "expect" do
112
+ compile_time true
113
+ end
114
+ file "/root/389ds.tmp/blank" do
115
+ content ""
116
+ action :nothing
117
+ end
118
+ execute "389ds cert util" do
119
+ if $MU_CFG['ssl'] and $MU_CFG['ssl']['chain']
120
+ command "/usr/bin/certutil -d /etc/dirsrv/slapd-#{$MU_CFG["hostname"]} -A -n \"Mu Master CA\" -t CT,, -a -i #{$MU_CFG['ssl']['chain']}"
121
+ else
122
+ command "/usr/bin/certutil -d /etc/dirsrv/slapd-#{$MU_CFG["hostname"]} -A -n \"Mu Master CA\" -t CT,, -a -i /opt/mu/var/ssl/Mu_CA.pem"
123
+ end
124
+ action :nothing
125
+ notifies :restart, "service[#{service_name}]", :delayed
126
+ end
127
+
128
+ # Why is this utility interactive-only? So much hate.
129
+ ruby_block "import SSL certificates for 389ds" do
130
+ block do
131
+ certimportcmd = "/usr/bin/pk12util -i /opt/mu/var/ssl/ldap.p12 -d /etc/dirsrv/slapd-#{$MU_CFG["hostname"]} -w /root/389ds.tmp/blank -W \"\""
132
+ require 'pty'
133
+ require 'expect'
134
+ PTY.spawn(certimportcmd) { |r, w, pid|
135
+ begin
136
+ r.expect("Enter new password:") do
137
+ w.puts
138
+ end
139
+ r.expect("Re-enter password:") do
140
+ w.puts
141
+ end
142
+ rescue Errno::EIO
143
+ break
144
+ end
145
+ }
146
+
147
+ end
148
+ notifies :create, "file[/root/389ds.tmp/blank]", :before
149
+ notifies :run, "execute[389ds cert util]", :immediately
150
+ end
151
+
152
+
153
+ {"ssl_enable.ldif" => "nsslapd-security: on", "addRSA.ldif" => "nsSSLActivation: on"}.each_pair { |ldif, guardstr|
154
+ cookbook_file "/root/389ds.tmp/#{ldif}" do
155
+ source ldif
156
+ end
157
+
158
+ execute "/usr/bin/ldapmodify -x -D #{$CREDS["root_dn_user"]['user']} -w #{$CREDS["root_dn_user"]['pw']} -f /root/389ds.tmp/#{ldif}" do
159
+ notifies :restart, "service[#{service_name}]", :delayed
160
+ not_if "grep '#{guardstr}' /etc/dirsrv/slapd-#{$MU_CFG['hostname']}/dse.ldif"
161
+ end
162
+ }
163
+
164
+ # %x{/usr/sbin/setenforce 1}