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
@@ -145,7 +145,7 @@ Environment='KUBELET_EXTRA_ARGS=$KUBELET_EXTRA_ARGS'
145
145
 
146
146
  ["/var/lib/kubelet/kubeconfig", "/root/.kube/config"].each { |kubecfg|
147
147
  template kubecfg do
148
- source "kubeconfig.erb"
148
+ source "kubeconfig-eks.erb"
149
149
  variables(
150
150
  :endpoint => endpoint,
151
151
  :cluster => cluster,
@@ -28,49 +28,24 @@ if platform_family?("rhel") or platform_family?("amazon")
28
28
  end
29
29
  package "google-cloud-sdk"
30
30
  elsif node['platform_version'].to_i == 6
31
- rpm_package "IUS" do
32
- source "https://#{node['platform']}#{node['platform_version'].to_i}.iuscommunity.org/ius-release.rpm"
33
- end
34
- package ["python27", "python27-libs"]
31
+ version = "267.0.0"
35
32
  remote_file "#{Chef::Config[:file_cache_path]}/gcloud-cli.sh" do
36
33
  source "https://sdk.cloud.google.com"
37
34
  action :nothing
38
35
  end
39
36
  remote_file "#{Chef::Config[:file_cache_path]}/gcloud-cli.tar.gz" do
40
- source "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-167.0.0-linux-x86_64.tar.gz"
37
+ source "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-#{version}-linux-x86_64.tar.gz"
41
38
  action :nothing
42
39
  end
43
40
  bash "install gcloud-cli" do
44
41
  cwd "/opt"
45
42
  code <<-EOH
46
- # This broken-arsed package set install themselves in the wrong prefix
47
- # for some reason, but if you do it manually they land in the right
48
- # place. Whatever, just symlink it.
49
- filelist=`rpm -qa | grep ^python27- | xargs rpm -ql`
50
- for d in $filelist;do
51
- if [ -d "$d" ];then
52
- rightpath=`echo $d | sed 's/^\\/opt\\/rh\\/python27\\/root//'`
53
- if [ "$rightpath" != "$d" -a ! -e "$rightpath" ];then
54
- echo $rightpath | grep -v /
55
- mkdir -p "$rightpath"
56
- fi
57
- fi
58
- done
59
- for f in $filelist;do
60
- if [ -f "$f" ];then
61
- rightpath=`echo $f | sed 's/^\\/opt\\/rh\\/python27\\/root//'`
62
- if [ "$rightpath" != "$f" -a ! -e "$rightpath" ];then
63
- ln -s "$f" "$rightpath"
64
- fi
65
- fi
66
- done
67
43
  tar -xzf #{Chef::Config[:file_cache_path]}/gcloud-cli.tar.gz
68
- CLOUDSDK_PYTHON=/usr/bin/python2.7 ./google-cloud-sdk/install.sh -q
69
- # CLOUDSDK_PYTHON=/usr/bin/python2.7 sh #{Chef::Config[:file_cache_path]}/gcloud-cli.sh --install-dir=/opt --disable-prompts
44
+ CLOUDSDK_PYTHON="`/bin/rpm -ql muthon | grep '/bin/python$'`" ./google-cloud-sdk/install.sh -q
70
45
  EOH
71
46
  notifies :create, "remote_file[#{Chef::Config[:file_cache_path]}/gcloud-cli.sh]", :before
72
47
  notifies :create, "remote_file[#{Chef::Config[:file_cache_path]}/gcloud-cli.tar.gz]", :before
73
- not_if { ::File.exist?("/opt/google-cloud-sdk/bin/gcloud") }
48
+ not_if "/opt/google-cloud-sdk/bin/gcloud version | grep 'Google Cloud SDK #{version}'"
74
49
  end
75
50
  link "/etc/bash_completion.d/gcloud" do
76
51
  to "/opt/google-cloud-sdk/completion.bash.inc"
@@ -79,7 +54,7 @@ if platform_family?("rhel") or platform_family?("amazon")
79
54
  to "/opt/google-cloud-sdk/path.bash.inc"
80
55
  end
81
56
  file "/etc/profile.d/gcloud_python.sh" do
82
- content "export CLOUDSDK_PYTHON=/usr/bin/python2.7\n"
57
+ content "export CLOUDSDK_PYTHON=\"`/bin/rpm -ql muthon | grep '/bin/python$'`\"\n"
83
58
  mode 0644
84
59
  end
85
60
  end
@@ -16,4 +16,4 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- include_recipe "nagios"
19
+ include_recipe "mu-nagios"
@@ -24,6 +24,7 @@ if !node['application_attributes']['skip_recipes'].include?('rsyslog')
24
24
  execute "chcon -R -h -t var_log_t /Mu_Logs" do
25
25
  action :nothing
26
26
  only_if { ::Dir.exist?("/Mu_Logs") }
27
+ not_if "/sbin/getenforce | grep -cim1 disabled"
27
28
  end
28
29
  service "rsyslog" do
29
30
  action [:enable, :start]
@@ -0,0 +1,19 @@
1
+ #
2
+ # Cookbook:: mu-tools
3
+ # Recipe:: selinux
4
+ #
5
+ # Copyright:: 2019, The Authors, All Rights Reserved.
6
+
7
+ if !node['application_attributes']['skip_recipes'].include?('selinux')
8
+
9
+ selinux_state "SELinux Enforcing" do
10
+ action :enforcing
11
+ notifies :request_reboot, 'reboot[now]', :immediately
12
+ end
13
+
14
+ reboot 'now' do
15
+ action :nothing
16
+ reason 'Must reboot to enable SELinux.'
17
+ end
18
+
19
+ end
@@ -23,7 +23,6 @@
23
23
  # make it part of your regular build process.
24
24
 
25
25
  if !node['application_attributes']['skip_recipes'].include?('split_var_partitions')
26
- log "*************** "+node['platform']
27
26
  case node['platform']
28
27
  when "redhat", "rhel", "centos", "amazon"
29
28
 
@@ -19,16 +19,148 @@ if !node['application_attributes']['skip_recipes'].include?('windows-client')
19
19
  case node['platform']
20
20
  when "windows"
21
21
  include_recipe 'chef-vault'
22
- ::Chef::Recipe.send(:include, Chef::Mixin::PowershellOut)
22
+
23
+ windows_vault = chef_vault_item node['windows_auth_vault'], node['windows_auth_item']
24
+
25
+ sshd_user = 'SYSTEM' #windows_vault[node['windows_sshd_username_field']]
26
+
27
+ sshd_password = windows_vault[node['windows_sshd_password_field']]
28
+
29
+ windows_version = node['platform_version'].to_i
30
+
31
+ public_keys = Array.new
32
+
33
+ if windows_version == 10
34
+ Chef::Log.info "version #{windows_version}, using openssh"
35
+
36
+ include_recipe 'chocolatey'
37
+
38
+ openssh_path = 'C:\Program Files\OpenSSH-Win64'
39
+
40
+ ssh_program_data = "#{ENV['ProgramData']}/ssh"
41
+
42
+ ssh_dir = "C:/Users/Administrator/.ssh"
43
+
44
+ authorized_keys = "#{ssh_dir}/authorized_keys"
45
+
46
+ public_key = node['deployment']['ssh_public_key']
47
+
48
+ files = []
49
+
50
+ packages = %w(openssh ruby)
51
+
52
+ chocolatey_package packages
53
+
54
+ windows_path 'Add OpenSSH to path' do
55
+ path openssh_path
56
+ action :add
57
+ end
58
+
59
+ powershell_script 'Install SSH' do
60
+ code '.\install-sshd.ps1'
61
+ cwd openssh_path
62
+ end
63
+
64
+ # firewall 'default' do
65
+ # ipv6_enabled node['firewall']['ipv6_enabled']
66
+ # action :disable
67
+ # end
68
+ #
69
+ # firewall_rule 'allow ssh' do
70
+ # port 22
71
+ # command :allow
72
+ # description 'OpenSSH Server (sshd)'
73
+ # end
74
+ #
75
+ # firewall_rule 'allow RDP' do
76
+ # port 3389
77
+ # command :allow
78
+ # end
79
+ #
80
+ # firewall_rule 'allow winrm' do
81
+ # port 5989
82
+ # command :allow
83
+ # end
84
+
85
+ directory 'create ssh ProgramData' do
86
+ path ssh_program_data
87
+ owner sshd_user
88
+ rights :full_control, sshd_user
89
+ rights :full_control, 'Administrator'
90
+ notifies :run, 'powershell_script[Generate Host Key]', :immediately
91
+ end
92
+
93
+ powershell_script 'Generate Host Key' do
94
+ code '.\ssh-keygen.exe -A'
95
+ cwd openssh_path
96
+ action :nothing
97
+ notifies :create, "template[#{ssh_program_data}/sshd_config]", :immediately
98
+ end
99
+
100
+ template "#{ssh_program_data}/sshd_config" do
101
+ action :nothing
102
+ owner sshd_user
103
+ source "sshd_config.erb"
104
+ mode '0600'
105
+ cookbook "mu-tools"
106
+ notifies :run, 'ruby[find files to change ownership of]', :immediately
107
+ end
108
+
109
+ directory "set file ownership" do
110
+ action :nothing
111
+ path ssh_program_data
112
+ owner sshd_user
113
+ mode '0600'
114
+ rights :full_control, sshd_user
115
+ deny_rights :full_control, 'Administrator'
116
+ end
117
+
118
+ windows_service 'sshd' do
119
+ action :nothing #[ :enable, :start ]
120
+ end
121
+
122
+ group 'sshusers' do
123
+ members [sshd_user, 'Administrator']
124
+ end
125
+
126
+ ruby 'find files to change ownership of' do
127
+ action :nothing
128
+ code <<-EOH
129
+ files = Dir.entries ssh_program_data
130
+ puts files
131
+ EOH
132
+ end
133
+
134
+ log 'files in ssh' do
135
+ message files.join
136
+ level :info
137
+ end
138
+
139
+ files.each do |file|
140
+ file "#{ssh_program_data}#{file}" do
141
+ owner sshd_user
142
+ deny_rights :full_control, 'Administrator'
143
+ end
144
+ end
145
+
146
+ directory "create Admin's .ssh directory" do
147
+ path ssh_dir
148
+ recursive true
149
+ owner sshd_user
150
+ end
151
+
152
+ file authorized_keys do
153
+ owner 'Administrator'
154
+ content public_key
155
+ end
156
+
157
+ else
158
+ ::Chef::Recipe.send(:include, Chef::Mixin::PowershellOut)
23
159
 
24
160
  # remote_file "cygwin-x86_64.exe" do
25
161
  # path "#{Chef::Config[:file_cache_path]}/cygwin-x86_64.exe"
26
162
  # source "http://cygwin.com/setup-x86_64.exe"
27
- # XXX guard with a version check
28
- # end
29
-
30
- # XXX keep a local cache of packages... really our own damn mirror
31
- cygwindir = "c:/bin/cygwin"
163
+ cygwindir = "c:/bin/cygwin"
32
164
  # pkgs = ["bash", "mintty", "vim", "curl", "openssl", "wget", "lynx", "openssh"]
33
165
 
34
166
  # powershell_script "install Cygwin" do
@@ -38,7 +170,7 @@ if !node['application_attributes']['skip_recipes'].include?('windows-client')
38
170
  # not_if { ::File.exist?("#{cygwindir}/Cygwin.bat") }
39
171
  # end
40
172
 
41
- # Be prepared to reinit installs that are missing key utilities
173
+ # Be prepared to reinit installs that are missing key utilities
42
174
  # file "#{cygwindir}/etc/setup/installed.db" do
43
175
  # action :delete
44
176
  # not_if { ::File.exist?("#{cygwindir}/bin/cygcheck.exe") }
@@ -52,138 +184,135 @@ if !node['application_attributes']['skip_recipes'].include?('windows-client')
52
184
  # end
53
185
  # }
54
186
 
55
- reboot "Cygwin LSA" do
56
- action :nothing
57
- reason "Enabling Cygwin LSA support"
58
- end
59
-
60
- powershell_script "Configuring Cygwin LSA support" do
61
- code <<-EOH
62
- Invoke-Expression '& #{cygwindir}/bin/bash.exe --login -c "echo yes | /bin/cyglsa-config"'
63
- EOH
64
- not_if {
65
- lsa_found = false
66
- if registry_key_exists?("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa")
67
- registry_get_values("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa").each { |val|
68
- if val[:name] == "Authentication Packages"
69
- lsa_found = true if val[:data].grep(/cyglsa64\.dll/)
70
- break
71
- end
72
- }
73
- end
74
- lsa_found
75
- }
76
- notifies :reboot_now, "reboot[Cygwin LSA]", :immediately
77
- end
187
+ reboot "Cygwin LSA" do
188
+ action :nothing
189
+ reason "Enabling Cygwin LSA support"
190
+ end
78
191
 
79
- windows_vault = chef_vault_item(node['windows_auth_vault'], node['windows_auth_item'])
80
- sshd_user = windows_vault[node['windows_sshd_username_field']]
81
- sshd_password = windows_vault[node['windows_sshd_password_field']]
82
- powershell_script "enable Cygwin sshd" do
83
- code <<-EOH
84
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "ssh-host-config -y -c ntsec -w ''#{sshd_password}'' -u #{sshd_user}"'
85
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "sed -i.bak ''s/#.*StrictModes.*yes/StrictModes no/'' /etc/sshd_config"'
86
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "sed -i.bak ''s/#.*PasswordAuthentication.*yes/PasswordAuthentication no/'' /etc/sshd_config"'
87
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "chown #{sshd_user} /var/empty /var/log/sshd.log /etc/ssh*; chmod 755 /var/empty"'
88
- EOH
89
- sensitive true
90
- not_if %Q{Get-Service "sshd"}
91
- end
92
- powershell_script "set unix-style Cygwin sshd permissions" do
93
- code <<-EOH
94
- if((Get-WmiObject win32_computersystem).partofdomain){
95
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkpasswd -d > /etc/passwd"'
96
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkgroup -l -d > /etc/group"'
97
- } else {
98
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkpasswd -l > /etc/passwd"'
99
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkgroup -l > /etc/group"'
192
+ powershell_script "Configuring Cygwin LSA support" do
193
+ code <<-EOH
194
+ Invoke-Expression '& #{cygwindir}/bin/bash.exe --login -c "echo yes | /bin/cyglsa-config"'
195
+ EOH
196
+ not_if {
197
+ lsa_found = false
198
+ if registry_key_exists?("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa")
199
+ registry_get_values("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa").each { |val|
200
+ if val[:name] == "Authentication Packages"
201
+ lsa_found = true if val[:data].grep(/cyglsa64\.dll/)
202
+ break
203
+ end
204
+ }
205
+ end
206
+ lsa_found
100
207
  }
101
- Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "chown #{sshd_user} /var/empty /var/log/sshd.log /etc/ssh*; chmod 755 /var/empty"'
102
- EOH
103
- end
208
+ notifies :reboot_now, "reboot[Cygwin LSA]", :immediately
209
+ end
104
210
 
105
- include_recipe 'mu-activedirectory'
211
+ powershell_script "enable Cygwin sshd" do
212
+ code <<-EOH
213
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "ssh-host-config -y -c ntsec -w ''#{sshd_password}'' -u #{sshd_user}"'
214
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "sed -i.bak ''s/#.*StrictModes.*yes/StrictModes no/'' /etc/sshd_config"'
215
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash.exe --login -c "sed -i.bak ''s/#.*PasswordAuthentication.*yes/PasswordAuthentication no/'' /etc/sshd_config"'
216
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "chown #{sshd_user} /var/empty /var/log/sshd.log /etc/ssh*; chmod 755 /var/empty"'
217
+ EOH
218
+ sensitive true
219
+ not_if %Q{Get-Service "sshd"}
220
+ end
221
+ powershell_script "set unix-style Cygwin sshd permissions" do
222
+ code <<-EOH
223
+ if((Get-WmiObject win32_computersystem).partofdomain){
224
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkpasswd -d > /etc/passwd"'
225
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkgroup -l -d > /etc/group"'
226
+ } else {
227
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkpasswd -l > /etc/passwd"'
228
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "mkgroup -l > /etc/group"'
229
+ }
230
+ Invoke-Expression -Debug '& #{cygwindir}/bin/bash --login -c "chown #{sshd_user} /var/empty /var/log/sshd.log /etc/ssh*; chmod 755 /var/empty"'
231
+ EOH
232
+ end
106
233
 
107
- ::Chef::Recipe.send(:include, Chef::Mixin::PowershellOut)
234
+ include_recipe 'mu-activedirectory'
108
235
 
109
- template "c:/bin/cygwin/etc/sshd_config" do
110
- source "sshd_config.erb"
111
- mode 0644
112
- cookbook "mu-tools"
113
- ignore_failure true
114
- end
236
+ ::Chef::Recipe.send(:include, Chef::Mixin::PowershellOut)
115
237
 
116
- ec2config_user= windows_vault[node['windows_ec2config_username_field']]
117
- ec2config_password = windows_vault[node['windows_ec2config_password_field']]
118
- login_dom = "."
238
+ template "c:/bin/cygwin/etc/sshd_config" do
239
+ source "sshd_config.erb"
240
+ mode 0644
241
+ cookbook "mu-tools"
242
+ ignore_failure true
243
+ end
119
244
 
120
- if in_domain?
245
+ ec2config_user= windows_vault[node['windows_ec2config_username_field']]
246
+ ec2config_password = windows_vault[node['windows_ec2config_password_field']]
247
+ login_dom = "."
121
248
 
122
- ad_vault = chef_vault_item(node['ad']['domain_admin_vault'], node['ad']['domain_admin_item'])
123
- login_dom = node['ad']['netbios_name']
249
+ if in_domain?
124
250
 
125
- windows_users node['ad']['computer_name'] do
126
- username ad_vault[node['ad']['domain_admin_username_field']]
127
- password ad_vault[node['ad']['domain_admin_password_field']]
128
- domain_name node['ad']['domain_name']
129
- netbios_name node['ad']['netbios_name']
130
- dc_ips node['ad']['dc_ips']
131
- ssh_user sshd_user
132
- ssh_password sshd_password
133
- ec2config_user ec2config_user
134
- ec2config_password ec2config_password
135
- end
251
+ ad_vault = chef_vault_item(node['ad']['domain_admin_vault'], node['ad']['domain_admin_item'])
252
+ login_dom = node['ad']['netbios_name']
136
253
 
137
- aws_windows "ec2" do
138
- username ec2config_user
139
- service_username "#{node['ad']['netbios_name']}\\#{ec2config_user}"
140
- password ec2config_password
141
- end
254
+ windows_users node['ad']['computer_name'] do
255
+ username ad_vault[node['ad']['domain_admin_username_field']]
256
+ password ad_vault[node['ad']['domain_admin_password_field']]
257
+ domain_name node['ad']['domain_name']
258
+ netbios_name node['ad']['netbios_name']
259
+ dc_ips node['ad']['dc_ips']
260
+ ssh_user sshd_user
261
+ ssh_password sshd_password
262
+ ec2config_user ec2config_user
263
+ ec2config_password ec2config_password
264
+ end
142
265
 
143
- scheduled_tasks "tasks" do
144
- username ad_vault[node['ad']['domain_admin_username_field']]
145
- password ad_vault[node['ad']['domain_admin_password_field']]
146
- end
266
+ aws_windows "ec2" do
267
+ username ec2config_user
268
+ service_username "#{node['ad']['netbios_name']}\\#{ec2config_user}"
269
+ password ec2config_password
270
+ end
147
271
 
148
- sshd_service "sshd" do
149
- service_username "#{node['ad']['netbios_name']}\\#{sshd_user}"
150
- username sshd_user
151
- password sshd_password
152
- end
272
+ scheduled_tasks "tasks" do
273
+ username ad_vault[node['ad']['domain_admin_username_field']]
274
+ password ad_vault[node['ad']['domain_admin_password_field']]
275
+ end
153
276
 
154
- begin
155
- resources('service[sshd]')
156
- rescue Chef::Exceptions::ResourceNotFound
157
- service "sshd" do
158
- action [:enable, :start]
159
- sensitive true
277
+ sshd_service "sshd" do
278
+ service_username "#{node['ad']['netbios_name']}\\#{sshd_user}"
279
+ username sshd_user
280
+ password sshd_password
160
281
  end
161
- end
162
- else
163
- windows_users node['hostname'] do
164
- username node['windows_admin_username']
165
- password windows_vault[node['windows_auth_password_field']]
166
- ssh_user sshd_user
167
- ssh_password sshd_password
168
- ec2config_user ec2config_user
169
- ec2config_password ec2config_password
170
- end
171
282
 
172
- aws_windows "ec2" do
173
- username ec2config_user
174
- service_username ".\\#{ec2config_user}"
175
- password ec2config_password
176
- end
283
+ begin
284
+ resources('service[sshd]')
285
+ escue Chef::Exceptions::ResourceNotFound
286
+ service "sshd" do
287
+ action [:enable, :start]
288
+ sensitive true
289
+ end
290
+ end
291
+ else
292
+ windows_users node['hostname'] do
293
+ username node['windows_admin_username']
294
+ password windows_vault[node['windows_auth_password_field']]
295
+ ssh_user sshd_user
296
+ ssh_password sshd_password
297
+ ec2config_user ec2config_user
298
+ ec2config_password ec2config_password
299
+ end
177
300
 
178
- scheduled_tasks "tasks" do
179
- username node['windows_admin_username']
180
- password windows_vault[node['windows_auth_password_field']]
181
- end
301
+ aws_windows "ec2" do
302
+ username ec2config_user
303
+ service_username ".\\#{ec2config_user}"
304
+ password ec2config_password
305
+ end
182
306
 
183
- sshd_service "sshd" do
184
- username sshd_user
185
- service_username ".\\#{sshd_user}"
186
- password sshd_password
307
+ scheduled_tasks "tasks" do
308
+ username node['windows_admin_username']
309
+ password windows_vault[node['windows_auth_password_field']]
310
+ end
311
+
312
+ sshd_service "sshd" do
313
+ username sshd_user
314
+ service_username ".\\#{sshd_user}"
315
+ password sshd_password
187
316
  end
188
317
  begin
189
318
  resources('service[sshd]')
@@ -195,8 +324,13 @@ if !node['application_attributes']['skip_recipes'].include?('windows-client')
195
324
  end
196
325
  end
197
326
  end
327
+ end
198
328
 
199
329
  else
200
330
  Chef::Log.info("mu-tools::windows-client: Unsupported platform #{node['platform']}")
201
331
  end
202
332
  end
333
+ # Copyright:: Copyright (c) 2014 eGlobalTech, Inc., all rights reserved
334
+ #
335
+ # Cookbook Name:: mu-tools
336
+ # Recipe:: windows-client