cloud-mu 2.1.0beta → 3.0.0beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. checksums.yaml +5 -5
  2. data/Berksfile +4 -5
  3. data/Berksfile.lock +179 -0
  4. data/README.md +1 -6
  5. data/ansible/roles/geerlingguy.firewall/templates/firewall.bash.j2 +0 -0
  6. data/ansible/roles/mu-installer/README.md +33 -0
  7. data/ansible/roles/mu-installer/defaults/main.yml +2 -0
  8. data/ansible/roles/mu-installer/handlers/main.yml +2 -0
  9. data/ansible/roles/mu-installer/meta/main.yml +60 -0
  10. data/ansible/roles/mu-installer/tasks/main.yml +13 -0
  11. data/ansible/roles/mu-installer/tests/inventory +2 -0
  12. data/ansible/roles/mu-installer/tests/test.yml +5 -0
  13. data/ansible/roles/mu-installer/vars/main.yml +2 -0
  14. data/bin/mu-adopt +125 -0
  15. data/bin/mu-aws-setup +4 -4
  16. data/bin/mu-azure-setup +265 -0
  17. data/bin/mu-azure-tests +43 -0
  18. data/bin/mu-cleanup +20 -8
  19. data/bin/mu-configure +224 -98
  20. data/bin/mu-deploy +8 -3
  21. data/bin/mu-gcp-setup +16 -8
  22. data/bin/mu-gen-docs +92 -8
  23. data/bin/mu-load-config.rb +52 -12
  24. data/bin/mu-momma-cat +36 -0
  25. data/bin/mu-node-manage +34 -27
  26. data/bin/mu-self-update +2 -2
  27. data/bin/mu-ssh +12 -8
  28. data/bin/mu-upload-chef-artifacts +11 -4
  29. data/bin/mu-user-manage +3 -0
  30. data/cloud-mu.gemspec +8 -11
  31. data/cookbooks/firewall/libraries/helpers_iptables.rb +2 -2
  32. data/cookbooks/firewall/metadata.json +1 -1
  33. data/cookbooks/firewall/recipes/default.rb +5 -9
  34. data/cookbooks/mu-firewall/attributes/default.rb +2 -0
  35. data/cookbooks/mu-firewall/metadata.rb +1 -1
  36. data/cookbooks/mu-glusterfs/templates/default/mu-gluster-client.erb +0 -0
  37. data/cookbooks/mu-master/Berksfile +2 -2
  38. data/cookbooks/mu-master/files/default/check_mem.pl +0 -0
  39. data/cookbooks/mu-master/files/default/cloudamatic.png +0 -0
  40. data/cookbooks/mu-master/metadata.rb +5 -4
  41. data/cookbooks/mu-master/recipes/389ds.rb +1 -1
  42. data/cookbooks/mu-master/recipes/basepackages.rb +30 -10
  43. data/cookbooks/mu-master/recipes/default.rb +59 -7
  44. data/cookbooks/mu-master/recipes/firewall-holes.rb +1 -1
  45. data/cookbooks/mu-master/recipes/init.rb +65 -47
  46. data/cookbooks/mu-master/recipes/{eks-kubectl.rb → kubectl.rb} +4 -10
  47. data/cookbooks/mu-master/recipes/sssd.rb +2 -1
  48. data/cookbooks/mu-master/recipes/update_nagios_only.rb +6 -6
  49. data/cookbooks/mu-master/templates/default/web_app.conf.erb +2 -2
  50. data/cookbooks/mu-master/templates/mods/ldap.conf.erb +4 -0
  51. data/cookbooks/mu-php54/Berksfile +1 -2
  52. data/cookbooks/mu-php54/metadata.rb +4 -5
  53. data/cookbooks/mu-php54/recipes/default.rb +1 -1
  54. data/cookbooks/mu-splunk/templates/default/splunk-init.erb +0 -0
  55. data/cookbooks/mu-tools/Berksfile +3 -2
  56. data/cookbooks/mu-tools/files/default/Mu_CA.pem +33 -0
  57. data/cookbooks/mu-tools/libraries/helper.rb +20 -8
  58. data/cookbooks/mu-tools/metadata.rb +5 -2
  59. data/cookbooks/mu-tools/recipes/apply_security.rb +2 -3
  60. data/cookbooks/mu-tools/recipes/eks.rb +1 -1
  61. data/cookbooks/mu-tools/recipes/gcloud.rb +5 -30
  62. data/cookbooks/mu-tools/recipes/nagios.rb +1 -1
  63. data/cookbooks/mu-tools/recipes/rsyslog.rb +1 -0
  64. data/cookbooks/mu-tools/recipes/selinux.rb +19 -0
  65. data/cookbooks/mu-tools/recipes/split_var_partitions.rb +0 -1
  66. data/cookbooks/mu-tools/recipes/windows-client.rb +256 -122
  67. data/cookbooks/mu-tools/resources/disk.rb +3 -1
  68. data/cookbooks/mu-tools/templates/amazon/sshd_config.erb +1 -1
  69. data/cookbooks/mu-tools/templates/default/etc_hosts.erb +1 -1
  70. data/cookbooks/mu-tools/templates/default/{kubeconfig.erb → kubeconfig-eks.erb} +0 -0
  71. data/cookbooks/mu-tools/templates/default/kubeconfig-gke.erb +27 -0
  72. data/cookbooks/mu-tools/templates/windows-10/sshd_config.erb +137 -0
  73. data/cookbooks/mu-utility/recipes/nat.rb +4 -0
  74. data/extras/alpha.png +0 -0
  75. data/extras/beta.png +0 -0
  76. data/extras/clean-stock-amis +2 -2
  77. data/extras/generate-stock-images +131 -0
  78. data/extras/git-fix-permissions-hook +0 -0
  79. data/extras/image-generators/AWS/centos6.yaml +17 -0
  80. data/extras/image-generators/{aws → AWS}/centos7-govcloud.yaml +0 -0
  81. data/extras/image-generators/{aws → AWS}/centos7.yaml +0 -0
  82. data/extras/image-generators/{aws → AWS}/rhel7.yaml +0 -0
  83. data/extras/image-generators/{aws → AWS}/win2k12.yaml +0 -0
  84. data/extras/image-generators/{aws → AWS}/win2k16.yaml +0 -0
  85. data/extras/image-generators/{aws → AWS}/windows.yaml +0 -0
  86. data/extras/image-generators/{gcp → Google}/centos6.yaml +1 -0
  87. data/extras/image-generators/Google/centos7.yaml +18 -0
  88. data/extras/python_rpm/build.sh +0 -0
  89. data/extras/release.png +0 -0
  90. data/extras/ruby_rpm/build.sh +0 -0
  91. data/extras/ruby_rpm/muby.spec +1 -1
  92. data/install/README.md +43 -5
  93. data/install/deprecated-bash-library.sh +0 -0
  94. data/install/installer +1 -1
  95. data/install/jenkinskeys.rb +0 -0
  96. data/install/mu-master.yaml +55 -0
  97. data/modules/mommacat.ru +41 -7
  98. data/modules/mu.rb +444 -149
  99. data/modules/mu/adoption.rb +500 -0
  100. data/modules/mu/cleanup.rb +235 -158
  101. data/modules/mu/cloud.rb +675 -138
  102. data/modules/mu/clouds/aws.rb +156 -24
  103. data/modules/mu/clouds/aws/alarm.rb +4 -14
  104. data/modules/mu/clouds/aws/bucket.rb +60 -18
  105. data/modules/mu/clouds/aws/cache_cluster.rb +8 -20
  106. data/modules/mu/clouds/aws/collection.rb +12 -22
  107. data/modules/mu/clouds/aws/container_cluster.rb +209 -118
  108. data/modules/mu/clouds/aws/database.rb +120 -45
  109. data/modules/mu/clouds/aws/dnszone.rb +7 -18
  110. data/modules/mu/clouds/aws/endpoint.rb +5 -15
  111. data/modules/mu/clouds/aws/firewall_rule.rb +144 -72
  112. data/modules/mu/clouds/aws/folder.rb +4 -11
  113. data/modules/mu/clouds/aws/function.rb +6 -16
  114. data/modules/mu/clouds/aws/group.rb +4 -12
  115. data/modules/mu/clouds/aws/habitat.rb +11 -13
  116. data/modules/mu/clouds/aws/loadbalancer.rb +40 -28
  117. data/modules/mu/clouds/aws/log.rb +5 -13
  118. data/modules/mu/clouds/aws/msg_queue.rb +9 -24
  119. data/modules/mu/clouds/aws/nosqldb.rb +4 -12
  120. data/modules/mu/clouds/aws/notifier.rb +6 -13
  121. data/modules/mu/clouds/aws/role.rb +69 -40
  122. data/modules/mu/clouds/aws/search_domain.rb +17 -20
  123. data/modules/mu/clouds/aws/server.rb +184 -94
  124. data/modules/mu/clouds/aws/server_pool.rb +33 -38
  125. data/modules/mu/clouds/aws/storage_pool.rb +5 -12
  126. data/modules/mu/clouds/aws/user.rb +59 -33
  127. data/modules/mu/clouds/aws/userdata/linux.erb +18 -30
  128. data/modules/mu/clouds/aws/userdata/windows.erb +9 -9
  129. data/modules/mu/clouds/aws/vpc.rb +214 -145
  130. data/modules/mu/clouds/azure.rb +978 -44
  131. data/modules/mu/clouds/azure/container_cluster.rb +413 -0
  132. data/modules/mu/clouds/azure/firewall_rule.rb +500 -0
  133. data/modules/mu/clouds/azure/habitat.rb +167 -0
  134. data/modules/mu/clouds/azure/loadbalancer.rb +205 -0
  135. data/modules/mu/clouds/azure/role.rb +211 -0
  136. data/modules/mu/clouds/azure/server.rb +810 -0
  137. data/modules/mu/clouds/azure/user.rb +257 -0
  138. data/modules/mu/clouds/azure/userdata/README.md +4 -0
  139. data/modules/mu/clouds/azure/userdata/linux.erb +137 -0
  140. data/modules/mu/clouds/azure/userdata/windows.erb +275 -0
  141. data/modules/mu/clouds/azure/vpc.rb +782 -0
  142. data/modules/mu/clouds/cloudformation.rb +12 -9
  143. data/modules/mu/clouds/cloudformation/firewall_rule.rb +5 -13
  144. data/modules/mu/clouds/cloudformation/server.rb +10 -1
  145. data/modules/mu/clouds/cloudformation/server_pool.rb +1 -0
  146. data/modules/mu/clouds/cloudformation/vpc.rb +0 -2
  147. data/modules/mu/clouds/google.rb +554 -117
  148. data/modules/mu/clouds/google/bucket.rb +173 -32
  149. data/modules/mu/clouds/google/container_cluster.rb +1112 -157
  150. data/modules/mu/clouds/google/database.rb +24 -47
  151. data/modules/mu/clouds/google/firewall_rule.rb +344 -89
  152. data/modules/mu/clouds/google/folder.rb +156 -79
  153. data/modules/mu/clouds/google/group.rb +272 -82
  154. data/modules/mu/clouds/google/habitat.rb +177 -52
  155. data/modules/mu/clouds/google/loadbalancer.rb +9 -34
  156. data/modules/mu/clouds/google/role.rb +1211 -0
  157. data/modules/mu/clouds/google/server.rb +491 -227
  158. data/modules/mu/clouds/google/server_pool.rb +233 -48
  159. data/modules/mu/clouds/google/user.rb +479 -125
  160. data/modules/mu/clouds/google/userdata/linux.erb +3 -3
  161. data/modules/mu/clouds/google/userdata/windows.erb +9 -9
  162. data/modules/mu/clouds/google/vpc.rb +381 -223
  163. data/modules/mu/config.rb +689 -214
  164. data/modules/mu/config/bucket.rb +1 -1
  165. data/modules/mu/config/cache_cluster.rb +1 -1
  166. data/modules/mu/config/cache_cluster.yml +0 -4
  167. data/modules/mu/config/container_cluster.rb +18 -9
  168. data/modules/mu/config/database.rb +6 -23
  169. data/modules/mu/config/firewall_rule.rb +9 -15
  170. data/modules/mu/config/folder.rb +22 -21
  171. data/modules/mu/config/habitat.rb +22 -21
  172. data/modules/mu/config/loadbalancer.rb +2 -2
  173. data/modules/mu/config/role.rb +9 -40
  174. data/modules/mu/config/server.rb +26 -5
  175. data/modules/mu/config/server_pool.rb +1 -1
  176. data/modules/mu/config/storage_pool.rb +2 -2
  177. data/modules/mu/config/user.rb +4 -0
  178. data/modules/mu/config/vpc.rb +350 -110
  179. data/modules/mu/defaults/{amazon_images.yaml → AWS.yaml} +37 -39
  180. data/modules/mu/defaults/Azure.yaml +17 -0
  181. data/modules/mu/defaults/Google.yaml +24 -0
  182. data/modules/mu/defaults/README.md +1 -1
  183. data/modules/mu/deploy.rb +168 -125
  184. data/modules/mu/groomer.rb +2 -1
  185. data/modules/mu/groomers/ansible.rb +104 -32
  186. data/modules/mu/groomers/chef.rb +96 -44
  187. data/modules/mu/kittens.rb +20602 -0
  188. data/modules/mu/logger.rb +38 -11
  189. data/modules/mu/master.rb +90 -8
  190. data/modules/mu/master/chef.rb +2 -3
  191. data/modules/mu/master/ldap.rb +0 -1
  192. data/modules/mu/master/ssl.rb +250 -0
  193. data/modules/mu/mommacat.rb +917 -513
  194. data/modules/scratchpad.erb +1 -1
  195. data/modules/tests/super_complex_bok.yml +0 -0
  196. data/modules/tests/super_simple_bok.yml +0 -0
  197. data/roles/mu-master.json +2 -1
  198. data/spec/azure_creds +5 -0
  199. data/spec/mu.yaml +56 -0
  200. data/spec/mu/clouds/azure_spec.rb +164 -27
  201. data/spec/spec_helper.rb +5 -0
  202. data/test/clean_up.py +0 -0
  203. data/test/exec_inspec.py +0 -0
  204. data/test/exec_mu_install.py +0 -0
  205. data/test/exec_retry.py +0 -0
  206. data/test/smoke_test.rb +0 -0
  207. metadata +90 -118
  208. data/cookbooks/mu-jenkins/Berksfile +0 -14
  209. data/cookbooks/mu-jenkins/CHANGELOG.md +0 -13
  210. data/cookbooks/mu-jenkins/LICENSE +0 -37
  211. data/cookbooks/mu-jenkins/README.md +0 -105
  212. data/cookbooks/mu-jenkins/attributes/default.rb +0 -42
  213. data/cookbooks/mu-jenkins/files/default/cleanup_deploy_config.xml +0 -73
  214. data/cookbooks/mu-jenkins/files/default/deploy_config.xml +0 -44
  215. data/cookbooks/mu-jenkins/metadata.rb +0 -21
  216. data/cookbooks/mu-jenkins/recipes/default.rb +0 -195
  217. data/cookbooks/mu-jenkins/recipes/node-ssh-config.rb +0 -54
  218. data/cookbooks/mu-jenkins/recipes/public_key.rb +0 -24
  219. data/cookbooks/mu-jenkins/templates/default/example_job.config.xml.erb +0 -24
  220. data/cookbooks/mu-jenkins/templates/default/org.jvnet.hudson.plugins.SSHBuildWrapper.xml.erb +0 -14
  221. data/cookbooks/mu-jenkins/templates/default/ssh_config.erb +0 -6
  222. data/cookbooks/nagios/Berksfile +0 -11
  223. data/cookbooks/nagios/CHANGELOG.md +0 -589
  224. data/cookbooks/nagios/CONTRIBUTING.md +0 -11
  225. data/cookbooks/nagios/LICENSE +0 -37
  226. data/cookbooks/nagios/README.md +0 -328
  227. data/cookbooks/nagios/TESTING.md +0 -2
  228. data/cookbooks/nagios/attributes/config.rb +0 -171
  229. data/cookbooks/nagios/attributes/default.rb +0 -228
  230. data/cookbooks/nagios/chefignore +0 -102
  231. data/cookbooks/nagios/definitions/command.rb +0 -33
  232. data/cookbooks/nagios/definitions/contact.rb +0 -33
  233. data/cookbooks/nagios/definitions/contactgroup.rb +0 -33
  234. data/cookbooks/nagios/definitions/host.rb +0 -33
  235. data/cookbooks/nagios/definitions/hostdependency.rb +0 -33
  236. data/cookbooks/nagios/definitions/hostescalation.rb +0 -34
  237. data/cookbooks/nagios/definitions/hostgroup.rb +0 -33
  238. data/cookbooks/nagios/definitions/nagios_conf.rb +0 -38
  239. data/cookbooks/nagios/definitions/resource.rb +0 -33
  240. data/cookbooks/nagios/definitions/service.rb +0 -33
  241. data/cookbooks/nagios/definitions/servicedependency.rb +0 -33
  242. data/cookbooks/nagios/definitions/serviceescalation.rb +0 -34
  243. data/cookbooks/nagios/definitions/servicegroup.rb +0 -33
  244. data/cookbooks/nagios/definitions/timeperiod.rb +0 -33
  245. data/cookbooks/nagios/libraries/base.rb +0 -314
  246. data/cookbooks/nagios/libraries/command.rb +0 -91
  247. data/cookbooks/nagios/libraries/contact.rb +0 -230
  248. data/cookbooks/nagios/libraries/contactgroup.rb +0 -112
  249. data/cookbooks/nagios/libraries/custom_option.rb +0 -36
  250. data/cookbooks/nagios/libraries/data_bag_helper.rb +0 -23
  251. data/cookbooks/nagios/libraries/default.rb +0 -90
  252. data/cookbooks/nagios/libraries/host.rb +0 -412
  253. data/cookbooks/nagios/libraries/hostdependency.rb +0 -181
  254. data/cookbooks/nagios/libraries/hostescalation.rb +0 -173
  255. data/cookbooks/nagios/libraries/hostgroup.rb +0 -119
  256. data/cookbooks/nagios/libraries/nagios.rb +0 -282
  257. data/cookbooks/nagios/libraries/resource.rb +0 -59
  258. data/cookbooks/nagios/libraries/service.rb +0 -455
  259. data/cookbooks/nagios/libraries/servicedependency.rb +0 -215
  260. data/cookbooks/nagios/libraries/serviceescalation.rb +0 -195
  261. data/cookbooks/nagios/libraries/servicegroup.rb +0 -144
  262. data/cookbooks/nagios/libraries/timeperiod.rb +0 -160
  263. data/cookbooks/nagios/libraries/users_helper.rb +0 -54
  264. data/cookbooks/nagios/metadata.rb +0 -25
  265. data/cookbooks/nagios/recipes/_load_databag_config.rb +0 -153
  266. data/cookbooks/nagios/recipes/_load_default_config.rb +0 -241
  267. data/cookbooks/nagios/recipes/apache.rb +0 -48
  268. data/cookbooks/nagios/recipes/default.rb +0 -204
  269. data/cookbooks/nagios/recipes/nginx.rb +0 -82
  270. data/cookbooks/nagios/recipes/pagerduty.rb +0 -143
  271. data/cookbooks/nagios/recipes/server_package.rb +0 -40
  272. data/cookbooks/nagios/recipes/server_source.rb +0 -164
  273. data/cookbooks/nagios/templates/default/apache2.conf.erb +0 -96
  274. data/cookbooks/nagios/templates/default/cgi.cfg.erb +0 -266
  275. data/cookbooks/nagios/templates/default/commands.cfg.erb +0 -13
  276. data/cookbooks/nagios/templates/default/contacts.cfg.erb +0 -37
  277. data/cookbooks/nagios/templates/default/hostgroups.cfg.erb +0 -25
  278. data/cookbooks/nagios/templates/default/hosts.cfg.erb +0 -15
  279. data/cookbooks/nagios/templates/default/htpasswd.users.erb +0 -6
  280. data/cookbooks/nagios/templates/default/nagios.cfg.erb +0 -22
  281. data/cookbooks/nagios/templates/default/nginx.conf.erb +0 -62
  282. data/cookbooks/nagios/templates/default/pagerduty.cgi.erb +0 -185
  283. data/cookbooks/nagios/templates/default/resource.cfg.erb +0 -27
  284. data/cookbooks/nagios/templates/default/servicedependencies.cfg.erb +0 -15
  285. data/cookbooks/nagios/templates/default/servicegroups.cfg.erb +0 -14
  286. data/cookbooks/nagios/templates/default/services.cfg.erb +0 -14
  287. data/cookbooks/nagios/templates/default/templates.cfg.erb +0 -31
  288. data/cookbooks/nagios/templates/default/timeperiods.cfg.erb +0 -13
  289. data/extras/image-generators/aws/centos6.yaml +0 -18
  290. data/modules/mu/defaults/google_images.yaml +0 -16
  291. data/roles/mu-master-jenkins.json +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b339d7f5e35d4ca0b753f23d4552fa4f5589b16f
