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,265 @@
1
+ control 'base_repositories' do
2
+ title 'mu-tools cookbook'
3
+
4
+ describe directory('/tmp') do
5
+ it { should exist }
6
+ end
7
+
8
+ node = json('/tmp/chef_node.json').params
9
+ node['default']['application_attributes']['skip_recipes'] = []
10
+ if !node['default']['application_attributes']['skip_recipes'].include?('base_repositories')
11
+ case os[:family]
12
+ when "redhat"
13
+ # Workaround for EOL CentOS 5 repos
14
+ if os[:name] != "amazon" and os[:release].to_i == 5
15
+
16
+ describe file("/etc/yum.repos.d/CentOS-Base.repo") do
17
+ it { should exist }
18
+ it { should be_file }
19
+ end
20
+
21
+ describe parse_config_file('/etc/yum.repos.d/CentOS-Base.repo') do
22
+ params = {
23
+ 'CentOS-$releasever - Base':'name', 'http://vault.centos.org/5.11/os/$basearch/':'baseurl',
24
+ '1':'gpgcheck','file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5':'gpgkey'
25
+ }
26
+ params.each do |val,var|
27
+ its(var){should eq val}
28
+ end
29
+ end
30
+
31
+ end
32
+ describe file('/etc/yum.repos.d/epel.repo') do
33
+ it { should exist }
34
+ it { should be_owned_by 'root' }
35
+ it { should be_grouped_into 'root' }
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+
42
+ control 'set_mu_hostname' do
43
+ title 'mu-tools cookbook'
44
+
45
+ node = json('/tmp/chef_node.json').params
46
+ @platform = os[:name]
47
+ if !node['default']['application_attributes']['skip_recipes'].include?('set_mu_hostname')
48
+ $hostname = node['default']['name']
49
+ if !node['default']['ad']['computer_name'].nil? and !node['default']['ad']['computer_name'].empty?
50
+ $hostname = node['default']['ad']['computer_name']
51
+ end rescue NoMethodError
52
+ $ipaddress = node['default']['ipaddress']
53
+
54
+
55
+ case os[:name]
56
+ when "centos", "redhat","amazon"
57
+
58
+ describe file('/etc/sysconfig/network') do
59
+ it { should exist }
60
+ it { should be_file }
61
+ its('content'){should match /NETWORKING=yes/}
62
+ its('content'){ should match /NETWORKING_IPV6=no/n}
63
+ its('content'){should match /#{node['name']}/}
64
+ end
65
+
66
+ describe sys_info do
67
+ its('hostname') { should eq node['name'] }
68
+ end
69
+
70
+ end
71
+ end
72
+ end
73
+
74
+
75
+ control 'disable-requiretty' do
76
+ title 'mu-tools cookbook'
77
+
78
+ case os[:name]
79
+ when "centos", "redhat"
80
+
81
+ describe file('/etc/sudoers') do
82
+ it { should exist }
83
+ its('content') { should match /Defaults !requiretty/}
84
+ end
85
+ end
86
+
87
+ end
88
+
89
+
90
+ control 'set_local_fw' do
91
+ title 'mu-tools cookbook'
92
+
93
+ case os[:name]
94
+ when "centos", "redhat"
95
+ if os[:release].to_i >= 7
96
+ describe package('firewall_config') do
97
+ it { should be_installed }
98
+ end
99
+
100
+ describe service('iptables') do
101
+ it { should be_running }
102
+ end
103
+ end
104
+
105
+ if os[:release].to_i <= 6
106
+ describe iptables do
107
+ it { should have_rule('-A INPUT -i lo -j ACCEPT') }
108
+ it { should have_rule('-A OUTPUT -o lo -j ACCEPT') }
109
+ end
110
+
111
+ #### missing resource test here -- where is get_mu_master_ips
112
+
113
+ end
114
+ end
115
+ end
116
+
117
+
118
+ control 'rsyslog' do
119
+ title 'mu-tools cookbook'
120
+ node = json('/tmp/chef_node.json').params
121
+
122
+ if !node['default']['application_attributes']['skip_recipes'].include?('rsyslog')
123
+ case os[:family]
124
+ when 'redhat', 'debian'
125
+ %w(rsyslog rsyslog-gnutls).each do |p|
126
+ describe package(p) do
127
+ it { should be_installed }
128
+ end
129
+ end
130
+
131
+ describe service('rsyslog') do
132
+ it { should be_running }
133
+ it { should be_enabled }
134
+ end
135
+
136
+ if os[:family] == 'redhat'
137
+ $rsyslog_ssl_ca_path = "/etc/pki/Mu_CA.pem"
138
+ if os[:name] == 'amazon'
139
+ describe package('policycoreutils-python') do
140
+ it { should be_installed }
141
+ end
142
+ describe command("/usr/sbin/semanage port -l | grep '^syslogd_port_t.*10514'") do
143
+ its('exit_status') { should eq 0 }
144
+ end
145
+ end
146
+ elsif os[:family] == 'debian'
147
+ $rsyslog_ssl_ca_path = "/etc/ssl/Mu_CA.pem"
148
+ describe package('policycoreutils') do
149
+ it { should be_installed }
150
+ end
151
+ end
152
+
153
+ if node['name'] != 'MU-MASTER'
154
+ ### missing get_mu_master_ips
155
+
156
+ describe file('/etc/rsyslog.d/0-mu-log-client.conf') do
157
+ it { should exist }
158
+ its('content') { should match /\$LocalHostName #{node['name']}/ }
159
+ its('content') { should match /\$DefaultNetstreamDriverCAFile #{$rsyslog_ssl_ca_path}/ }
160
+ its('content') { should match /\$DefaultNetstreamDriver gtls/ }
161
+ its('content') { should match /\$ActionSendStreamDriverMode 1/ }
162
+ its('content') { should match /\$ActionSendStreamDriverAuthMode anon/}
163
+ end
164
+
165
+ describe file($rsyslog_ssl_ca_path) do
166
+ it { should exist }
167
+ it { should be_file }
168
+ end
169
+
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+
176
+
177
+ control 'nrpe' do
178
+ title 'mu-tools cookbook'
179
+
180
+ node = json('/tmp/chef_node.json').params
181
+
182
+ if !node['default']['application_attributes']['skip_recipes'].include?('nrpe')
183
+ case os[:family]
184
+ when "redhat"
185
+
186
+ ['nrpe', 'nagios-plugins-disk', 'nagios-plugins-nrpe', 'nagios-plugins-ssh'].each do |p|
187
+ describe package(p) do
188
+ it { should be_installed }
189
+ end
190
+ end
191
+
192
+ describe file('/etc/nagios/nrpe.cfg') do
193
+ it { should exist }
194
+ it { should be_file }
195
+ its('mode') { should cmp '0644' }
196
+ end
197
+
198
+ describe parse_config_file('/etc/nagios/nrpe.cfg') do
199
+ # missing master ips..........
200
+ params = {
201
+ 'log_facility': 'daemon', 'pid_file':'/var/run/nrpe/nrpe.pid', 'server_port':'5666',
202
+ 'nrpe_group':'nrpe', 'dont_blame_nrpe':'0','allow_bash_command_substitution':'0',
203
+ 'debug':'0', 'command_timeout':'60', 'connection_timeout':'300',
204
+ 'command[check_users]':'/usr/lib64/nagios/plugins/check_users -w 5 -c 10',
205
+ 'command[check_load]':'/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20',
206
+ 'command[check_zombie_procs]':'/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z',
207
+ 'command[check_total_procs]': '/usr/lib64/nagios/plugins/check_procs -w 150 -c 200',
208
+ 'command[check_disk]':'/usr/lib64/nagios/plugins/check_disk -w 15% -c 5% -X nfs -X nfs4',
209
+ 'include_dir': '/etc/nagios/nrpe.d/'
210
+ }
211
+ params.each do |var,val|
212
+ its(var){ should eq val }
213
+ end
214
+ end
215
+
216
+ describe service('nrpe') do
217
+ it { should be_running }
218
+ it { should be_enabled }
219
+ end
220
+
221
+ describe directory('/etc/nagios/nrpe.d') do
222
+ it { should exist }
223
+ its('owner') { should eq 'nrpe' }
224
+ its('group') { should eq 'nrpe' }
225
+ its('mode') { should cmp '0755' }
226
+ end
227
+
228
+ case os[:release].to_i
229
+ when 7
230
+ =begin
231
+ %w{nrpe_file.pp nrpe_file.te nrpe_check_disk.te nrpe_check_disk.pp}.each do |x|
232
+ describe file("/var/chef/cache/#{x}" do
233
+ it { should exist}
234
+ it { should be_file}
235
+ end
236
+ end
237
+
238
+ describe command('/usr/sbin/semodule -l | grep nrpe_check_disk') do
239
+ its('exit_status') { should eq 0 }
240
+ end
241
+
242
+ describe command('/usr/sbin/semodule -l | grep nrpe_file') do
243
+ its('exit_status') { should eq 0 }
244
+ end
245
+
246
+ when 6
247
+ if os[:name] != 'amazon'
248
+ describe file("/var/chef/cache/nrpe_disk.pp") do
249
+ it { should exist}
250
+ end
251
+
252
+ describe command("/usr/sbin/semodule | grep -i nrpe_disk.pp") do
253
+ its('exit_status') { should eq 0 }
254
+ end
255
+ end
256
+ =end end
257
+ end
258
+
259
+ describe service('nrpe') do
260
+ it { should be_enabled }
261
+ it { should be_running }
262
+ end
263
+ end
264
+ end
265
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends: []
@@ -0,0 +1,8 @@
1
+ name: mu-tools-test
2
+ title: InSpec Profile
3
+ maintainer: The Authors
4
+ copyright: The Authors
5
+ copyright_email: you@example.com
6
+ license: Apache-2.0
7
+ summary: An InSpec Compliance Profile
8
+ version: 0.1.0
@@ -0,0 +1,3 @@
1
+ # Example InSpec Profile
2
+
3
+ This example shows the implementation of an InSpec profile.
@@ -0,0 +1,25 @@
1
+ include_controls 'mu-tools-test'
2
+ node =json('/tmp/chef_node.json').params
3
+ control 'apache' do
4
+ title 'This will test apache2 recipe'
5
+ %w(apache2 apache2-bin apache2-data apache2-utils).each do |pack|
6
+ describe package(pack) do
7
+ it { should be_installed }
8
+ end
9
+ end
10
+
11
+ describe service('apache2') do
12
+ it { should be_installed }
13
+ it { should be_enabled }
14
+ it { should be_running }
15
+ end
16
+ end
17
+
18
+ control 'php' do
19
+ title 'This will test the php recipe'
20
+ %w(php7.0).each do |pack|
21
+ describe package(pack) do
22
+ it { should be_installed }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ # encoding: utf-8
2
+ # copyright: 2018, The Authors
3
+
4
+ title 'sample section'
5
+
6
+ # you can also use plain tests
7
+ describe file('/tmp') do
8
+ it { should be_directory }
9
+ end
10
+
11
+ # you add controls here
12
+ control 'tmp-1.0' do # A unique ID for this control
13
+ impact 0.7 # The criticality, if this control fails.
14
+ title 'Create /tmp directory' # A human-readable title
15
+ desc 'An optional description...'
16
+ describe file('/tmp') do # The actual test
17
+ it { should be_directory }
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends:
4
+ - name: mu-tools-test
5
+ resolved_source:
6
+ path: "/opt/mu/lib/test/mu-tools-test"
7
+ version_constraints: "[]"
@@ -0,0 +1,12 @@
1
+ name: simple-server-php-test
2
+ title: InSpec Profile
3
+ maintainer: The Authors
4
+ copyright: The Authors
5
+ copyright_email: you@example.com
6
+ license: Apache-2.0
7
+ summary: An InSpec Compliance Profile
8
+ version: 0.1.0
9
+ depends:
10
+ - name: mu-tools-test
11
+ path: ../mu-tools-test
12
+
@@ -0,0 +1,3 @@
1
+ # Example InSpec Profile
2
+
3
+ This example shows the implementation of an InSpec profile.
@@ -0,0 +1,188 @@
1
+
2
+ include_controls 'mu-tools-test'
3
+
4
+ control 'rails' do
5
+ title 'rails test'
6
+
7
+ node = json('/tmp/chef_node.json').params
8
+ #####################################
9
+ ### Node Attrs
10
+ #####################################
11
+ service_name = node['normal']['service_name']
12
+ chef_environment = node['default']['chef_environment']
13
+ application_dir = node['default']['dev']['rails']['apps_dir']
14
+ repo_path = 'concerto/concerto.git'
15
+ version = '2.3.5'
16
+ application_repo = "https://github.com/#{repo_path}"
17
+
18
+
19
+ ###################################
20
+ ### Tests
21
+ ###################################
22
+ %w(libpq-dev sqlite3 libsqlite3-dev libmysqlclient-dev software-properties-common libxml2-dev libmagickwand-dev make build-essential g++ git).each do |pack|
23
+ describe package(pack) do
24
+ it { should be_installed }
25
+ end
26
+ end
27
+
28
+
29
+ if os[:family] == 'debian' && os[:release].to_i == 9
30
+ describe package('runit-systemd') do
31
+ it { should be_installed }
32
+ end
33
+ end
34
+
35
+ describe package('runit') do
36
+ it { should be_installed }
37
+ end
38
+
39
+ describe processes('runsvdir') do
40
+ it { should exist }
41
+ end
42
+
43
+ describe file('/etc/service') do
44
+ it { should be_directory }
45
+ its('mode') { should cmp '0755' }
46
+ it { should be_owned_by 'root' }
47
+ it { should be_grouped_into 'root' }
48
+ end
49
+
50
+ describe command('node -v') do
51
+ its('exit_status') { should eq 0 }
52
+ end
53
+
54
+ describe command('npm -v') do
55
+ its('exit_status') { should eq 0 }
56
+ end
57
+
58
+
59
+ describe service('nginx') do
60
+ it { should be_installed }
61
+ it { should be_enabled }
62
+ it { should be_running }
63
+ end
64
+
65
+
66
+ describe package('nginx') do
67
+ it { should be_installed }
68
+ end
69
+
70
+ describe apt('http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu') do
71
+ it { should exist }
72
+ it { should be_enabled }
73
+ end
74
+
75
+ # Unicorn config
76
+ unicorn_log_dir = '/var/log/unicorn'
77
+ unicorn_log = "#{unicorn_log_dir}/unicorn.log"
78
+ unicorn_error_log = "#{unicorn_log_dir}/error.log"
79
+ # RDS config
80
+ db = node['normal']['deployment']['databases']['concerto'].first.last
81
+ db_name = db['db_name']
82
+ db_username = db['username']
83
+ db_host = db['endpoint']
84
+ db_port = db['port']
85
+ #db_password = chef_vault_item(db.vault_name, db.vault_item)[db.password_field]
86
+ default_root= "#{application_dir}/"
87
+
88
+ %w(ruby2.2 ruby2.2-dev).each do |pack|
89
+ describe package(pack) do
90
+ it { should be_installed }
91
+ end
92
+ end
93
+
94
+ describe gem('bundler', '/usr/bin/gem') do
95
+ it { should be_installed }
96
+ end
97
+
98
+ describe directory(unicorn_log_dir) do
99
+ it { should exist }
100
+ it { should be_directory }
101
+ its('owner') { should eq 'www-data' }
102
+ its('group') { should eq 'www-data' }
103
+ its('mode') { should cmp '00555' }
104
+ end
105
+
106
+ [unicorn_log, unicorn_error_log].each do |f|
107
+ describe file(f) do
108
+ it { should exist }
109
+ it { should be_file }
110
+ its('owner') { should eq 'www-data' }
111
+ its('group') { should eq 'www-data' }
112
+ end
113
+ end
114
+
115
+ describe file('/etc/nginx/sites-available/default') do
116
+ it { should exist }
117
+ it { should be_file }
118
+ its('content') { should match /proxy_pass http:\/\/127\.0\.0\.1:9000/ }
119
+ its('content') { should match /listen 80/}
120
+ end
121
+
122
+ describe directory(application_dir) do
123
+ it { should exist }
124
+ it { should be_directory }
125
+ its('owner') { should eq 'www-data' }
126
+ end
127
+
128
+ ### this is git resource really...
129
+ describe directory("#{application_dir}/rails") do
130
+ it { should exist }
131
+ it { should be_directory }
132
+ #its('owner') { should eq 'www-data' }
133
+ #its('group') { should eq 'www-data' }
134
+ end
135
+
136
+ rails_env = 'development'
137
+ database = {
138
+ 'adapter' => 'mysql2',
139
+ 'encoding' => 'utf8',
140
+ 'database' => db_name,
141
+ 'username' => db_username,
142
+ 'port' => db_port
143
+ }
144
+
145
+
146
+
147
+ describe file("#{application_dir}/rails/config/database.yml") do
148
+ it { should exist }
149
+ it { should be_file }
150
+ its('content') { should match /#{rails_env}/ }
151
+ its('content') { should match /#{db_host}/ }
152
+ end
153
+
154
+ describe file("#{application_dir}/rails/config/concerto.yml") do
155
+ it { should exist }
156
+ it { should be_file }
157
+ its('content'){should match /automatic_bundle_installation: false/}
158
+ its('content'){ should match /automatic_database_installation: false/}
159
+ its('content'){should match /compile_production_assets: true/ }
160
+ its('content'){ should match /airbrake_enabled_initially: true/}
161
+ its('content'){should match /bundle_install_options: "--path vendor\/bundle"/}
162
+ end
163
+
164
+ describe file("#{application_dir}/rails/Gemfile-plugins") do
165
+ its('content'){should_not match /gem \"concerto_simple_rss\"/ }
166
+ its('content'){should_not match /gem \"concerto_remote_video\"/ }
167
+ end
168
+
169
+ describe file('/etc/nginx/nginx.conf') do
170
+ it { should exist }
171
+ it { should be_file }
172
+ its('content'){ should match /\ #include \/etc\/nginx\/conf.d\/\*\.conf;/ }
173
+ its('content') { should match /include \/etc\/nginx\/sites-enabled\/\*;/ }
174
+ end
175
+
176
+ ## is rails running?
177
+ describe command('sudo lsof -wni tcp:9000') do
178
+ its('exit_status'){ should eq 0 }
179
+ end
180
+
181
+ describe command("curl http://#{node['normal']['ec2']['public_dns_name']}") do
182
+ its('exit_status') { should eq 0 }
183
+ its('stdout'){should_not match 'Welcome to nginx!'}
184
+ end
185
+
186
+
187
+
188
+ end ## end of control
@@ -0,0 +1,7 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends:
4
+ - name: mu-tools-test
5
+ resolved_source:
6
+ path: "/opt/mu/lib/test/mu-tools-test"
7
+ version_constraints: "[]"
@@ -0,0 +1,11 @@
1
+ name: simple-server-rails-test
2
+ title: InSpec Profile
3
+ maintainer: The Authors
4
+ copyright: The Authors
5
+ copyright_email: you@example.com
6
+ license: Apache-2.0
7
+ summary: An InSpec Compliance Profile
8
+ version: 0.1.0
9
+ depends:
10
+ - name: mu-tools-test
11
+ path: ../mu-tools-test
@@ -0,0 +1,3 @@
1
+ # Example InSpec Profile
2
+
3
+ This example shows the implementation of an InSpec profile.
@@ -0,0 +1,20 @@
1
+
2
+
3
+ include_controls 'mu-tools-test'
4
+
5
+ control 'Mu-Utility Cookbook' do
6
+ title 'windows_basics'
7
+
8
+ =begin
9
+ describe windows_feature('AWS Tools for Windows Powershell') do
10
+ it{ should be_installed }
11
+ end
12
+
13
+ describe windows_feature('Google Chrome') do
14
+ it{ should be_installed }
15
+ end
16
+ =end
17
+ describe package('7-Zip') do
18
+ it{ should be_installed }
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends:
4
+ - name: mu-tools-test
5
+ resolved_source:
6
+ path: "/opt/mu/lib/test/mu-tools-test"
7
+ version_constraints: "[]"
@@ -0,0 +1,11 @@
1
+ name: simple-windows-test
2
+ title: InSpec Profile
3
+ maintainer: The Authors
4
+ copyright: The Authors
5
+ copyright_email: you@example.com
6
+ license: Apache-2.0
7
+ summary: An InSpec Compliance Profile
8
+ version: 0.1.0
9
+ depends:
10
+ - name: mu-tools-test
11
+ path: ../mu-tools-test
@@ -0,0 +1,75 @@
1
+ #!/usr/local/ruby-current/bin/ruby
2
+
3
+ require 'thread'
4
+ require 'optimist'
5
+
6
+ $opts = Optimist::options do
7
+ banner <<-EOS
8
+ Usage:
9
+ #{$0} [-s <skipaz>] [-n <nocleanup>]
10
+ EOS
11
+ opt :skipaz, "skip an availability zone", :require => false, :type => :string
12
+ opt :nocleanup, "no cleanup on successful run"
13
+ end
14
+
15
+ def test(file, flags = "")
16
+ bok = "/opt/mu/lib/demo/#{file}"
17
+ filename = file.split('.').first+flags.gsub(/ /, "")
18
+ output = "#{Dir.home}/#{filename}.out"
19
+
20
+ puts "deploying #{bok} #{flags}; sending output to #{output}"
21
+
22
+ cmd="/opt/mu/bin/mu-deploy #{bok} #{flags}"
23
+ if $opts[:skipaz]
24
+ cmd += " -p azskip=#{$opts[:skipaz]}"
25
+ end
26
+
27
+ `#{cmd} >& #{output}`
28
+ status = $?.to_i
29
+
30
+ deploy_id = File.foreach(output).grep(/Deployment id:/)[0].scan(/\(([^\)]+)\)/).last.first
31
+ if status == 0
32
+ message = "Deployment of #{bok} #{flags} as #{deploy_id} was successful"
33
+ if !$opts[:nocleanup]
34
+ message += ", tore down #{deploy_id}"
35
+ `/opt/mu/bin/mu-cleanup -s #{deploy_id} >> #{output}`
36
+ end
37
+ else
38
+ message = "error deploying #{bok} #{flags}. See #{output} for details"
39
+ end
40
+ puts message
41
+
42
+ status
43
+ end
44
+
45
+ def main
46
+ boks = %w(simple-server-rails.yaml simple-windows.yaml simple-server.yaml dnszone.yaml cache_cluster.yaml wordpress.yaml)
47
+ successes = 0
48
+ failures = 0
49
+
50
+ work_q = Queue.new
51
+ boks.each{ |x|
52
+ work_q.push({ "bok" => x, "arg" => "-c" })
53
+ work_q.push({ "bok" => x, "arg" => "" })
54
+ }
55
+ workers = (0...4).map do
56
+ Thread.new do
57
+ begin
58
+ while job = work_q.pop(true)
59
+ status = test job["bok"], job["arg"]
60
+ if status == 0
61
+ successes += 1
62
+ else
63
+ failures += 1
64
+ end
65
+ end
66
+ rescue ThreadError
67
+ end
68
+ end
69
+ end; "ok"
70
+ workers.map(&:join); "ok"
71
+
72
+ puts "#{successes} successes, #{failures} failures"
73
+ end
74
+
75
+ main