cloud-mu 1.9.0.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
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 @@
1
+ modules/html.erb
@@ -0,0 +1,41 @@
1
+ ---
2
+ appname: superBoK
3
+ parameters:
4
+ - name: complexity
5
+ default: complex
6
+ - name: vpc_name
7
+ required: false
8
+ - name: instance_type
9
+ default: t2.medium
10
+ - name: db_size
11
+ default: db.t2.small
12
+ - name: vpc_name
13
+ default: superBoK_VPC
14
+ - name: logs_name
15
+ default: superBoK_logs
16
+ - name: queues_name
17
+ default: superBoK_queues
18
+ - name: server_pools_name
19
+ default: superBoK_ServerPool
20
+
21
+ <% $complexity = 'complex' %>
22
+
23
+ vpcs:
24
+ -
25
+ <%= include("../mu/config/vpc.yml") %>
26
+ logs:
27
+ -
28
+ <%= include("../mu/config/log.yml") %>
29
+ servers:
30
+ -
31
+ <%= include("../mu/config/server.yml") %>
32
+ server_pools:
33
+ -
34
+ <%= include("../mu/config/server_pool.yml") %>
35
+ search_domains:
36
+ -
37
+ <%= include("../mu/config/search_domain.yml") %>
38
+
39
+ databases:
40
+ -
41
+ <%= include("../mu/config/database.yml") %>
@@ -0,0 +1,40 @@
1
+ ---
2
+ appname: superBoK
3
+ parameters:
4
+ - name: complexity
5
+ default: complex
6
+ - name: vpc_name
7
+ required: false
8
+ - name: instance_type
9
+ default: t2.medium
10
+ - name: db_size
11
+ default: db.t2.small
12
+ - name: vpc_name
13
+ default: superBoK_VPC
14
+ - name: logs_name
15
+ default: superBoK_logs
16
+ - name: queues_name
17
+ default: superBoK_queues
18
+ - name: server_pools_name
19
+ default: superBoK_ServerPool
20
+
21
+ <% $complexity = 'complex' %>
22
+
23
+ vpcs:
24
+ -
25
+ <%= include("../mu/config/vpc.yml") %>
26
+ logs:
27
+ -
28
+ <%= include("../mu/config/log.yml") %>
29
+ servers:
30
+ -
31
+ <%= include("../mu/config/server.yml") %>
32
+ server_pools:
33
+ -
34
+ <%= include("../mu/config/server_pool.yml") %>
35
+ search_domains:
36
+ -
37
+ <%= include("../mu/config/search_domain.yml") %>
38
+ databases:
39
+ -
40
+ <%= include("../mu/config/database.yml") %>
data/mu.gemspec ADDED
@@ -0,0 +1,62 @@
1
+ whereami = File.realpath(File.expand_path(File.dirname(__FILE__)))
2
+
3
+ def self.build_file_list(dir, strip = dir)
4
+ list = []
5
+ Dir.entries(dir).each { |entry|
6
+ next if entry.match(/^\.|.*?\.gem$/)
7
+ next if %{. .. .git Gemfile.lock}.include?(entry)
8
+ path = dir+"/"+entry
9
+ if File.directory?(path)
10
+ list.concat(build_file_list(path, strip))
11
+ else
12
+ list << path.sub(/^#{Regexp.quote(strip)}\//, "")
13
+ end
14
+ }
15
+ list
16
+ end
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = 'cloud-mu'
20
+ s.version = '1.9.0-beta'
21
+ s.date = '2018-12-11'
22
+ s.require_paths = ['modules']
23
+ s.required_ruby_version = '>= 2.4'
24
+ s.summary = "The eGTLabs Mu toolkit for unified cloud deployments"
25
+ s.description = <<-EOF
26
+ The eGTLabs Mu toolkit for unified cloud deployments. This gem contains a minimal version of Mu with cloud provider APIs, and will generate a sample configuration the first time it is invoked.
27
+
28
+ It will attempt to autodetect when it's being run in a virtual machine on a known cloud provider and activate the appropriate API with machine-based credentials. Installing this gem on an Amazon Web Service instance, for example, should automatically enable the MU::Cloud::AWS layer and attempt to use the machine's IAM Profile to communicate with the AWS API.
29
+
30
+ require 'mu'
31
+
32
+
33
+ EOF
34
+ s.authors = ["John Stange", "Robert Patt-Corner", "Ryan Bolyard", "Clara Bridges", "Zach Rowe"]
35
+ s.email = 'eGTLabs@eglobaltech.com'
36
+ s.files = build_file_list(whereami)
37
+ s.executables = Dir.entries(whereami+"/bin")
38
+ s.homepage =
39
+ 'https://github.com/cloudamatic/mu'
40
+ s.license = 'BSD-3-Clause-Attribution'
41
+ s.add_runtime_dependency 'erubis', "~> 2.7"
42
+ s.add_runtime_dependency 'inifile', "~> 3.0"
43
+ s.add_runtime_dependency 'bundler', "~> 1.17"
44
+ s.add_runtime_dependency 'yard', "~> 0.9"
45
+ s.add_runtime_dependency 'ruby-graphviz', "~> 1.2"
46
+ s.add_runtime_dependency "aws-sdk-core", "< 3"
47
+ s.add_runtime_dependency 'chronic_duration', "~> 0.10"
48
+ s.add_runtime_dependency 'simple-password-gen', "~> 0.1"
49
+ s.add_runtime_dependency 'optimist', "~> 3.0"
50
+ s.add_runtime_dependency 'json-schema', "~> 2.8"
51
+ s.add_runtime_dependency 'colorize', "~> 0.8"
52
+ s.add_runtime_dependency 'color', "~> 1.8"
53
+ s.add_runtime_dependency 'netaddr', '~> 2.0'
54
+ s.add_runtime_dependency 'nokogiri', "~> 1.8"
55
+ s.add_runtime_dependency 'solve', '~> 4.0'
56
+ s.add_runtime_dependency 'net-ldap', "~> 0.16"
57
+ s.add_runtime_dependency 'googleauth', "~> 0.6"
58
+ s.add_runtime_dependency 'google-api-client', "~> 0.25"
59
+ s.add_runtime_dependency 'rubocop', '~> 0.58'
60
+ s.add_runtime_dependency 'addressable', '~> 2.5'
61
+ s.add_runtime_dependency 'slack-notifier', "~> 2.3"
62
+ end
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "demo-dbservice-configure",
3
+ "default_attributes": {
4
+ },
5
+ "json_class": "Chef::Role",
6
+ "run_list": [
7
+ "recipe[mu-utility::make]",
8
+ "recipe[mu-utility::wget]",
9
+ "recipe[mu-utility::git]",
10
+ "recipe[mu-utility::mutt]",
11
+ "recipe[mu-utility::zip]",
12
+ "recipe[mu-utility::php]",
13
+ "recipe[mu-utility::apache]"
14
+ ],
15
+ "description": "Platform enablers for dbservice environments",
16
+ "chef_type": "role",
17
+ "override_attributes": {
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "demo-portal-configure",
3
+ "default_attributes": {
4
+ },
5
+ "json_class": "Chef::Role",
6
+ "run_list": [
7
+ "recipe[mu-utility::make]",
8
+ "recipe[mu-utility::wget]",
9
+ "recipe[mu-utility::git]",
10
+ "recipe[mu-utility::mutt]",
11
+ "recipe[mu-utility::zip]",
12
+ "recipe[mu-utility::php]",
13
+ "recipe[mu-utility::apache]"
14
+ ],
15
+ "description": "Platform enablers for portal environments",
16
+ "chef_type": "role",
17
+ "override_attributes": {
18
+ }
19
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "mu-master-jenkins",
3
+ "description": "Role for a Jenkins instance running on a mu master (only)",
4
+ "json_class": "Chef::Role",
5
+ "default_attributes": {
6
+ "jenkins_port_external": 9443,
7
+ "jenkins_port_internal": 8080
8
+ },
9
+ "override_attributes": {
10
+ "jenkins": {
11
+ "master": {
12
+ "home": "/home/jenkins",
13
+ "jvm_options":"-Djenkins.install.runSetupWizard=false -Xbootclasspath/p:/home/jenkins/alpn-boot-8.1.11.v20170118.jar"
14
+ }
15
+ }
16
+ },
17
+ "chef_type": "role",
18
+ "run_list": [
19
+ "recipe[java]",
20
+ "recipe[jenkins::master]",
21
+ "recipe[mu-jenkins]"
22
+ ],
23
+ "env_run_lists": {}
24
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "mu-master-nagios-only",
3
+ "default_attributes": {},
4
+ "json_class": "Chef::Role",
5
+ "run_list": [
6
+ "role[mu-master]"
7
+ ],
8
+ "description": "Run List for Mu master servers",
9
+ "chef_type": "role",
10
+ "override_attributes":{
11
+ "update_nagios_only":true
12
+ }
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "mu-master",
3
+ "default_attributes": {},
4
+ "json_class": "Chef::Role",
5
+ "run_list": [
6
+ "recipe[mu-tools::base_repositories]",
7
+ "recipe[mu-tools::nrpe]",
8
+ "recipe[mu-master]"
9
+ ],
10
+ "description": "Run List for Mu master servers",
11
+ "chef_type": "role"
12
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "mu-node",
3
+ "default_attributes": {
4
+ },
5
+ "json_class": "Chef::Role",
6
+ "run_list": [
7
+ "recipe[mu-tools::base_repositories]",
8
+ "recipe[mu-tools::set_mu_hostname]",
9
+ "recipe[mu-tools::add_admin_ssh_keys]",
10
+ "recipe[mu-tools::disable-requiretty]",
11
+ "recipe[mu-tools::set_local_fw]",
12
+ "recipe[mu-tools::rsyslog]",
13
+ "recipe[mu-tools::nrpe]"
14
+ ],
15
+ "description": "Run List for Mu client nodes",
16
+ "chef_type": "role",
17
+ "override_attributes": {
18
+ }
19
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "mu-splunk-server",
3
+ "default_attributes": {
4
+ },
5
+ "json_class": "Chef::Role",
6
+ "run_list": [
7
+ "recipe[mu-tools::splunk-server]"
8
+ ],
9
+ "description": "Run List for Mu Splunk servers",
10
+ "chef_type": "role",
11
+ "override_attributes": {
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "mu-splunk",
3
+ "default_attributes": {
4
+ },
5
+ "json_class": "Chef::Role",
6
+ "run_list": [
7
+ "recipe[mu-tools::splunk-client]"
8
+ ],
9
+ "description": "Run List for Mu Splunk clients",
10
+ "chef_type": "role",
11
+ "override_attributes": {
12
+ }
13
+ }
data/test/clean_up.py ADDED
@@ -0,0 +1,25 @@
1
+ #!/bin/python
2
+
3
+ import os
4
+ import json
5
+ import subprocess
6
+
7
+ deploy_dirs = '/opt/mu/var/deployments'
8
+ current_deploys = os.listdir(deploy_dirs)
9
+
10
+
11
+ def clean_all(list_of_deploy_ids):
12
+ ## loop over current deploys and terminate them
13
+ for each in list_of_deploy_ids:
14
+ os.system('/opt/mu/bin/mu-cleanup %s' % each)
15
+
16
+
17
+
18
+ ### sometimes, there is a weird file 'unique_ids' so delete if needed
19
+ if os.path.isfile(deploy_dirs+'/unique_ids'):
20
+ os.system('rm -f %s/unique_ids' % deploy_dirs)
21
+
22
+ clean_all(current_deploys)
23
+ print ('**'*20)
24
+ print ('INFO: Cleanup up %s '% current_deploys)
25
+ print ('**'*20)
@@ -0,0 +1,3 @@
1
+ # Example InSpec Profile
2
+
3
+ This example shows the implementation of an InSpec profile.
@@ -0,0 +1,84 @@
1
+ require 'yaml'
2
+
3
+ include_controls 'mu-tools-test'
4
+
5
+ control 'flask' do
6
+ title 'flask.rb'
7
+
8
+ ### get the attrs json
9
+ node = json('/tmp/chef_node.json').params
10
+
11
+ ### test the attr i guess
12
+ service_name = node['normal']['service_name']
13
+ application_dir = node['default'][node['chef_environment']]['flask']['apps_dir']
14
+ virtual_environment = "#{application_dir}/envs/demo"
15
+
16
+
17
+ %w(python nginx).each do |pack|
18
+ describe package(pack) do
19
+ it { should be_installed }
20
+ end
21
+ end
22
+
23
+ describe service('nginx') do
24
+ it { should be_running }
25
+ end
26
+
27
+ directories = virtual_environment.split('/')
28
+ (0..directories.size).each do |i|
29
+ directory = directories.slice(0..i).join '/'
30
+ next if directory.empty?
31
+
32
+ describe directory(directory) do
33
+ it { should exist }
34
+ it { should_not be_file }
35
+ its('mode') { should cmp '00644' }
36
+ its('owner') { should eq 'root' }
37
+ its('group') { should eq 'root' }
38
+ end
39
+ end
40
+
41
+
42
+ describe file("#{virtual_environment}/demo.py") do
43
+ it { should exist }
44
+ it { should be_file }
45
+ its('content') { should match /"Hello World!"/ }
46
+ end
47
+
48
+ describe file('/etc/nginx/sites-available/default') do
49
+ it { should exist }
50
+ it { should be_file }
51
+ its('content') { should match /proxy_pass http:\/\/127\.0\.0\.1:9000;/ }
52
+ end
53
+
54
+ describe file('/etc/ld.so.conf') do
55
+ it { should exist }
56
+ it { should be_file }
57
+ its('content') { should match /\/opt\/rh\/python27\/root\/usr\/lib64\// }
58
+ end
59
+
60
+ %w(gunicorn flask).each do |pip_pack|
61
+ describe file("#{virtual_environment}/bin/#{pip_pack}") do
62
+ it { should exist }
63
+ end
64
+ end
65
+
66
+ describe user('www-data') do
67
+ it { should exist }
68
+ end
69
+
70
+ describe file('/etc/gunicorn/demo.py') do
71
+ it { should be_file}
72
+ it { should exist }
73
+ its('owner') { should eq 'www-data'}
74
+ its('group') { should eq 'www-data'}
75
+ its('content') { should match /127.0.0.1:9000/ }
76
+ end
77
+
78
+ describe command("curl localhost:9000") do
79
+ its('exit_status') { should eq 0 }
80
+ its('stdout') { should eq "Hello World!" }
81
+ end
82
+
83
+ end ## end control
84
+
@@ -0,0 +1,7 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends:
4
+ - name: mu-tools-test
5
+ resolved_source:
6
+ path: "/home/jenkins/workspace/test2/test/mu-tools-test"
7
+ version_constraints: "[]"
@@ -0,0 +1,11 @@
1
+ name: demo-test-profile
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,182 @@
1
+ require 'yaml'
2
+
3
+ mongo = YAML.load_file("/tmp/etco-mongo_attr.yaml")
4
+ cas = YAML.load_file("/tmp/etco-app_attr.yaml")
5
+ mongo_dns = mongo['fqdn']
6
+ cas_dns= cas['load_balancers'][0]['cas-elb']
7
+ app_elb = cas['load_balancers'][1]['app-elb']
8
+
9
+
10
+ include_controls 'mu-tools-test'
11
+
12
+
13
+ control 'app' do
14
+ title 'app tests'
15
+
16
+ node = json('/tmp/chef_node.json').params
17
+
18
+
19
+ describe package('java-1.7.0-openjdk-devel') do
20
+ it { should be_installed }
21
+ end
22
+
23
+ describe directory(node['default']['apps_dir']) do
24
+ it { should exist }
25
+ it { should be_directory}
26
+ its('owner'){ should eq 'root'}
27
+ end
28
+
29
+ describe file("#{node['default']['apps_dir']}/#{node['default']['play_package']}") do
30
+ it { should exist }
31
+ it { should be_file }
32
+ its('owner') { should eq 'root'}
33
+ end
34
+
35
+ describe directory("#{node['default']['apps_dir']}/tmp") do
36
+ it { should exist }
37
+ it { should be_directory}
38
+ its('owner'){ should eq 'root'}
39
+ end
40
+
41
+ describe directory("#{node['default']['apps_dir']}/tmp/tcm-*-SNAPSHOT") do
42
+ it { should_not exist }
43
+ end
44
+
45
+ describe file("#{node['default']['apps_dir']}/application.conf") do
46
+ it { should exist }
47
+ it { should be_file }
48
+ its('owner') { should eq 'root' }
49
+ its('group') { should eq 'root' }
50
+ its('mode') { should cmp '0755' }
51
+ its('content') { should match /mongodb.uri="mongodb:\/\/ip-#{mongo_dns}\.ec2\.internal:27017\/tco_test_db"/}
52
+ its('content') { should match /app.casClient = "http:\/\/#{cas_dns}\/cas-etco"/}
53
+ end
54
+
55
+ describe command('iptables --list-rule | grep 9000') do
56
+ its('exit_status'){ should eq 0 }
57
+ end
58
+
59
+ describe directory("#{node['default']['apps_dir']}/log") do
60
+ it { should be_directory }
61
+ its('owner') { should eq 'root'}
62
+ end
63
+
64
+ describe command("curl #{app_elb}") do
65
+ its('exit_status'){should eq 0}
66
+ its('stdout'){should match 'eTCO'}
67
+ end
68
+
69
+ end # end app control
70
+
71
+ #******************************************************************************
72
+
73
+ control 'cas' do
74
+ title 'cas tests'
75
+
76
+ node = json('/tmp/chef_node.json').params
77
+ catalina_home = node['default']['tomcat_dir']
78
+ cas_dir="#{node['default']['cas_dir']}"
79
+ cas_download_url="#{node['default']['cas_download_url']}"
80
+ tomcat_dir = node['default']['tomcat_dir']
81
+
82
+ %w(unzip java-1.7.0-openjdk-devel).each do |pack|
83
+ describe package(pack) do
84
+ it { should be_installed }
85
+ end
86
+ end
87
+
88
+ describe file('/etc/init.d/tomcat') do
89
+ it { should exist }
90
+ it { should be_file}
91
+ its('mode') { should cmp '0755'}
92
+ its('owner'){ should eq 'root' }
93
+ its('group'){ should eq 'root' }
94
+ its('content'){ should match /PATH=\$JAVA_HOME\/bin:\$PATH/ }
95
+ its('content'){ should match /CATALINA_HOME=#{catalina_home}/}
96
+ end
97
+
98
+ [tomcat_dir, cas_dir].each do
99
+ describe directory(node['default']['tomcat_dir']) do
100
+ it { should exist }
101
+ it { should be_directory }
102
+ end
103
+ end
104
+
105
+ describe file("#{cas_dir}/cas-server.tar.gz") do
106
+ it { should be_file }
107
+ it { should exist }
108
+ end
109
+
110
+ describe file("#{tomcat_dir}/webapps/cas-etco.war") do
111
+ it { should exist }
112
+ end
113
+
114
+ describe file("#{node['default']['tomcat_dir']}/webapps/cas-etco/WEB-INF/deployerConfigContext.xml") do
115
+ it { should exist }
116
+ it { should be_file }
117
+ its('owner'){ should eq 'root' }
118
+ its('group') { should eq 'root' }
119
+ its('mode'){ should cmp '0755'}
120
+ its('content'){should match /\ <property name="users">/}
121
+ end
122
+
123
+ describe service('tomcat') do
124
+ #it { should be_enabled }
125
+ it { should be_running }
126
+ end
127
+
128
+ describe command('iptables --list-rule | grep 8080') do
129
+ its('exit_status'){ should eq 0 }
130
+ end
131
+ end # end cas control
132
+
133
+ #******************************************************************************
134
+
135
+ control 'mongo' do
136
+ title 'mongo tests'
137
+
138
+ %w(git mongodb-org-server mongodb-org-shell mongodb-org-tools sysstat java-1.7.0-openjdk-devel).each do |pack|
139
+ describe package(pack) do
140
+ it { should be_installed }
141
+ end
142
+ end
143
+
144
+ %w(/data /log /journal /data/journal).each do |dir|
145
+ describe directory(dir) do
146
+ it { should exist }
147
+ it { should be_directory }
148
+ its('owner'){should eq 'mongod'}
149
+ its('group'){should eq 'mongod'}
150
+ end
151
+ end
152
+
153
+ describe file('/etc/init.d/mongod') do
154
+ it { should exist }
155
+ it { should be_file }
156
+ end
157
+
158
+ describe file('/etc/mongod.conf') do
159
+ it { should be_file }
160
+ it { should exist }
161
+ its('owner') { should eq 'mongod'}
162
+ its('group') { should eq 'mongod'}
163
+ its('mode') { should cmp '0755'}
164
+ end
165
+
166
+ describe parse_config_file('/etc/mongod.conf') do
167
+ params = {'logpath': '/log/mongod.log', 'logappend':'true', 'dbpath':'/data', 'pidfilepath': '/var/run/mongodb/mongod.pid'}
168
+ params.each do |var,val|
169
+ its (var) { should eq val }
170
+ end
171
+ end
172
+
173
+ describe service('mongod') do
174
+ it { should be_running }
175
+ it { should be_enabled }
176
+ end
177
+
178
+ describe command('iptables --list-rule | grep 27017') do
179
+ its('exit_status'){ should eq 0 }
180
+ end
181
+
182
+ end # end mongo control
@@ -0,0 +1,7 @@
1
+ ---
2
+ lockfile_version: 1
3
+ depends:
4
+ - name: mu-tools-test
5
+ resolved_source:
6
+ path: "/home/jenkins/workspace/test2/test/mu-tools-test"
7
+ version_constraints: "[]"
@@ -0,0 +1,11 @@
1
+ name: etco-test-profile
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