4
- data.tar.gz: 9e46c23f39cc04b1102ff2f671453105ac043d4b
2
+ SHA256:
3
+ metadata.gz: d6d28f31ace29cfaab6ca01999ae6ac6555e2f997a7bd05a6368d6e3787b67bc
4
+ data.tar.gz: da3c08bb506f6952cb74a07710436d6c698acafa6c4f3fc5eeb3ac3cdaff58b4
5
5
  SHA512:
6
- metadata.gz: 08acf7c80363ea2b446e356b65ce3fb8a3dc5687917f346fabd272de0ac1d4b827d1d70c187c1e796e5eb0472398923109c5115a0a6478b6c292ca6a4bcdf332
7
- data.tar.gz: 09a509cb2f1d9c7dc65b44de161dc52ba8c0e84e1d57f1f1faee651145689802f9ae4e6f9abeb9dbab4954a3fe4ea777147d69281ffdb1e21c8685bbf7371c1c
6
+ metadata.gz: 3b6adb59f7ead95071f134ba9059042ff493cad6259fd19c1f0e32f78bbfb1e856403e7272c980a5cede5aae8fdf53bfe2c810ade5e23d2a045cad2f4264ab20
7
+ data.tar.gz: 283566f81d55c6a34871edb57ae895855bbf1ed3f2a8e6946ca40319839e780802bc0228f6c2b5d1ca2a0dffc10b2cd107b48770133a88b72144ad3478043800
data/Berksfile CHANGED
@@ -1,5 +1,5 @@
1
- source "https://supermarket.chef.io"
2
1
  source chef_repo: "cookbooks/"
