cloud-mu 3.5.0 → 3.6.3

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 (245) hide show
  1. checksums.yaml +4 -4
  2. data/Berksfile +5 -2
  3. data/Berksfile.lock +135 -0
  4. data/ansible/roles/mu-base/README.md +33 -0
  5. data/ansible/roles/mu-base/defaults/main.yml +2 -0
  6. data/ansible/roles/mu-base/files/check_apm.cfg +1 -0
  7. data/ansible/roles/mu-base/files/check_apm.sh +18 -0
  8. data/ansible/roles/mu-base/files/check_disk.cfg +1 -0
  9. data/ansible/roles/mu-base/files/check_elastic_shards.cfg +1 -0
  10. data/ansible/roles/mu-base/files/check_elastic_shards.sh +12 -0
  11. data/ansible/roles/mu-base/files/check_logstash.cfg +1 -0
  12. data/ansible/roles/mu-base/files/check_logstash.sh +14 -0
  13. data/ansible/roles/mu-base/files/check_mem.cfg +1 -0
  14. data/ansible/roles/mu-base/files/check_updates.cfg +1 -0
  15. data/ansible/roles/mu-base/files/logrotate.conf +35 -0
  16. data/ansible/roles/mu-base/files/nrpe-apm-sudo +1 -0
  17. data/ansible/roles/mu-base/files/nrpe-elasticshards-sudo +2 -0
  18. data/ansible/roles/mu-base/handlers/main.yml +5 -0
  19. data/ansible/roles/mu-base/meta/main.yml +53 -0
  20. data/ansible/roles/mu-base/tasks/main.yml +113 -0
  21. data/ansible/roles/mu-base/templates/nrpe.cfg.j2 +231 -0
  22. data/ansible/roles/mu-base/tests/inventory +2 -0
  23. data/ansible/roles/mu-base/tests/test.yml +5 -0
  24. data/ansible/roles/mu-base/vars/main.yml +1 -0
  25. data/ansible/roles/mu-compliance/README.md +33 -0
  26. data/ansible/roles/mu-compliance/defaults/main.yml +2 -0
  27. data/ansible/roles/mu-compliance/files/U_MS_Windows_Server_2016_V2R1_STIG_SCAP_1-2_Benchmark.xml +15674 -0
  28. data/ansible/roles/mu-compliance/files/U_MS_Windows_Server_2019_V2R1_STIG_SCAP_1-2_Benchmark.xml +17553 -0
  29. data/ansible/roles/mu-compliance/handlers/main.yml +2 -0
  30. data/ansible/roles/mu-compliance/meta/main.yml +53 -0
  31. data/ansible/roles/mu-compliance/tasks/main.yml +45 -0
  32. data/ansible/roles/mu-compliance/tests/inventory +2 -0
  33. data/ansible/roles/mu-compliance/tests/test.yml +5 -0
  34. data/ansible/roles/mu-compliance/vars/main.yml +4 -0
  35. data/ansible/roles/mu-elastic/README.md +51 -0
  36. data/ansible/roles/mu-elastic/defaults/main.yml +2 -0
  37. data/ansible/roles/mu-elastic/files/jvm.options +93 -0
  38. data/ansible/roles/mu-elastic/handlers/main.yml +10 -0
  39. data/ansible/roles/mu-elastic/meta/main.yml +52 -0
  40. data/ansible/roles/mu-elastic/tasks/main.yml +186 -0
  41. data/ansible/roles/mu-elastic/templates/elasticsearch.yml.j2 +110 -0
  42. data/ansible/roles/mu-elastic/templates/kibana.yml.j2 +131 -0
  43. data/ansible/roles/mu-elastic/templates/password_set.expect.j2 +19 -0
  44. data/ansible/roles/mu-elastic/tests/inventory +2 -0
  45. data/ansible/roles/mu-elastic/tests/test.yml +5 -0
  46. data/ansible/roles/mu-elastic/vars/main.yml +2 -0
  47. data/ansible/roles/mu-logstash/README.md +51 -0
  48. data/ansible/roles/mu-logstash/defaults/main.yml +2 -0
  49. data/ansible/roles/mu-logstash/files/02-beats-input.conf +5 -0
  50. data/ansible/roles/mu-logstash/files/10-rails-filter.conf +16 -0
  51. data/ansible/roles/mu-logstash/files/jvm.options +84 -0
  52. data/ansible/roles/mu-logstash/files/logstash.yml +304 -0
  53. data/ansible/roles/mu-logstash/handlers/main.yml +20 -0
  54. data/ansible/roles/mu-logstash/meta/main.yml +52 -0
  55. data/ansible/roles/mu-logstash/tasks/main.yml +254 -0
  56. data/ansible/roles/mu-logstash/templates/20-cloudtrail.conf.j2 +28 -0
  57. data/ansible/roles/mu-logstash/templates/30-elasticsearch-output.conf.j2 +19 -0
  58. data/ansible/roles/mu-logstash/templates/apm-server.yml.j2 +33 -0
  59. data/ansible/roles/mu-logstash/templates/heartbeat.yml.j2 +29 -0
  60. data/ansible/roles/mu-logstash/templates/nginx/apm.conf.j2 +25 -0
  61. data/ansible/roles/mu-logstash/templates/nginx/default.conf.j2 +56 -0
  62. data/ansible/roles/mu-logstash/templates/nginx/elastic.conf.j2 +27 -0
  63. data/ansible/roles/mu-logstash/tests/inventory +2 -0
  64. data/ansible/roles/mu-logstash/tests/test.yml +5 -0
  65. data/ansible/roles/mu-logstash/vars/main.yml +2 -0
  66. data/ansible/roles/mu-rdp/README.md +33 -0
  67. data/ansible/roles/mu-rdp/meta/main.yml +53 -0
  68. data/ansible/roles/mu-rdp/tasks/main.yml +9 -0
  69. data/ansible/roles/mu-rdp/tests/inventory +2 -0
  70. data/ansible/roles/mu-rdp/tests/test.yml +5 -0
  71. data/ansible/roles/mu-windows/tasks/main.yml +3 -0
  72. data/bin/mu-ansible-secret +1 -1
  73. data/bin/mu-aws-setup +4 -3
  74. data/bin/mu-azure-setup +5 -5
  75. data/bin/mu-configure +25 -17
  76. data/bin/mu-firewall-allow-clients +1 -0
  77. data/bin/mu-gcp-setup +3 -3
  78. data/bin/mu-load-config.rb +1 -0
  79. data/bin/mu-node-manage +66 -33
  80. data/bin/mu-self-update +2 -2
  81. data/bin/mu-upload-chef-artifacts +6 -1
  82. data/bin/mu-user-manage +1 -1
  83. data/cloud-mu.gemspec +25 -23
  84. data/cookbooks/firewall/CHANGELOG.md +417 -224
  85. data/cookbooks/firewall/LICENSE +202 -0
  86. data/cookbooks/firewall/README.md +153 -126
  87. data/cookbooks/firewall/TODO.md +6 -0
  88. data/cookbooks/firewall/attributes/firewalld.rb +7 -0
  89. data/cookbooks/firewall/attributes/iptables.rb +3 -3
  90. data/cookbooks/firewall/chefignore +115 -0
  91. data/cookbooks/firewall/libraries/helpers.rb +5 -0
  92. data/cookbooks/firewall/libraries/helpers_firewalld.rb +1 -1
  93. data/cookbooks/firewall/libraries/helpers_firewalld_dbus.rb +72 -0
  94. data/cookbooks/firewall/libraries/helpers_iptables.rb +3 -3
  95. data/cookbooks/firewall/libraries/helpers_nftables.rb +170 -0
  96. data/cookbooks/firewall/libraries/helpers_ufw.rb +7 -0
  97. data/cookbooks/firewall/libraries/helpers_windows.rb +8 -9
  98. data/cookbooks/firewall/libraries/provider_firewall_firewalld.rb +9 -9
  99. data/cookbooks/firewall/libraries/provider_firewall_iptables.rb +7 -7
  100. data/cookbooks/firewall/libraries/provider_firewall_iptables_ubuntu.rb +12 -8
  101. data/cookbooks/firewall/libraries/provider_firewall_iptables_ubuntu1404.rb +13 -9
  102. data/cookbooks/firewall/libraries/provider_firewall_rule.rb +1 -1
  103. data/cookbooks/firewall/libraries/provider_firewall_ufw.rb +5 -5
  104. data/cookbooks/firewall/libraries/provider_firewall_windows.rb +4 -4
  105. data/cookbooks/firewall/libraries/resource_firewall_rule.rb +3 -3
  106. data/cookbooks/firewall/metadata.json +40 -1
  107. data/cookbooks/firewall/metadata.rb +15 -0
  108. data/cookbooks/firewall/recipes/default.rb +7 -7
  109. data/cookbooks/firewall/recipes/disable_firewall.rb +1 -1
  110. data/cookbooks/firewall/recipes/firewalld.rb +87 -0
  111. data/cookbooks/firewall/renovate.json +18 -0
  112. data/cookbooks/firewall/resources/firewalld.rb +28 -0
  113. data/cookbooks/firewall/resources/firewalld_config.rb +39 -0
  114. data/cookbooks/firewall/resources/firewalld_helpers.rb +106 -0
  115. data/cookbooks/firewall/resources/firewalld_icmptype.rb +88 -0
  116. data/cookbooks/firewall/resources/firewalld_ipset.rb +104 -0
  117. data/cookbooks/firewall/resources/firewalld_policy.rb +115 -0
  118. data/cookbooks/firewall/resources/firewalld_service.rb +98 -0
  119. data/cookbooks/firewall/resources/firewalld_zone.rb +118 -0
  120. data/cookbooks/firewall/resources/nftables.rb +71 -0
  121. data/cookbooks/firewall/resources/nftables_rule.rb +113 -0
  122. data/cookbooks/mu-activedirectory/Berksfile +1 -1
  123. data/cookbooks/mu-activedirectory/metadata.rb +1 -1
  124. data/cookbooks/mu-firewall/metadata.rb +2 -2
  125. data/cookbooks/mu-master/Berksfile +4 -3
  126. data/cookbooks/mu-master/attributes/default.rb +5 -2
  127. data/cookbooks/mu-master/files/default/check_elastic.sh +761 -0
  128. data/cookbooks/mu-master/files/default/check_kibana.rb +45 -0
  129. data/cookbooks/mu-master/libraries/mu.rb +24 -0
  130. data/cookbooks/mu-master/metadata.rb +5 -5
  131. data/cookbooks/mu-master/recipes/default.rb +31 -20
  132. data/cookbooks/mu-master/recipes/firewall-holes.rb +5 -0
  133. data/cookbooks/mu-master/recipes/init.rb +58 -19
  134. data/cookbooks/mu-master/recipes/update_nagios_only.rb +251 -178
  135. data/cookbooks/mu-master/templates/default/nagios.conf.erb +5 -11
  136. data/cookbooks/mu-master/templates/default/web_app.conf.erb +3 -0
  137. data/cookbooks/mu-php54/Berksfile +1 -1
  138. data/cookbooks/mu-php54/metadata.rb +2 -2
  139. data/cookbooks/mu-tools/Berksfile +2 -3
  140. data/cookbooks/mu-tools/attributes/default.rb +3 -4
  141. data/cookbooks/mu-tools/files/amazon/etc/bashrc +90 -0
  142. data/cookbooks/mu-tools/files/amazon/etc/login.defs +292 -0
  143. data/cookbooks/mu-tools/files/amazon/etc/profile +77 -0
  144. data/cookbooks/mu-tools/files/amazon/etc/security/limits.conf +63 -0
  145. data/cookbooks/mu-tools/files/amazon/etc/sysconfig/init +19 -0
  146. data/cookbooks/mu-tools/files/amazon/etc/sysctl.conf +82 -0
  147. data/cookbooks/mu-tools/files/amazon-2023/etc/login.defs +294 -0
  148. data/cookbooks/mu-tools/files/default/logrotate.conf +35 -0
  149. data/cookbooks/mu-tools/files/default/nrpe_conf_d.pp +0 -0
  150. data/cookbooks/mu-tools/libraries/helper.rb +21 -9
  151. data/cookbooks/mu-tools/metadata.rb +4 -4
  152. data/cookbooks/mu-tools/recipes/apply_security.rb +3 -2
  153. data/cookbooks/mu-tools/recipes/aws_api.rb +23 -5
  154. data/cookbooks/mu-tools/recipes/base_repositories.rb +4 -1
  155. data/cookbooks/mu-tools/recipes/gcloud.rb +56 -56
  156. data/cookbooks/mu-tools/recipes/nagios.rb +1 -1
  157. data/cookbooks/mu-tools/recipes/nrpe.rb +20 -2
  158. data/cookbooks/mu-tools/recipes/rsyslog.rb +12 -1
  159. data/cookbooks/mu-tools/recipes/set_local_fw.rb +1 -1
  160. data/data_bags/nagios_services/apm_backend_connect.json +5 -0
  161. data/data_bags/nagios_services/apm_listen.json +5 -0
  162. data/data_bags/nagios_services/elastic_shards.json +5 -0
  163. data/data_bags/nagios_services/logstash.json +5 -0
  164. data/data_bags/nagios_services/rhel7_updates.json +8 -0
  165. data/extras/image-generators/AWS/centos7.yaml +1 -0
  166. data/extras/image-generators/AWS/rhel7.yaml +21 -0
  167. data/extras/image-generators/AWS/win2k12r2.yaml +1 -0
  168. data/extras/image-generators/AWS/win2k16.yaml +1 -0
  169. data/extras/image-generators/AWS/win2k19.yaml +1 -0
  170. data/extras/list-stock-amis +0 -0
  171. data/extras/ruby_rpm/muby.spec +8 -5
  172. data/extras/vault_tools/export_vaults.sh +1 -1
  173. data/extras/vault_tools/recreate_vaults.sh +0 -0
  174. data/extras/vault_tools/test_vaults.sh +0 -0
  175. data/install/deprecated-bash-library.sh +1 -1
  176. data/install/installer +4 -2
  177. data/modules/mommacat.ru +3 -1
  178. data/modules/mu/adoption.rb +1 -1
  179. data/modules/mu/cloud/dnszone.rb +2 -2
  180. data/modules/mu/cloud/machine_images.rb +26 -25
  181. data/modules/mu/cloud/resource_base.rb +213 -182
  182. data/modules/mu/cloud/server_pool.rb +1 -1
  183. data/modules/mu/cloud/ssh_sessions.rb +7 -5
  184. data/modules/mu/cloud/wrappers.rb +2 -2
  185. data/modules/mu/cloud.rb +1 -1
  186. data/modules/mu/config/bucket.rb +1 -1
  187. data/modules/mu/config/function.rb +6 -1
  188. data/modules/mu/config/loadbalancer.rb +24 -2
  189. data/modules/mu/config/ref.rb +12 -0
  190. data/modules/mu/config/role.rb +1 -1
  191. data/modules/mu/config/schema_helpers.rb +42 -9
  192. data/modules/mu/config/server.rb +43 -27
  193. data/modules/mu/config/tail.rb +19 -10
  194. data/modules/mu/config.rb +6 -5
  195. data/modules/mu/defaults/AWS.yaml +78 -114
  196. data/modules/mu/deploy.rb +9 -2
  197. data/modules/mu/groomer.rb +12 -4
  198. data/modules/mu/groomers/ansible.rb +104 -20
  199. data/modules/mu/groomers/chef.rb +15 -6
  200. data/modules/mu/master.rb +9 -4
  201. data/modules/mu/mommacat/daemon.rb +4 -2
  202. data/modules/mu/mommacat/naming.rb +1 -2
  203. data/modules/mu/mommacat/storage.rb +7 -2
  204. data/modules/mu/mommacat.rb +33 -6
  205. data/modules/mu/providers/aws/database.rb +161 -8
  206. data/modules/mu/providers/aws/dnszone.rb +11 -6
  207. data/modules/mu/providers/aws/endpoint.rb +81 -6
  208. data/modules/mu/providers/aws/firewall_rule.rb +254 -172
  209. data/modules/mu/providers/aws/function.rb +65 -3
  210. data/modules/mu/providers/aws/loadbalancer.rb +39 -28
  211. data/modules/mu/providers/aws/log.rb +2 -1
  212. data/modules/mu/providers/aws/role.rb +25 -7
  213. data/modules/mu/providers/aws/server.rb +36 -12
  214. data/modules/mu/providers/aws/server_pool.rb +237 -127
  215. data/modules/mu/providers/aws/storage_pool.rb +7 -1
  216. data/modules/mu/providers/aws/user.rb +1 -1
  217. data/modules/mu/providers/aws/userdata/linux.erb +6 -2
  218. data/modules/mu/providers/aws/userdata/windows.erb +7 -5
  219. data/modules/mu/providers/aws/vpc.rb +49 -25
  220. data/modules/mu/providers/aws.rb +13 -8
  221. data/modules/mu/providers/azure/container_cluster.rb +1 -1
  222. data/modules/mu/providers/azure/loadbalancer.rb +2 -2
  223. data/modules/mu/providers/azure/server.rb +5 -2
  224. data/modules/mu/providers/azure/userdata/linux.erb +1 -1
  225. data/modules/mu/providers/azure.rb +11 -8
  226. data/modules/mu/providers/cloudformation/dnszone.rb +1 -1
  227. data/modules/mu/providers/google/container_cluster.rb +15 -2
  228. data/modules/mu/providers/google/folder.rb +2 -1
  229. data/modules/mu/providers/google/function.rb +130 -4
  230. data/modules/mu/providers/google/habitat.rb +2 -1
  231. data/modules/mu/providers/google/loadbalancer.rb +407 -160
  232. data/modules/mu/providers/google/role.rb +16 -3
  233. data/modules/mu/providers/google/server.rb +5 -1
  234. data/modules/mu/providers/google/user.rb +25 -18
  235. data/modules/mu/providers/google/userdata/linux.erb +1 -1
  236. data/modules/mu/providers/google/vpc.rb +53 -7
  237. data/modules/mu/providers/google.rb +39 -39
  238. data/modules/mu.rb +8 -8
  239. data/modules/tests/elk.yaml +46 -0
  240. data/test/mu-master-test/controls/all_in_one.rb +1 -1
  241. metadata +207 -112
  242. data/cookbooks/firewall/CONTRIBUTING.md +0 -2
  243. data/cookbooks/firewall/MAINTAINERS.md +0 -19
  244. data/cookbooks/firewall/libraries/matchers.rb +0 -30
  245. data/extras/image-generators/AWS/rhel71.yaml +0 -17
