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
@@ -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