2
+ source "https://supermarket.chef.io"
3
3
 
4
4
  # Mu Platform Cookbooks
5
5
  cookbook 'awscli'
@@ -7,12 +7,11 @@ cookbook 'mu-activedirectory'
7
7
  cookbook 'mu-splunk'
8
8
  cookbook 'mu-firewall'
9
9
  cookbook 'mu-glusterfs'
10
- cookbook 'mu-jenkins'
11
10
  cookbook 'mu-master'
12
11
  cookbook 'mu-mongo'
13
12
  cookbook 'mu-openvpn'
14
- cookbook 'mu-php54'
15
13
  cookbook 'mu-tools'
16
14
  cookbook 'mu-utility'
17
- cookbook 'nagios'
18
- cookbook 'firewall'
15
+ cookbook 'mu-nagios' , '~> 8.2.0', git: "https://github.com/cloudamatic/mu-nagios.git"
16
+ cookbook 'firewall', path: 'cookbooks/firewall'
17
+ cookbook 'chocolatey'
@@ -0,0 +1,179 @@
1
+ DEPENDENCIES
2
+ awscli
3
+ chocolatey
4
+ firewall
5
+ path: cookbooks/firewall
6
+ mu-activedirectory
7
+ mu-firewall
8
+ mu-glusterfs
9
+ mu-master
10
+ mu-mongo
11
+ mu-nagios
12
+ git: https://github.com/cloudamatic/mu-nagios.git
13
+ revision: c1e3f6155d5ab9952c8403693b118664f8d50973
14
+ mu-openvpn
15
+ mu-splunk
16
+ mu-tools
17
+ mu-utility
18
+
19
+ GRAPH
20
+ apache2 (5.2.1)
21
+ apt (7.2.0)
22
+ awscli (1.1.2)
23
+ python (~> 1.4)
24
+ bind (2.2.1)
25
+ bind9-ng (0.1.0)
26
+ build-essential (8.2.1)
27
+ mingw (>= 1.1)
28
+ seven_zip (>= 0.0.0)
29
+ chef-sugar (5.0.4)
30
+ chef-vault (3.1.1)
31
+ chocolatey (2.0.1)
32
+ consul (2.3.0)
33
+ build-essential (>= 0.0.0)
34
+ firewall (~> 2.0)
35
+ golang (>= 0.0.0)
36
+ nssm (>= 0.0.0)
37
+ poise (~> 2.2)
38
+ poise-archive (~> 1.3)
39
+ poise-service (~> 1.4)
40
+ consul-cluster (2.0.0)
41
+ consul (~> 2.1)
42
+ ssl_certificate (~> 1.11)
43
+ cpan (0.1.0)
44
+ database (6.1.1)
45
+ postgresql (>= 1.0.0)
46
+ firewall (2.7.1)
47
+ golang (1.7.0)
48
+ hashicorp-vault (2.5.0)
49
+ build-essential (>= 0.0.0)
50
+ golang (~> 1.7)
51
+ poise (~> 2.6)
52
+ poise-service (~> 1.1)
53
+ rubyzip (~> 1.0)
54
+ homebrew (5.0.8)
55
+ hostsfile (3.0.1)
56
+ java (2.2.1)
57
+ homebrew (>= 0.0.0)
58
+ windows (>= 0.0.0)
59
+ mingw (2.1.0)
60
+ seven_zip (>= 0.0.0)
61
+ mongodb (0.16.2)
62
+ apt (>= 1.8.2)
63
+ python (>= 0.0.0)
64
+ runit (>= 1.5.0)
65
+ yum (>= 3.0)
66
+ mu-activedirectory (0.2.0)
67
+ chef-vault (~> 3.1.1)
68
+ windows (~> 5.1.1)
69
+ yum-epel (~> 3.2.0)
70
+ mu-firewall (0.1.2)
71
+ firewall (~> 2.7.1)
72
+ mu-glusterfs (0.1.0)
73
+ mu-firewall (>= 0.0.0)
74
+ yum (~> 5.1.0)
75
+ mu-master (0.9.6)
76
+ apache2 (< 6.0.0)
77
+ bind (~> 2.2.0)
78
+ bind9-ng (~> 0.1.0)
79
+ chef-sugar (>= 0.0.0)
80
+ chef-vault (~> 3.1.1)
81
+ consul-cluster (~> 2.0.0)
82
+ hostsfile (~> 3.0.1)
83
+ mu-activedirectory (>= 0.0.0)
84
+ mu-firewall (>= 0.0.0)
85
+ mu-nagios (>= 0.0.0)
86
+ mu-tools (>= 0.0.0)
87
+ mu-utility (>= 0.0.0)
88
+ nrpe (~> 2.0.3)
89
+ postfix (~> 5.3.1)
90
+ s3fs (>= 0.0.0)
91
+ vault-cluster (~> 2.1.0)
92
+ mu-mongo (0.5.0)
93
+ chef-vault (~> 3.1.1)
94
+ mongodb (~> 0.16.2)
95
+ mu-nagios (8.2.2)
96
+ apache2 (< 6.0.0)
97
+ build-essential (>= 5.0)
98
+ nginx (>= 7.0)
99
+ nrpe (>= 0.0.0)
100
+ php (>= 0.0.0)
101
+ php-fpm (>= 0.7.9)
102
+ yum-epel (>= 0.0.0)
103
+ zap (>= 0.6.0)
104
+ mu-openvpn (0.1.0)
105
+ chef-vault (~> 3.1.1)
106
+ mu-firewall (>= 0.0.0)
107
+ mu-utility (>= 0.0.0)
108
+ mu-splunk (1.3.0)
109
+ chef-vault (>= 1.0.4)
110
+ mu-tools (1.1.0)
111
+ chef-vault (~> 3.1.1)
112
+ chocolatey (>= 0.0.0)
113
+ database (~> 6.1.1)
114
+ firewall (>= 0.0.0)
115
+ java (~> 2.2.0)
116
+ mu-activedirectory (>= 0.0.0)
117
+ mu-firewall (>= 0.0.0)
118
+ mu-nagios (>= 0.0.0)
119
+ mu-splunk (>= 0.0.0)
120
+ mu-utility (>= 0.0.0)
121
+ oracle-instantclient (~> 1.1.0)
122
+ poise-python (~> 1.7.0)
123
+ postgresql (~> 7.1.0)
124
+ selinux (~> 3.0.0)
125
+ windows (~> 5.1.1)
126
+ yum-epel (~> 3.2.0)
127
+ mu-utility (0.6.0)
128
+ mu-firewall (>= 0.0.0)
129
+ windows (~> 5.1.1)
130
+ nginx (10.0.2)
131
+ ohai (~> 5.2)
132
+ nrpe (2.0.5)
133
+ build-essential (>= 0.0.0)
134
+ yum-epel (>= 0.0.0)
135
+ nssm (4.0.1)
136
+ windows (>= 0.0.0)
137
+ ohai (5.3.0)
138
+ oracle-instantclient (1.1.0)
139
+ build-essential (>= 0.0.0)
140
+ cpan (>= 0.0.0)
141
+ php (>= 0.0.0)
142
+ packagecloud (1.0.1)
143
+ php (7.0.0)
144
+ yum-epel (>= 0.0.0)
145
+ php-fpm (0.8.0)
146
+ poise (2.8.2)
147
+ poise-archive (1.5.0)
148
+ poise (~> 2.6)
149
+ poise-languages (2.1.2)
150
+ poise (~> 2.5)
151
+ poise-archive (~> 1.0)
152
+ poise-python (1.7.0)
153
+ poise (~> 2.7)
154
+ poise-languages (~> 2.0)
155
+ poise-service (1.5.2)
156
+ poise (~> 2.0)
157
+ postfix (5.3.1)
158
+ postgresql (7.1.4)
159
+ python (1.4.6)
160
+ build-essential (>= 0.0.0)
161
+ yum-epel (>= 0.0.0)
162
+ rubyzip (1.3.1)
163
+ poise (~> 2.2)
164
+ runit (5.1.2)
165
+ packagecloud (>= 0.0.0)
166
+ yum-epel (>= 0.0.0)
167
+ s3fs (3.0.1)
168
+ selinux (3.0.0)
169
+ seven_zip (3.1.2)
170
+ windows (>= 0.0.0)
171
+ ssl_certificate (1.12.0)
172
+ vault-cluster (2.1.0)
173
+ consul-cluster (~> 2.0)
174
+ hashicorp-vault (~> 2.1)
175
+ ssl_certificate (~> 1.11)
176
+ windows (5.1.6)
177
+ yum (5.1.0)
178
+ yum-epel (3.2.0)
179
+ zap (1.1.0)
data/README.md CHANGED
@@ -17,11 +17,6 @@ The mu tooling is currently supported on RHEL or CentOS 6/7.
17
17
  ## Installation