@@ -45,7 +45,7 @@ if !node['application_attributes']['skip_recipes'].include?('nrpe')
45
45
 
46
46
  case elversion
47
47
  when 7
48
- %w{nrpe_file.pp nrpe_file.te nrpe_check_disk.te nrpe_check_disk.pp}.each { |f|
48
+ %w{nrpe_file.pp nrpe_file.te nrpe_check_disk.te nrpe_check_disk.pp nrpe_conf_d.pp}.each { |f|
49
49
  cookbook_file "#{Chef::Config[:file_cache_path]}/#{f}" do
50
50
  source f
51
51
  end
@@ -64,6 +64,23 @@ if !node['application_attributes']['skip_recipes'].include?('nrpe')
64
64
  not_if "/usr/sbin/semodule -l | grep nrpe_check_disk"
65
65
  notifies :restart, "service[nrpe]", :delayed
66
66
  end
67
+
68
+ execute "Allow NRPE to read /etc/nagios/nrpe.d through SELinux" do
69
+ command "/usr/sbin/semodule -i nrpe_conf_d.pp"
70
+ cwd Chef::Config[:file_cache_path]
71
+ not_if "/usr/sbin/semodule -l | grep nrpe_conf_d"
72
+ notifies :restart, "service[nrpe]", :delayed
73
+ end
74
+
75
+ if node['platform'] == "centos"
76
+ package "nagios-plugins-check-updates"
77
+ nrpe_check "check_updates" do
78
+ command "#{node['nrpe']['plugin_dir']}/check_updates --security-only"
79
+ action :add
80
+ notifies :run, 'execute[selinux permissions]', :immediately if node['platform'] != 'amazon'
81
+ notifies :restart, "service[nrpe]", :delayed
82
+ end
83
+ end
67
84
  when 6
68
85
  if node['platform'] != 'amazon'
69
86
  cookbook_file "nrpe_disk.pp" do
@@ -96,7 +113,7 @@ if !node['application_attributes']['skip_recipes'].include?('nrpe')
96
113
  notifies :run, 'execute[selinux permissions]', :immediately if node['platform'] != 'amazon'
97
114
  notifies :restart, "service[nrpe]", :delayed
98
115
  end
99
-
116
+
100
117
  # execute "chmod o+r /etc/nagios/nrpe.d/check_disk.cfg"
101
118
  # file "/etc/nagios/nrpe.d/check_disk.cfg" do
102
119
  # mode 0640
@@ -113,6 +130,7 @@ if !node['application_attributes']['skip_recipes'].include?('nrpe')
113
130
  end
114
131
  end
115
132
 
133
+ execute "restorecon -Rv /etc/nagios/nrpe.d"
116
134
  service "nrpe" do
117
135
  action [:enable, :start]
118
136
  end
@@ -20,7 +20,11 @@ if !node['application_attributes']['skip_recipes'].include?('rsyslog')
20
20
  case node['platform_family']
21
21
  when "rhel", "debian", "amazon"
22
22
  package "rsyslog"
23
- package "rsyslog-gnutls"
23
+ if platform_family?("amazon") and node['platform_version'].to_i == 2023
24
+ package "rsyslog-crypto"
25
+ else
26
+ package "rsyslog-gnutls"
27
+ end
24
28
  execute "chcon -R -h -t var_log_t /Mu_Logs" do
25
29
  action :nothing
26
30
  only_if { ::Dir.exist?("/Mu_Logs") }
@@ -71,3 +75,10 @@ if !node['application_attributes']['skip_recipes'].include?('rsyslog')
71
75
  end
72
76
  end
73
77
  end
78
+
79
+ cookbook_file "/etc/logrotate.conf" do
80
+ source "logrotate.conf"
81
+ mode 0644
82
+ owner "root"
83
+ group "root"
84
+ end
@@ -19,7 +19,7 @@
19
19
  if !node['application_attributes']['skip_recipes'].include?('set_local_fw')
20
20
  master_ips = get_mu_master_ips
21
21
  case node['platform_family']
22
- when 'rhel', 'amazon'
22
+ when 'rhel'#, 'amazon'
23
23
  include_recipe 'mu-firewall'
24
24
 
25
25
  if elversion >= 7 and node['platform_family'] != "amazon" # Can use firewalld, but not if iptables is already rigged
@@ -0,0 +1,5 @@
1
+ {
2
+ "id": "apm_backend_connect",
3
+ "hostgroup_name": "mu-logstash",
4
+ "command_line": "$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_apm"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "id": "apm_listen",
3
+ "hostgroup_name": "mu-logstash",
4
+ "command_line": "$USER1$/check_http $HOSTADDRESS$ -p 8200"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "id": "elastic_shards",
3
+ "hostgroup_name": "mu-elastic",
4
+ "command_line": "$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_elastic_shards"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "id": "logstash",
3
+ "hostgroup_name": "mu-logstash",
4
+ "command_line": "$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_logstash"
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "rhel7_updates",
3
+ "hostgroup_name": "mu-node",
4
+ "command_line": "$USER1$/check_nrpe -H $HOSTADDRESS$ -t 60 -c check_updates",
5
+ "check_interval": 120,
6
+ "retry_interval": 3600,
7
+ "notification_interval": 14400
8
+ }
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  appname: mu
3
+ us_only: true
3
4
  servers:
4
5
  - name: centos7
5
6
  platform: centos7
@@ -0,0 +1,21 @@
1
+ ---
2
+ appname: mu
3
+ us_only: true
4
+ servers:
5
+ - name: rhel7
6
+ platform: rhel7
7
+ size: m4.large
8
+ vpc:
9
+ name: r7vpc
10
+ scrub_groomer: true
11
+ run_list:
12
+ - recipe[mu-tools::apply_security]
13
+ - recipe[mu-tools::updates]
14
+ - recipe[mu-tools::split_var_partitions]
15
+ create_image:
16
+ image_then_destroy: true
17
+ public: true
18
+ copy_to_regions:
19
+ - "#ALL"
20
+ vpcs:
21
+ - name: r7vpc
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  appname: mu
3
+ us_only: true
3
4
  vpcs:
4
5
  - name: windowsbuild
5
6
  servers:
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  appname: mu
3
+ us_only: true
3
4
  vpcs:
4
5
  - name: windowsbuild
5
6
  servers:
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  appname: mu
3
+ us_only: true
3
4
  vpcs:
4
5
  - name: windowsbuild
5
6
  servers:
File without changes
@@ -1,16 +1,18 @@
1
1
  Summary: Ruby for Mu(by)
2
2
  BuildArch: x86_64
3
3
  Name: muby
4
- Version: 2.7.2
4
+ Version: 3.3.5
5
5
  Release: 1%{dist}
6
6
  Group: Development/Languages
7
7
  License: Ruby License/GPL - see COPYING
8
8
  URL: http://www.ruby-lang.org/
9
9
  Prefix: /opt/rubies
10
- Source: https://cache.ruby-lang.org/pub/ruby/2.7/ruby-%{version}.tar.gz
10
+ Source: https://cache.ruby-lang.org/pub/ruby/3.3/ruby-%{version}.tar.gz
11
11
 
12
12
  BuildRequires: zlib
13
13
  BuildRequires: zlib-devel
14
+ BuildRequires: libyaml
15
+ BuildRequires: libyaml-devel
14
16
  BuildRequires: openssl
15
17
 
16
18
  %description
@@ -19,21 +21,22 @@ I was drunk when I wrote this spec file
19
21
  %prep
20
22
  rm -rf $RPM_BUILD_DIR/ruby-%{version}
21
23
  rm -rf %{prefix}
22
- test -f $RPM_SOURCE_DIR/ruby-%{version}.tar.gz || ( cd $RPM_SOURCE_DIR && curl -O https://cache.ruby-lang.org/pub/ruby/2.7/ruby-%{version}.tar.gz )
24
+ test -f $RPM_SOURCE_DIR/ruby-%{version}.tar.gz || ( cd $RPM_SOURCE_DIR && curl -O https://cache.ruby-lang.org/pub/ruby/3.3/ruby-%{version}.tar.gz )
23
25
  tar -xzvf $RPM_SOURCE_DIR/ruby-%{version}.tar.gz
24
26
  mkdir -p $RPM_BUILD_ROOT%{prefix}
25
27
  ln -s %{prefix}/ruby-%{version} $RPM_BUILD_ROOT%{prefix}/ruby-%{version}
26
28
 
27
29
  %build
28
30
  cd $RPM_BUILD_DIR/ruby-%{version}
29
- ./configure --prefix=%{prefix}/ruby-%{version} --enable-load-relative --enable-shared
31
+ ./configure --prefix=%{prefix}/ruby-%{version} --enable-load-relative --enable-shared --disable-install-doc
30
32
  make
31
33
 
32
34
  %install
33
35
  cd $RPM_BUILD_DIR/ruby-%{version}
34
36
  make install
35
37
  mkdir -p %{prefix}
36
- yes | %{prefix}/ruby-%{version}/bin/gem install bundler --version '~> 2.1.4' --force
38
+ yes | %{prefix}/ruby-%{version}/bin/gem install bundler --version '~> 2.5.18' --force
39
+ yes | %{prefix}/ruby-%{version}/bin/gem install psych --force
37
40
  mkdir -p $RPM_BUILD_ROOT%{prefix}
38
41
  mv %{prefix}/ruby-%{version} $RPM_BUILD_ROOT%{prefix}/
39
42
  mkdir -p $RPM_BUILD_ROOT/usr/local/bin
@@ -1,3 +1,3 @@
1
1
  #!/bin/bash
2
2
  # Exports existing vaults to a vaults directory for use by test_vaults and recreate_vaults
3
- mkdir -p ~/vaults ; for i in `knife data bag list | grep -v -- -`;do echo $i; mkdir -p vaults/$i ; for j in `knife data bag show $i | grep -v '_keys$'`;do echo " $j"; knife vault show $i $j -F json > vaults/$i/$j.json;done;done ; find vaults -empty -delete
3
+ mkdir -p ~/vaults ; for i in `knife data bag list | grep -vE -- '-[0-9]{10}-'`;do echo $i; mkdir -p vaults/$i ; for j in `knife data bag show $i | grep -v '_keys$'`;do echo " $j"; knife vault show $i $j -F json > vaults/$i/$j.json;done;done ; find vaults -empty -delete
File without changes
File without changes
@@ -1299,7 +1299,7 @@ install_chef()
1299
1299
  status_message "Installing current Chef client"
1300
1300
  yum -y erase chef || rpm -e chef # one of these will get it
1301
1301
  rm -rf /opt/chef # and stay out
1302
- curl https://www.chef.io/chef/install.sh > /root/chef-install.sh
1302
+ curl https://omnitruck.chef.io/install.sh > /root/chef-install.sh
1303
1303
  sh /root/chef-install.sh -v $CHEF_CLIENT_VERSION
1304
1304
  fi
1305
1305
  if [ -f /opt/chef/embedded/bin/gem ];then
data/install/installer CHANGED
@@ -1,8 +1,10 @@
1
1
  #!/bin/sh
2
2
 
3
+
4
+ yum -y install git dmidecode
3
5
  BOLD=`tput bold`
4
6
  NORM=`tput sgr0`
5
- CHEF_CLIENT_VERSION="16.9.29"
7
+ CHEF_CLIENT_VERSION="18.5.0"
6
8
  if [ "$MU_BRANCH" == "" ];then
7
9
  MU_BRANCH="master"
8
10
  mydir="`dirname $0`"
@@ -45,7 +47,7 @@ if ! /bin/rpm -q $CHEF_CLIENT_PKG > /dev/null ;then
45
47
  # Drop any old Chef packages laying around, first
46
48
  /usr/bin/yum -y erase chef || /bin/rpm -e chef
47
49
  /bin/rm -rf /opt/chef ~/.berkshelf ~/.chef /etc/chef
48
- /usr/bin/curl https://www.chef.io/chef/install.sh > /root/chef-install.sh
50
+ /usr/bin/curl https://omnitruck.chef.io/install.sh > /root/chef-install.sh
49
51
  /bin/sh /root/chef-install.sh -v $CHEF_CLIENT_VERSION
50
52
  fi
51
53
 
data/modules/mommacat.ru CHANGED
@@ -417,12 +417,14 @@ app = proc do |env|
417
417
  # XXX make sure we handle mangled input safely
418
418
  params = JSON.parse(Base64.decode64(req["add_volume"]))
419
419
  MU.log "add_volume request", MU::NOTICE, details: params
420
- instance.addVolume(params["dev"], params["size"], delete_on_termination: params["delete_on_termination"])
420
+ Thread.current.thread_variable_set("addVolume", req["mu_instance_id"])
421
+ instance.addVolume(dev: params["dev"], size: params["size"], delete_on_termination: params["delete_on_termination"])
421
422
  else
422
423
  returnval = throw500 "I don't know how to add a volume for #{instance}"
423
424
  end
424
425
  elsif !instance.nil?
425
426
  if !req["mu_bootstrap"].nil?
427
+ Thread.current.thread_variable_set("groomRequest", req["mu_instance_id"])
426
428
  kittenpile.groomNode(req["mu_instance_id"], req["mu_resource_name"], req["mu_resource_type"], mu_name: mu_name, sync_wait: true)
427
429
  returnval[2] = ["Grooming asynchronously, check Momma Cat logs on the master for details."]
428
430
  else
@@ -285,7 +285,7 @@ module MU
285
285
  rescue StandardError
286
286
  ensure
287
287
  if !obj_desc
288
- MU.log cloud+" "+type.to_s+" "+obj_thr.cloud_id+" did not return a cloud descriptor, skipping", MU::WARN
288
+ MU.log cloud+" "+type.to_s+" "+obj_thr.cloud_id+" #{cloud == "Google" ? "in org #{MU::Cloud::Google.getOrg(obj_thr.credentials).display_name} ": ""}did not return a cloud descriptor, skipping", MU::WARN
289
289
  next
290
290
  end
291
291
  end
@@ -22,9 +22,9 @@ module MU
22
22
 
23
23
  # Set a generic .platform-mu DNS entry for a resource, and return the name
24
24
  # that was set.
25
- def self.genericMuDNSEntry(*flags)
25
+ def self.genericMuDNSEntry(**flags)
26
26
  # XXX have this switch on a global config for where Mu puts its DNS
27
- MU::Cloud.resourceClass(MU::Config.defaultCloud, "DNSZone").genericMuDNSEntry(flags.first)
27
+ MU::Cloud.resourceClass(MU::Config.defaultCloud, "DNSZone").genericMuDNSEntry(**flags)
28
28
  end
29
29
 
30
30
  # Wrapper for {MU::Cloud::AWS::DNSZone.manageRecord}. Spawns threads to create all
@@ -27,14 +27,14 @@ module MU
27
27
  # Aliases for platform names, in case we don't have actual images built for
28
28
  # them.
29
29
  PLATFORM_ALIASES = {
30
- "linux" => "centos7",
30
+ "linux" => "amazon2023",
31
31
  "windows" => "win2k12r2",
32
32
  "win2k12" => "win2k12r2",
33
33
  "ubuntu" => "ubuntu16",
34
34
  "centos" => "centos7",
35
35
  "rhel7" => "rhel71",
36
36
  "rhel" => "rhel71",
37
- "amazon" => "amazon2016"
37
+ "amazon" => "amazon2023"
38
38
  }
39
39
 
40
40
  @@image_fetch_cache = {}
@@ -87,28 +87,29 @@ module MU
87
87
  end
88
88
 
89
89
  images = nil
90
- urls.each { |base_url|
91
- @@image_fetch_semaphore.synchronize {
92
- if @@image_fetch_cache[cloud] and (Time.now - @@image_fetch_cache[cloud]['time']) < 30
93
- images = @@image_fetch_cache[cloud]['contents'].dup
94
- else
95
- begin
96
- Timeout.timeout(2) do
97
- response = URI.open("#{base_url}/#{cloud}.yaml").read
98
- images ||= {}
99
- images.deep_merge!(YAML.load(response))
100
- break
101
- end
102
- rescue StandardError => e
103
- if fail_hard
104
- raise MuError, "Failed to fetch stock images from #{base_url}/#{cloud}.yaml (#{e.message})"
105
- else
106
- MU.log "Failed to fetch stock images from #{base_url}/#{cloud}.yaml (#{e.message})", MU::WARN if !quiet
107
- end
108
- end
109
- end
110
- }
111
- }
90
+ # XXX no ability to update this cache anymore, and it's pointless now anyway
91
+ # urls.each { |base_url|
92
+ # @@image_fetch_semaphore.synchronize {
93
+ # if @@image_fetch_cache[cloud] and (Time.now - @@image_fetch_cache[cloud]['time']) < 30
94
+ # images = @@image_fetch_cache[cloud]['contents'].dup
95
+ # else
96
+ # begin
97
+ # Timeout.timeout(2) do
98
+ # response = URI.open("#{base_url}/#{cloud}.yaml").read
99
+ # images ||= {}
100
+ # images.deep_merge!(YAML.load(response))
101
+ # break
102
+ # end
103
+ # rescue StandardError => e
104
+ # if fail_hard
105
+ # raise MuError, "Failed to fetch stock images from #{base_url}/#{cloud}.yaml (#{e.message})"
106
+ # else
107
+ # MU.log "Failed to fetch stock images from #{base_url}/#{cloud}.yaml (#{e.message})", MU::WARN if !quiet
108
+ # end
109
+ # end
110
+ # end
111
+ # }
112
+ # }
112
113
 
113
114
  @@image_fetch_semaphore.synchronize {
114
115
  @@image_fetch_cache[cloud] = {
@@ -127,7 +128,7 @@ module MU
127
128
  [backwards_compat[cloud], cloud].each { |file|
128
129
  next if file.nil?
129
130
  if File.exist?("#{MU.myRoot}/modules/mu/defaults/#{file}.yaml")
130
- images = YAML.load(File.read("#{MU.myRoot}/modules/mu/defaults/#{file}.yaml"))
131
+ images = YAML.load(File.read("#{MU.myRoot}/modules/mu/defaults/#{file}.yaml"), aliases: true)
131
132
  break
132
133
  end
133
134
  }