cloud-mu 2.1.0beta → 3.0.0beta

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 (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
+