18
18
  See the [README](../master/install) in the install folder for mu master installation instructions
19
19
 
20
- Alternatively, get started by clicking the Launch Button!!
21
-
22
- This does create all the AWS resources in us-east-1 region.
23
-
24
- [![Launch Stack](https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=CloudamaticInstaller&templateURL=https://s3.amazonaws.com/mu-cfn-installer/cfn_create_mu_master.json)
25
-
26
20
  ## Usage
27
21
  See the [Usage](https://github.com/cloudamatic/mu/wiki/Usage) section of our Wiki for an overview of how to use the mu tooling for deployment
22
+
@@ -0,0 +1,33 @@
1
+ Role Name
2
+ =========
3
+
4
+ Runs a basic install of Mu on a compatible host. See also https://github.com/cloudamatic/mu
5
+
6
+ Requirements
7
+ ------------
8
+
9
+ CentOS 6, CentOS 7, or Amazon Linux 2 host with internet connectivity and no other major services running.
10
+
11
+ License
12
+ -------
13
+
14
+ Copyright:: Copyright (c) 2019 eGlobalTech, Inc., all rights reserved
15
+
16
+ Licensed under the BSD-3 license (the "License");
17
+ you may not use this file except in compliance with the License.
18
+ You may obtain a copy of the License in the root of the project or at
19
+
20
+ http://egt-labs.com/mu/LICENSE.html
21
+
22
+ Unless required by applicable law or agreed to in writing, software
23
+ distributed under the License is distributed on an "AS IS" BASIS,
24
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
+ See the License for the specific language governing permissions and
26
+ limitations under the License.
27
+
28
+ Author Information
29
+ ------------------
30
+
31
+ Current developers: John Stange, Robert Patt-Corner, Ryan Bolyard, Zach Rowe
32
+
33
+ egt-labs-admins@egt-labs.com
@@ -0,0 +1,2 @@
1
+ ---
2
+ # defaults file for mu-installer
@@ -0,0 +1,2 @@
1
+ ---
2
+ # handlers file for mu-installer
@@ -0,0 +1,60 @@
1
+ galaxy_info:
2
+ author: your name
3
+ description: your description
4
+ company: your company (optional)
5
+
6
+ # If the issue tracker for your role is not on github, uncomment the
7
+ # next line and provide a value
8
+ # issue_tracker_url: http://example.com/issue/tracker
9
+
10
+ # Some suggested licenses:
11
+ # - BSD (default)
12
+ # - MIT
13
+ # - GPLv2
14
+ # - GPLv3
15
+ # - Apache
16
+ # - CC-BY
17
+ license: license (GPLv2, CC-BY, etc)
18
+
19
+ min_ansible_version: 2.4
20
+
21
+ # If this a Container Enabled role, provide the minimum Ansible Container version.
22
+ # min_ansible_container_version:
23
+
24
+ # Optionally specify the branch Galaxy will use when accessing the GitHub
25
+ # repo for this role. During role install, if no tags are available,
26
+ # Galaxy will use this branch. During import Galaxy will access files on
27
+ # this branch. If Travis integration is configured, only notifications for this
28
+ # branch will be accepted. Otherwise, in all cases, the repo's default branch
29
+ # (usually master) will be used.
30
+ #github_branch:
31
+
32
+ #
33
+ # Provide a list of supported platforms, and for each platform a list of versions.
34
+ # If you don't wish to enumerate all versions for a particular platform, use 'all'.
35
+ # To view available platforms and versions (or releases), visit:
36
+ # https://galaxy.ansible.com/api/v1/platforms/
37
+ #
38
+ # platforms:
39
+ # - name: Fedora
40
+ # versions:
41
+ # - all
42
+ # - 25
43
+ # - name: SomePlatform
44
+ # versions:
45
+ # - all
46
+ # - 1.0
47
+ # - 7
48
+ # - 99.99
49
+
50
+ galaxy_tags: []
51
+ # List tags for your role here, one per line. A tag is a keyword that describes
52
+ # and categorizes the role. Users find roles by searching for tags. Be sure to
53
+ # remove the '[]' above, if you add tags to this list.
54
+ #
55
+ # NOTE: A tag is limited to a single word comprised of alphanumeric characters.
56
+ # Maximum 20 tags per role.
57
+
58
+ dependencies: []
59
+ # List your role dependencies here, one per line. Be sure to remove the '[]' above,
60
+ # if you add dependencies to this list.
@@ -0,0 +1,13 @@
1
+ ---
2
+ - name: Copy installer script
3
+ copy:
4
+ dest: /root/mu_install.sh
5
+ src: ../../../../install/installer
6
+ mode: 0700
7
+ become: yes
8
+
9
+ - name: Run Mu Installer
10
+ command: /root/mu_install.sh -n --mu-admin-email {{ mu_admin_email }} --mu-admin-name {{ mu_service_name }} --hostname {{ mu_service_name }} --public-address {{ mu_canonical_ip }}
11
+ environment:
12
+ MU_BRANCH: development
13
+ become: yes
@@ -0,0 +1,2 @@
1
+ localhost
2
+
@@ -0,0 +1,5 @@
1
+ ---
2
+ - hosts: localhost
3
+ remote_user: root
4
+ roles:
5
+ - mu-installer
@@ -0,0 +1,2 @@
1
+ ---
2
+ # vars file for mu-installer
@@ -0,0 +1,125 @@
1
+ #!/usr/local/ruby-current/bin/ruby
2
+ #
3
+ # Copyright:: Copyright (c) 2019 eGlobalTech, Inc., all rights reserved
4
+ #
5
+ # Licensed under the BSD-3 license (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License in the root of the project or at
8
+ #
9
+ # http://egt-labs.com/mu/LICENSE.html
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require File.expand_path(File.dirname(__FILE__))+"/mu-load-config.rb"
18
+
19
+ require 'rubygems'
20
+ require 'bundler/setup'
21
+ require 'optimist'
22
+ require 'mu'
23
+
24
+ available_clouds = MU::Cloud.supportedClouds
25
+ available_clouds.reject! { |cloud|
26
+ cloudclass = Object.const_get("MU").const_get("Cloud").const_get(cloud)
27
+ cloudclass.listCredentials.nil? or cloudclass.listCredentials.size == 0
28
+ }
29
+
30
+ available_types = MU::Cloud.resource_types.keys.map { |t| t.to_s }
31
+ grouping_options = {
32
+ "logical" => "Group resources in logical layers (folders and habitats together, users/roles/groups together, network resources together, etc)",
33
+ "omnibus" => "Jam everything into one monolothic configuration"
34
+ }
35
+
36
+ $opt = Optimist::options do
37
+ banner <<-EOS
38
+ #{$0}
39
+ EOS
40
+ opt :appname, "The overarching name of the application stack we will generate", :required => false, :default => "mu", :type => :string
41
+ opt :types, "The resource types to scan and import. Valid types: #{available_types.join(", ")}", :required => false, :type => :strings, :default => available_types
42
+ opt :clouds, "The cloud providers to scan and import.", :required => false, :type => :strings, :default => available_clouds
43
+ opt :parent, "Where applicable, resources which reside in the root folder or organization are configured with the specified parent in our target BoK", :required => false, :type => :string
44
+ opt :billing, "Force-set this billing entity on created resources, instead of copying from the live resources", :required => false, :type => :string
45
+ opt :sources, "One or more sets of credentials to use when importing resources. By default we will search and import from all sets of available credentials for each cloud provider specified with --clouds", :required => false, :type => :strings
46
+ opt :credentials, "Override the 'credentials' value in our generated Baskets of Kittens to target a single, specific account. Our default behavior is to set each resource to deploy into the account from which it was sourced.", :required => false, :type => :string
47
+ opt :savedeploys, "Generate actual deployment metadata in #{MU.dataDir}/deployments, as though the resources we found were created with mu-deploy. If we are generating more than one configuration, and a resource needs to reference another resource (e.g. to declare a VPC in which to reside), this will allow us to reference them as virtual resource, rather than by raw cloud identifier.", :required => false, :type => :boolean
48
+ opt :diff, "List the differences between what we find and an existing, saved deploy from a previous run, if one exists.", :required => false, :type => :boolean
49
+ opt :grouping, "Methods for grouping found resources into separate Baskets.\n\n"+MU::Adoption::GROUPMODES.keys.map { |g| "* "+g.to_s+": "+MU::Adoption::GROUPMODES[g] }.join("\n")+"\n\n", :required => false, :type => :string, :default => "logical"
50
+ opt :habitats, "Limit scope of research searching to the named accounts/projects/subscriptions, instead of search all habitats visible to our credentials.", :required => false, :type => :strings
51
+ end
52
+
53
+ ok = true
54
+
55
+ app_pattern = Regexp.new('^[a-z][0-9a-z\-_]{0,10}[a-z0-9]$', true)
56
+
57
+ if !$opt[:appname] or !app_pattern.match($opt[:appname])
58
+ MU.log "--appname must match pattern #{app_pattern.to_s}", MU::ERR
59
+ exit 1
60
+ end
61
+
62
+ if !$opt[:savedeploys_given]
63
+ $opt[:savedeploys] = !$opt[:diff]
64
+ end
65
+
66
+ types = []
67
+ $opt[:types].each { |t|
68
+ t_name = t.gsub(/-/, "_")
69
+ t_name.gsub!(/^[^a-z0-9]|[^a-z0-9]$/i, "")
70
+ shortclass, name, plural, classname = MU::Cloud.getResourceNames(t_name)
71
+ if !classname
72
+ MU.log "'#{t}' does not map to a valid Mu resource type", MU::ERR
73
+ ok = false
74
+ else
75
+ types << shortclass
76
+ end
77
+ }
78
+
79
+ clouds = []
80
+ if !$opt[:clouds] or $opt[:clouds].empty?
81
+ MU.log "At least one cloud must be specified", MU::ERR
82
+ ok = false
83
+ end
84
+ $opt[:clouds].each { |cloud|
85
+ found_match = false
86
+ MU::Cloud.supportedClouds.each { |known_cloud|
87
+ if cloud.match(/^[^a-z0-9]*?#{Regexp.quote(known_cloud)}[^a-z0-9]*?$/i)
88
+ clouds << known_cloud
89
+ found_match = true
90
+ break
91
+ end
92
+ }
93
+ if !found_match
94
+ MU.log "'#{cloud}' does not map to a valid Mu cloud layer", MU::ERR
95
+ ok = false
96
+ end
97
+ }
98
+
99
+ if !ok
100
+ puts "Invoke with --help for more information."
101
+ exit 1
102
+ end
103
+
104
+
105
+ adoption = MU::Adoption.new(clouds: clouds, types: types, parent: $opt[:parent], billing: $opt[:billing], sources: $opt[:sources], credentials: $opt[:credentials], group_by: $opt[:grouping].to_sym, savedeploys: $opt[:savedeploys], diff: $opt[:diff], habitats: $opt[:habitats])
106
+ adoption.scrapeClouds
107
+ MU.log "Generating baskets", MU::DEBUG
108
+ boks = adoption.generateBaskets(prefix: $opt[:appname])
109
+
110
+ boks.each_pair { |appname, bok|
111
+ MU.log "Writing to #{appname}.yaml"
112
+ File.open("#{appname}.yaml", "w") { |f|
113
+ f.write JSON.parse(JSON.generate(bok)).to_yaml
114
+ }
115
+ conf_engine = MU::Config.new("#{appname}.yaml")
116
+ stack_conf = conf_engine.config
117
+ # puts stack_conf.to_yaml
118
+ MU.log "#{appname}.yaml validated successfully", MU::NOTICE
119
+ MU::Cloud.resource_types.each_pair { |type, cfg|
120
+ if bok[cfg[:cfg_plural]]
121
+ MU.log "#{bok[cfg[:cfg_plural]].size.to_s} #{cfg[:cfg_plural]}", MU::NOTICE
122
+ end
123
+ }
124
+ }
125
+