cloud-mu 2.0.0.pre.alpha7 → 2.0.0.pre.alpha8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/cloud-mu.gemspec +2 -2
  3. data/cookbooks/awscli/recipes/default.rb +3 -3
  4. data/cookbooks/mu-activedirectory/attributes/default.rb +2 -2
  5. data/cookbooks/mu-activedirectory/libraries/helper.rb +2 -2
  6. data/cookbooks/mu-activedirectory/providers/domain.rb +0 -4
  7. data/cookbooks/mu-activedirectory/providers/domain_controller.rb +2 -6
  8. data/cookbooks/mu-activedirectory/providers/domain_node.rb +1 -1
  9. data/cookbooks/mu-activedirectory/recipes/domain-controller.rb +0 -2
  10. data/cookbooks/mu-activedirectory/recipes/domain.rb +0 -2
  11. data/cookbooks/mu-activedirectory/recipes/sssd.rb +6 -6
  12. data/cookbooks/mu-glusterfs/recipes/server.rb +3 -3
  13. data/cookbooks/mu-jenkins/recipes/default.rb +3 -3
  14. data/cookbooks/mu-master/recipes/389ds.rb +4 -4
  15. data/cookbooks/mu-master/recipes/default.rb +1 -1
  16. data/cookbooks/mu-master/recipes/init.rb +14 -14
  17. data/cookbooks/mu-master/recipes/ssl-certs.rb +2 -2
  18. data/cookbooks/mu-master/recipes/update_nagios_only.rb +2 -2
  19. data/cookbooks/mu-splunk/definitions/splunk_installer.rb +1 -1
  20. data/cookbooks/mu-splunk/libraries/splunk_app_provider.rb +1 -1
  21. data/cookbooks/mu-splunk/recipes/upgrade.rb +3 -3
  22. data/cookbooks/mu-tools/libraries/helper.rb +3 -4
  23. data/cookbooks/mu-tools/recipes/add_admin_ssh_keys.rb +1 -1
  24. data/cookbooks/mu-tools/recipes/apply_security.rb +4 -4
  25. data/cookbooks/mu-tools/recipes/base_repositories.rb +1 -1
  26. data/cookbooks/mu-tools/recipes/cloudinit.rb +1 -1
  27. data/cookbooks/mu-tools/recipes/efs.rb +4 -4
  28. data/cookbooks/mu-tools/recipes/eks.rb +2 -2
  29. data/cookbooks/mu-tools/recipes/gcloud.rb +2 -2
  30. data/cookbooks/mu-tools/recipes/newclient.rb +1 -1
  31. data/cookbooks/mu-tools/recipes/python_pip.rb +1 -0
  32. data/cookbooks/mu-tools/recipes/rsyslog.rb +1 -1
  33. data/cookbooks/mu-tools/recipes/set_local_fw.rb +1 -1
  34. data/cookbooks/mu-tools/recipes/set_mu_hostname.rb +2 -2
  35. data/cookbooks/mu-tools/recipes/splunk-client.rb +2 -2
  36. data/cookbooks/mu-tools/recipes/updates.rb +1 -1
  37. data/cookbooks/mu-tools/recipes/windows-client.rb +2 -2
  38. data/cookbooks/mu-tools/resources/disk.rb +4 -4
  39. data/cookbooks/mu-tools/resources/mommacat_request.rb +1 -1
  40. data/cookbooks/mu-tools/resources/sshd_service.rb +1 -1
  41. data/cookbooks/mu-tools/resources/windows_users.rb +2 -2
  42. data/cookbooks/mu-utility/recipes/cleanup_image_helper.rb +2 -2
  43. data/cookbooks/mu-utility/recipes/php.rb +0 -5
  44. data/cookbooks/nagios/libraries/users_helper.rb +1 -1
  45. data/extras/ruby_rpm/muby.spec +4 -0
  46. data/modules/mu/clouds/aws.rb +8 -1
  47. data/modules/mu/clouds/azure.rb +3 -3
  48. data/modules/mu/config.rb +10 -7
  49. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e181f1f55514d5bd594a4b506fc55fd60cbca3a22170d168c2d594d707b2eae
4
- data.tar.gz: 18372f6029f4de995a80bbc7737b3897852ae16400b20067e2691557f629077b
3
+ metadata.gz: a9fc0e69f111f1e2db75ce8fba5b8365a3e25ffe0c1cb833b122437c8e44d5d1
4
+ data.tar.gz: d32f039a46986f2d9946e0dd125994d0c57bf1619697674791067e9160bc78df
5
5
  SHA512:
6
- metadata.gz: 1612a8948e9d284462ad9d9e33df2020da096ad6bae6f61bd25b4e73362040f5453814cf9ca8fc4d79048ba5f3098d889589f6a46cbdc2c4dcc63cfd710ae3e1
7
- data.tar.gz: 7af7243b43262485f5dc3075b3176a251541a7d5a56ce74446d97afd898d0fda321035242e5ac824ab7d926a4b0f60b95fe7bad777b62e61a3527f20b8e59a8b
6
+ metadata.gz: b4b370235cd758082a0e8d0963a8efdc17c1c741ec3a04a81f6c730de2d321ad4ac46fad7b650d15b5148cf6baab858e1d8ea318c8744103c04111bd7f20f41e
7
+ data.tar.gz: ce268250489a482ba77f9c17e993e29dc4126412b6b700d7299f40084afadc35b2bc966d5e7f13706e1db3ff897a7e83e891110c60d75112bd7c4dfd2ae167ee
data/cloud-mu.gemspec CHANGED
@@ -17,8 +17,8 @@ end
17
17
 
18
18
  Gem::Specification.new do |s|
19
19
  s.name = 'cloud-mu'
20
- s.version = '2.0.0-alpha7'
21
- s.date = '2019-02-13'
20
+ s.version = '2.0.0-alpha8'
21
+ s.date = '2019-02-14'
22
22
  s.require_paths = ['modules']
23
23
  s.required_ruby_version = '>= 2.4'
24
24
  s.summary = "The eGTLabs Mu toolkit for unified cloud deployments"
@@ -13,7 +13,7 @@ case node['platform']
13
13
  end
14
14
  r = execute "install awscli" do
15
15
  command cmd
16
- not_if { ::File.exists?(file) }
16
+ not_if { ::File.exist?(file) }
17
17
  if node['awscli']['compile_time']
18
18
  action :nothing
19
19
  end
@@ -30,7 +30,7 @@ if node['awscli']['config_profiles']
30
30
  owner 'root'
31
31
  group 'root'
32
32
  mode 00700
33
- not_if { ::File.exists?(::File.dirname(config_file)) }
33
+ not_if { ::File.exist?(::File.dirname(config_file)) }
34
34
  if node['awscli']['compile_time']
35
35
  action :nothing
36
36
  end
@@ -44,7 +44,7 @@ if node['awscli']['config_profiles']
44
44
  owner 'root'
45
45
  group 'root'
46
46
  source 'config.erb'
47
- not_if { ::File.exists?(config_file) }
47
+ not_if { ::File.exist?(config_file) }
48
48
  if node['awscli']['compile_time']
49
49
  action :nothing
50
50
  end
@@ -28,7 +28,7 @@ default['ad']['homedir'] = "/home/%u"
28
28
  default['ad']['sites'] = []
29
29
  if !node['deployment']['vpcs'].empty?
30
30
  vpc = node['deployment']['vpcs'][node['deployment']['vpcs'].keys.first]
31
- vpc['subnets'].each_pair { |name, data|
31
+ vpc['subnets'].each_pair { |_name, data|
32
32
  default['ad']['sites'] << {
33
33
  :name => data['name'],
34
34
  :ip_block => data['ip_block']
@@ -91,7 +91,7 @@ if node['ad']['dc_ips'].empty?
91
91
  begin
92
92
  default['ad']['dc_ips'] << resolver.getaddress(dc).to_s
93
93
  rescue Resolv::ResolvError => e
94
- Chef::Log.warn ("Couldn't resolve domain controller #{dc}!")
94
+ Chef::Log.warn("Couldn't resolve domain controller #{dc}!")
95
95
  end
96
96
  end
97
97
  } rescue NoMethodError
@@ -17,7 +17,7 @@ module Activedirectory
17
17
  return cmd.stdout.match(/True/)
18
18
  end
19
19
 
20
- def is_domain_controller?(hostname)
20
+ def domain_controller?(hostname)
21
21
  # cmd = powershell_out("(Get-ADDomainController).name -eq '#{new_resource.computer_name}'")
22
22
  cmd = powershell_out("(Get-ADDomainController).name -eq '#{hostname}'")
23
23
  return cmd.stdout.match(/True/)
@@ -73,7 +73,7 @@ module Activedirectory
73
73
  return cmd.stdout.match(/True/)
74
74
  end
75
75
 
76
- def is_schemamaster?(domain_name, hostname)
76
+ def schemamaster?(domain_name, hostname)
77
77
  cmd = powershell_out("(Get-ADForest #{domain_name}).SchemaMaster -eq '#{hostname.downcase}.#{domain_name}'")
78
78
  return cmd.stdout.match(/True/)
79
79
  end
@@ -22,8 +22,6 @@ action :create do
22
22
  create_domain
23
23
  configure_network_interface
24
24
  configure_domain
25
- when platform_family?('rhel')
26
- # To do: Do Active Directory on Linux
27
25
  else
28
26
  Chef::Log.info("Unsupported platform #{node['platform']}")
29
27
  end
@@ -33,8 +31,6 @@ action :delete do
33
31
  case node['platform']
34
32
  when "windows"
35
33
  delete_domain
36
- when platform_family?('rhel')
37
- # To do: Do Active Directory on Linux
38
34
  else
39
35
  Chef::Log.info("Unsupported platform #{node['platform']}")
40
36
  end
@@ -25,8 +25,6 @@ action :add do
25
25
  configure_network_interface
26
26
  set_replication_static_ports
27
27
  set_computer_name(admin_creds)
28
- when platform_family?('rhel')
29
- # To do: Do Active Directory on Linux
30
28
  else
31
29
  Chef::Log.info("Unsupported platform #{node['platform']}")
32
30
  end
@@ -36,8 +34,6 @@ action :remove do
36
34
  case node['platform']
37
35
  when "windows"
38
36
  demote
39
- when platform_family?('rhel')
40
- # To do: Do Active Directory on Linux
41
37
  else
42
38
  Chef::Log.info("Unsupported platform #{node['platform']}")
43
39
  end
@@ -48,7 +44,7 @@ end
48
44
  # end
49
45
 
50
46
  def promote
51
- unless is_domain_controller?(new_resource.computer_name)
47
+ unless domain_controller?(new_resource.computer_name)
52
48
  Chef::Log.info("Promoting #{new_resource.computer_name} to domain controller in #{new_resource.dns_name} domain")
53
49
  cmd = powershell_out("Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue; Install-ADDSDomainController -InstallDns -DomainName #{new_resource.dns_name} -Credential #{admin_creds} -SafeModeAdministratorPassword (convertto-securestring '#{new_resource.restore_mode_password}' -asplaintext -force) -Force -Confirm:$false; Restart-Computer -Force")
54
50
  kill_ssh
@@ -58,7 +54,7 @@ def promote
58
54
  end
59
55
 
60
56
  def demote
61
- if is_domain_controller?(new_resource.computer_name)
57
+ if domain_controller?(new_resource.computer_name)
62
58
  Chef::Log.info("Demoting domain controller #{new_resource.computer_name} in #{new_resource.dns_name} domain")
63
59
  cmd = powershell_out("Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue; Uninstall-WindowsFeature DNS; Uninstall-ADDSDomainController -Credential #{admin_creds} -LocalAdministratorPassword (convertto-securestring '#{new_resource.domain_admin_password}' -asplaintext -force) -Force -Confirm:$false; Restart-Computer -Force")
64
60
  kill_ssh
@@ -220,7 +220,7 @@ def create_pam_winbind_directories
220
220
  owner "root"
221
221
  group "root"
222
222
  mode 0755
223
- not_if { ::File.exists?("/home/#{new_resource.dns_name}") or ::File.symlink?("/home/#{new_resource.dns_name}")}
223
+ not_if { ::File.exist?("/home/#{new_resource.dns_name}") or ::File.symlink?("/home/#{new_resource.dns_name}")}
224
224
  end
225
225
 
226
226
  %w[/run /run/samba /run/samba/winbindd].each { |path|
@@ -24,8 +24,6 @@ case node['platform']
24
24
  else
25
25
  Chef::Log.info "Requires Windows Server 2012 or 2012R2, current version is #{version})"
26
26
  end
27
- when platform_family?('rhel')
28
- # To do: Active Directory on Linux
29
27
  else
30
28
  Chef::Log.info("Unsupported platform #{node['platform']}")
31
29
  end
@@ -23,8 +23,6 @@ case node['platform']
23
23
  else
24
24
  Chef::Log.info "Requires Windows Server 2012 or 2012R2, current version is #{version})"
25
25
  end
26
- when platform_family?('rhel')
27
- # To do: Active Directory on Linux
28
26
  else
29
27
  Chef::Log.info("Unsupported platform #{node['platform']}")
30
28
  end
@@ -25,7 +25,7 @@ case node['platform_family']
25
25
  rescue Chef::Exceptions::ResourceNotFound
26
26
  service svc do
27
27
  action [:enable, :start]
28
- only_if { ::File.exists?("/etc/init.d/#{svc}") }
28
+ only_if { ::File.exist?("/etc/init.d/#{svc}") }
29
29
  end
30
30
  end
31
31
  }
@@ -34,7 +34,7 @@ case node['platform_family']
34
34
  resources('service[network]')
35
35
  rescue Chef::Exceptions::ResourceNotFound
36
36
  service "network" do
37
- only_if { ::File.exists?("/etc/init.d/network") }
37
+ only_if { ::File.exist?("/etc/init.d/network") }
38
38
  end
39
39
  end
40
40
 
@@ -93,7 +93,7 @@ case node['platform_family']
93
93
 
94
94
  # execute "git clone git://anongit.freedesktop.org/realmd/adcli" do
95
95
  # cwd "/root"
96
- # not_if { ::Dir.exists?("/root/adcli") }
96
+ # not_if { ::Dir.exist?("/root/adcli") }
97
97
  # end
98
98
 
99
99
  # execute "git fetch && git pull" do
@@ -110,7 +110,7 @@ case node['platform_family']
110
110
  execute "compile adcli" do
111
111
  cwd "/root/adcli"
112
112
  command "./autogen.sh --disable-doc --prefix=/usr && make && make install"
113
- not_if { ::File.exists?("/usr/sbin/adcli") }
113
+ not_if { ::File.exist?("/usr/sbin/adcli") }
114
114
  end
115
115
  when 7
116
116
  # Seems to work on CentOS7
@@ -131,7 +131,7 @@ case node['platform_family']
131
131
  service "sssd" do
132
132
  action :nothing
133
133
  notifies :restart, "service[sshd]", :immediately
134
- only_if { ::File.exists?("/etc/krb5.keytab") }
134
+ only_if { ::File.exist?("/etc/krb5.keytab") }
135
135
  end
136
136
  directory "/etc/sssd"
137
137
  template "/etc/sssd/sssd.conf" do
@@ -163,7 +163,7 @@ case node['platform_family']
163
163
  # to your DCs. It seems to dumbly trust any reverse mapping it sees,
164
164
  # whether or not the name matches the actual Kerberos tickets you et.
165
165
  execute "Run ADCLI" do
166
- not_if { ::File.exists?("/etc/krb5.keytab") }
166
+ not_if { ::File.exist?("/etc/krb5.keytab") }
167
167
  command "echo -n '#{domain_creds[node['ad']['join_auth']['password_field']]}' | /usr/sbin/adcli join #{node['ad']['domain_name']} --domain-realm=#{node['ad']['domain_name'].upcase} -U #{domain_creds[node['ad']['join_auth']['username_field']]} --stdin-password"
168
168
  notifies :restart, "service[sssd]", :immediately
169
169
  # sensitive true
@@ -58,7 +58,7 @@ case node['platform']
58
58
  end
59
59
 
60
60
  execute "mdadm --detail --scan >> /etc/mdadm.conf" do
61
- not_if { File.exists?("/etc/mdadm.conf") }
61
+ not_if { File.exist?("/etc/mdadm.conf") }
62
62
  end
63
63
 
64
64
  execute "mkfs -t xfs -i size=512 #{node['glusterfs']['server']['raid_dev']}" do
@@ -131,7 +131,7 @@ case node['platform']
131
131
 
132
132
  if i_am_master
133
133
  ips = []
134
- node['deployment']['servers'][$nodeclass].each_pair do |name, data|
134
+ node['deployment']['servers'][$nodeclass].each_pair do |_name, data|
135
135
  next if data['private_ip_address'].nil? or data['private_ip_address'].empty?
136
136
  execute "gluster peer probe #{data['private_ip_address']}" do
137
137
  not_if { data['private_ip_address'] == node['ipaddress'] }
@@ -188,7 +188,7 @@ case node['platform']
188
188
  # end
189
189
  end
190
190
  else
191
- node['deployment']['servers'][$nodeclass].each_pair do |name, data|
191
+ node['deployment']['servers'][$nodeclass].each_pair do |_name, data|
192
192
  execute "gluster peer probe #{data['private_ip_address']}" do
193
193
  not_if { data['private_ip_address'] == node['ipaddress'] }
194
194
  end
@@ -83,14 +83,14 @@ end
83
83
 
84
84
 
85
85
  node['jenkins_plugins'].each { |plugin|
86
- # if !::File.exists?("#{node['jenkins']['master']['home']}/plugins/#{plugin}.jpi")
86
+ # if !::File.exist?("#{node['jenkins']['master']['home']}/plugins/#{plugin}.jpi")
87
87
  # restart_jenkins = true
88
88
  # end
89
89
  # XXX this runs as the 'jenkins' user, yet download the files as 0600/root
90
90
  jenkins_plugin plugin
91
91
  # do
92
92
  # notifies :restart, 'service[jenkins]', :delayed
93
- #not_if { ::File.exists?("#{node['jenkins']['master']['home']}/plugins/#{plugin}.jpi") }
93
+ #not_if { ::File.exist?("#{node['jenkins']['master']['home']}/plugins/#{plugin}.jpi") }
94
94
  # end
95
95
  }
96
96
 
@@ -131,7 +131,7 @@ uidsearch = "sAMAccountName={0}" if $MU_CFG['ldap']['type'] == "Active Directory
131
131
  membersearch = "(| (member={0}) (uniqueMember={0}) (memberUid={1}))"
132
132
  membersearch = "memberUid={0}" if $MU_CFG['ldap']['type'] == "389 Directory Services"
133
133
  bind_creds = chef_vault_item($MU_CFG['ldap']['bind_creds']['vault'], $MU_CFG['ldap']['bind_creds']['item'])
134
- jenkins_admins = ::MU::Master.listUsers.delete_if { |u, data| !data['admin'] }.keys
134
+ jenkins_admins = ::MU::Master.listUsers.delete_if { |_u, data| !data['admin'] }.keys
135
135
  #jenkins_regular = ::MU::Master.listUsers.delete_if { |u, data| data['admin'] or u == "jenkins" }.keys
136
136
  regular_user_perms = ["Item.BUILD", "Item.CREATE", "Item.DISCOVER", "Item.READ"]
137
137
  jenkins_script 'configure_jenkins_auth' do
@@ -50,7 +50,7 @@ directory "/root/389ds.tmp" do
50
50
  recursive true
51
51
  mode 0700
52
52
  end
53
- $CREDS.each_pair { |creds, cfg|
53
+ $CREDS.each_pair { |creds, _cfg|
54
54
  user = pw = data = nil
55
55
  if $MU_CFG["ldap"].has_key?(creds)
56
56
  data = chef_vault_item($MU_CFG['ldap'][creds]['vault'], $MU_CFG['ldap'][creds]['item'])
@@ -73,7 +73,7 @@ end
73
73
 
74
74
  # %x{/usr/sbin/setenforce 0}
75
75
  execute "initialize 389 Directory Services" do
76
- command "/usr/sbin/setup-ds-admin.pl -s -f /root/389ds.tmp/389-directory-setup.inf --continue --debug #{Dir.exists?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") ? "--update" : ""}"
76
+ command "/usr/sbin/setup-ds-admin.pl -s -f /root/389ds.tmp/389-directory-setup.inf --continue --debug #{Dir.exist?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") ? "--update" : ""}"
77
77
  action :nothing
78
78
  end
79
79
 
@@ -84,7 +84,7 @@ template "/root/389ds.tmp/389-directory-setup.inf"do
84
84
  :domain => $MU_CFG["ldap"]["domain_name"],
85
85
  :domain_dn => $MU_CFG["ldap"]["domain_name"].split(/\./).map{ |x| "DC=#{x}" }.join(","),
86
86
  :creds => $CREDS
87
- not_if { ::Dir.exists?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") }
87
+ not_if { ::Dir.exist?("/etc/dirsrv/slapd-#{$MU_CFG["hostname"]}") }
88
88
  notifies :run, "execute[initialize 389 Directory Services]", :immediately
89
89
  end
90
90
 
@@ -131,7 +131,7 @@ ruby_block "import SSL certificates for 389ds" do
131
131
  certimportcmd = "/usr/bin/pk12util -i /opt/mu/var/ssl/ldap.p12 -d /etc/dirsrv/slapd-#{$MU_CFG["hostname"]} -w /root/389ds.tmp/blank -W \"\""
132
132
  require 'pty'
133
133
  require 'expect'
134
- PTY.spawn(certimportcmd) { |r, w, pid|
134
+ PTY.spawn(certimportcmd) { |r, w, _pid|
135
135
  begin
136
136
  r.expect("Enter new password:") do
137
137
  w.puts
@@ -55,7 +55,7 @@ if !node['update_nagios_only']
55
55
 
56
56
  include_recipe 'chef-vault'
57
57
  if $MU_CFG.has_key?('ldap')
58
- if $MU_CFG['ldap']['type'] == "389 Directory Services" and Dir.exists?("/etc/dirsrv/slapd-#{$MU_CFG['hostname']}")
58
+ if $MU_CFG['ldap']['type'] == "389 Directory Services" and Dir.exist?("/etc/dirsrv/slapd-#{$MU_CFG['hostname']}")
59
59
  include_recipe 'mu-master::sssd'
60
60
  elsif $MU_CFG['ldap']['type'] == "Active Directory"
61
61
  node.normal['ad'] = {}
@@ -40,7 +40,7 @@ CHEF_CLIENT_VERSION="14.4.56"
40
40
  KNIFE_WINDOWS="1.9.0"
41
41
  MU_BASE="/opt/mu"
42
42
  MU_BRANCH="Azure_you_want_azure" # GIT HOOK EDITABLE DO NOT TOUCH
43
- realbranch=`cd #{MU_BASE}/lib && git rev-parse --abbrev-ref HEAD`
43
+ realbranch=`cd #{MU_BASE}/lib && git rev-parse --abbrev-ref HEAD` # ~FC048
44
44
 
45
45
  if ENV.key?('MU_BRANCH')
46
46
  MU_BRANCH = ENV['MU_BRANCH']
@@ -87,16 +87,16 @@ end
87
87
  # owner "opscode-pgsql"
88
88
  # group "opscode-pgsql"
89
89
  # action :nothing
90
- # only_if { !::File.exists?("/tmp/.s.PGSQL.5432") }
91
- # only_if { ::File.exists?("/var/run/postgresql/.s.PGSQL.5432") }
90
+ # only_if { !::File.exist?("/tmp/.s.PGSQL.5432") }
91
+ # only_if { ::File.exist?("/var/run/postgresql/.s.PGSQL.5432") }
92
92
  #end
93
93
  link "/var/run/postgresql/.s.PGSQL.5432" do
94
94
  to "/tmp/.s.PGSQL.5432"
95
95
  # owner "opscode-pgsql"
96
96
  # group "opscode-pgsql"
97
97
  notifies :create, "directory[/var/run/postgresql]", :before
98
- only_if { !::File.exists?("/var/run/postgresql/.s.PGSQL.5432") }
99
- # only_if { ::File.exists?("/tmp/.s.PGSQL.5432") }
98
+ only_if { !::File.exist?("/var/run/postgresql/.s.PGSQL.5432") }
99
+ # only_if { ::File.exist?("/tmp/.s.PGSQL.5432") }
100
100
  end
101
101
  execute "Chef Server rabbitmq workaround" do
102
102
  # This assumes we get clean stop, which *should* be the case if we execute
@@ -120,7 +120,7 @@ file "use a clean /etc/hosts during install" do
120
120
  "
121
121
  notifies :create, "remote_file[back up /etc/hosts]", :before
122
122
  only_if { RUNNING_STANDALONE }
123
- not_if { ::Dir.exists?("#{MU_BASE}/lib/.git") }
123
+ not_if { ::Dir.exist?("#{MU_BASE}/lib/.git") }
124
124
  end
125
125
 
126
126
  execute "reconfigure Chef server" do
@@ -219,7 +219,7 @@ git "#{MU_BASE}/lib" do
219
219
  revision MU_BRANCH
220
220
  checkout_branch MU_BRANCH
221
221
  enable_checkout false
222
- not_if { ::Dir.exists?("#{MU_BASE}/lib/.git") }
222
+ not_if { ::Dir.exist?("#{MU_BASE}/lib/.git") }
223
223
  notifies :run, "bash[set git default branch to #{MU_BRANCH}]", :immediately
224
224
  end
225
225
 
@@ -275,7 +275,7 @@ end
275
275
  # REMOVE OLD RUBYs
276
276
  execute "clean up old Ruby 2.1.6" do
277
277
  command "rm -rf /opt/rubies/ruby-2.1.6"
278
- only_if { ::Dir.exists?("/opt/rubies/ruby-2.1.6") }
278
+ only_if { ::Dir.exist?("/opt/rubies/ruby-2.1.6") }
279
279
  end
280
280
 
281
281
  yum_package 'ruby23-2.3.1-1.el7.centos.x86_64' do
@@ -284,12 +284,12 @@ end
284
284
 
285
285
  execute "Kill ruby-2.3.1" do
286
286
  command "yum erase ruby23-2.3.1-1.el7.centos.x86_64 -y"
287
- only_if { ::Dir.exists?("/opt/rubies/ruby-2.3.1") }
287
+ only_if { ::Dir.exist?("/opt/rubies/ruby-2.3.1") }
288
288
  end
289
289
 
290
290
  execute "clean up old ruby-2.3.1" do
291
291
  command "rm -rf /opt/rubies/ruby-2.3.1"
292
- only_if { ::Dir.exists?("/opt/rubies/ruby-2.3.1") }
292
+ only_if { ::Dir.exist?("/opt/rubies/ruby-2.3.1") }
293
293
  end
294
294
 
295
295
  # Regular old rpm-based installs
@@ -406,8 +406,8 @@ end
406
406
  package_name "knife-windows"
407
407
  version Regexp.last_match[1]
408
408
  action :remove
409
- only_if { ::Dir.exists?(dir) }
410
- only_if { ::Dir.exists?(gemdir) }
409
+ only_if { ::Dir.exist?(dir) }
410
+ only_if { ::Dir.exist?(gemdir) }
411
411
  end
412
412
  execute "rm -rf #{gemdir}/knife-windows-#{Regexp.last_match[1]}"
413
413
  }
@@ -426,7 +426,7 @@ end
426
426
  # command "patch -p1 < #{MU_BASE}/lib/install/knife-windows-cygwin-#{KNIFE_WINDOWS}.patch"
427
427
  # not_if "grep -i 'locate_config_value(:cygwin)' #{gemdir}/knife-windows-#{KNIFE_WINDOWS}/lib/chef/knife/bootstrap_windows_base.rb"
428
428
  # notifies :restart, "service[chef-server]", :delayed if rubydir == "/opt/opscode/embedded"
429
- # only_if { ::Dir.exists?(gemdir) }
429
+ # only_if { ::Dir.exist?(gemdir) }
430
430
  # XXX notify mommacat if we're *not* in chef-apply... RUNNING_STANDALONE
431
431
  # end
432
432
  end
@@ -504,7 +504,7 @@ bash "add localhost ssh to authorized_keys and config" do
504
504
  end
505
505
  execute "ssh-keygen -N '' -f #{ROOT_SSH_DIR}/id_rsa" do
506
506
  umask 0177
507
- not_if { ::File.exists?("#{ROOT_SSH_DIR}/id_rsa") }
507
+ not_if { ::File.exist?("#{ROOT_SSH_DIR}/id_rsa") }
508
508
  notifies :run, "bash[add localhost ssh to authorized_keys and config]", :immediately
509
509
  end
510
510
  file "/etc/chef/client.pem" do
@@ -25,7 +25,7 @@
25
25
  include_recipe 'mu-master::firewall-holes'
26
26
  service_certs = ["rsyslog", "mommacat", "ldap", "consul", "vault"]
27
27
 
28
- directory "#{$MU_CFG['datadir']}"
28
+ directory $MU_CFG['datadir']
29
29
  directory "#{$MU_CFG['datadir']}/ssl"
30
30
  template "#{$MU_CFG['datadir']}/ssl/openssl.cnf" do
31
31
  source "openssl.cnf.erb"
@@ -41,7 +41,7 @@ end
41
41
  execute "generate SSL CA key" do
42
42
  command "openssl genrsa -out Mu_CA.key 4096"
43
43
  cwd "#{$MU_CFG['datadir']}/ssl"
44
- not_if { ::File.exists?("#{$MU_CFG['datadir']}/ssl/Mu_CA.key") }
44
+ not_if { ::File.exist?("#{$MU_CFG['datadir']}/ssl/Mu_CA.key") }
45
45
  notifies :delete, "file[#{$MU_CFG['datadir']}/ssl/CA-command.txt]", :immediately
46
46
  end
47
47
  file "#{$MU_CFG['datadir']}/ssl/Mu_CA.key" do
@@ -102,7 +102,7 @@ nagios_policies.each { |policy|
102
102
 
103
103
  # Workaround for minor Nagios (cookbook?) bug. It looks for this at the wrong
104
104
  # URL at the moment, so copy it where it's actually looking.
105
- if File.exists?("/usr/lib/cgi-bin/nagios/statusjson.cgi")
105
+ if File.exist?("/usr/lib/cgi-bin/nagios/statusjson.cgi")
106
106
  remote_file "/usr/lib/cgi-bin/statusjson.cgi" do
107
107
  source "file:///usr/lib/cgi-bin/nagios/statusjson.cgi"
108
108
  mode 0755
@@ -155,7 +155,7 @@ end
155
155
  ["/etc/nagios/conf.d/", "/etc/nagios/*.cfg", "/var/run/nagios.pid"].each { |dir|
156
156
  execute "/sbin/restorecon -R #{dir}" do
157
157
  not_if "ls -aZ #{dir} | grep ':nagios_etc_t:'"
158
- only_if { ::File.exists?(dir) }
158
+ only_if { ::File.exist?(dir) }
159
159
  end
160
160
  }
161
161
 
@@ -75,7 +75,7 @@ define :splunk_installer, :url => nil do
75
75
  begin
76
76
  resources('package['+params[:name]+']')
77
77
  rescue Chef::Exceptions::ResourceNotFound
78
- package params[:name] do
78
+ package params[:name] do # ~FC109
79
79
  source cached_package.gsub(/\.Z/, '')
80
80
  notifies :create, "remote_file[#{cached_package}]", :before
81
81
  notifies :delete, "file[#{cached_package} cleanup]", :immediately
@@ -24,7 +24,7 @@ include Chef::Mixin::ShellOut
24
24
  class Chef
25
25
  class Provider
26
26
  class SplunkApp < Chef::Provider::LWRPBase
27
- use_inline_resources if defined?(:use_inline_resources)
27
+ use_inline_resources if defined?(:use_inline_resources) # ~FC113
28
28
 
29
29
  def whyrun_supported?
30
30
  true
@@ -29,7 +29,7 @@ service 'splunk_stop' do
29
29
  if node['platform_family'] != 'windows'
30
30
  service_name 'splunk'
31
31
  provider Chef::Provider::Service::Init
32
- only_if { ::File.exists?("/etc/init.d/splunk") }
32
+ only_if { ::File.exist?("/etc/init.d/splunk") }
33
33
  else
34
34
  service_name 'SplunkForwarder'
35
35
  provider Chef::Provider::Service::Windows
@@ -40,7 +40,7 @@ service 'splunk_stop' do
40
40
  start_command "c:/Windows/system32/sc.exe start SplunkForwarder"
41
41
  stop_command "c:/Windows/system32/sc.exe stop SplunkForwarder"
42
42
  pattern "splunkd.exe"
43
- only_if { ::Dir.exists?("c:/Program Files/SplunkUniversalForwarder") }
43
+ only_if { ::Dir.exist?("c:/Program Files/SplunkUniversalForwarder") }
44
44
  not_if { ::Dir.glob("c:/Program Files/SplunkUniversalForwarder/splunkforwarder-#{node['splunk']['preferred_version']}-*").size > 0 }
45
45
  end
46
46
  supports :status => true
@@ -61,7 +61,7 @@ if node['platform_family'] == 'windows'
61
61
  }
62
62
  EOH
63
63
  not_if { ::Dir.glob("c:/Program Files/SplunkUniversalForwarder/splunkforwarder-#{node['splunk']['preferred_version']}-*").size > 0 }
64
- only_if { ::Dir.exists?("c:/Program Files/SplunkUniversalForwarder") }
64
+ only_if { ::Dir.exist?("c:/Program Files/SplunkUniversalForwarder") }
65
65
  end
66
66
  end
67
67
 
@@ -157,7 +157,7 @@ module Mutools
157
157
  end
158
158
 
159
159
  def get_first_nameserver
160
- if File.exists?("/etc/resolv.conf")
160
+ if File.exist?("/etc/resolv.conf")
161
161
  File.readlines("/etc/resolv.conf").each { |l|
162
162
  l.chomp!
163
163
  if l.match(/^nameserver (\d+\.\d+\.\d+\.\d+)$/)
@@ -190,9 +190,9 @@ module Mutools
190
190
  elsif !get_google_metadata("instance/name").nil?
191
191
  include_recipe "mu-tools::gcloud"
192
192
  ["/opt/google-cloud-sdk/bin/gsutil", "/bin/gsutil"].each { |gsutil|
193
- next if !File.exists?(gsutil)
193
+ next if !File.exist?(gsutil)
194
194
  Chef::Log.info("Fetching deploy secret: #{gsutil} cp gs://#{bucket}/#{filename} -")
195
- if File.exists?("/usr/bin/python2.7")
195
+ if File.exist?("/usr/bin/python2.7")
196
196
  # secret = %x{CLOUDSDK_PYTHON=/usr/bin/python2.7 #{gsutil} cp gs://#{bucket}/#{filename} -}
197
197
  secret = shell_out("CLOUDSDK_PYTHON=/usr/bin/python2.7 #{gsutil} cp gs://#{bucket}/#{filename} -").stdout.str
198
198
  else
@@ -232,7 +232,6 @@ module Mutools
232
232
  "mu_id" => mu_get_tag_value("MU-ID"),
233
233
  "mu_resource_name" => node['service_name'],
234
234
  "mu_instance_id" => get_aws_metadata("meta-data/instance-id") || get_google_metadata("name"),
235
- "mu_resource_name" => node[:service_name],
236
235
  "mu_resource_type" => res_type,
237
236
  "mu_user" => node['deployment']['mu_user'] || node['deployment']['chef_user'],
238
237
  "mu_deploy_secret" => secret,
@@ -24,7 +24,7 @@ if node['deployment']['admins']
24
24
  end rescue NoMethodError
25
25
  ssh_user = 'root' if ssh_user.nil?
26
26
  ssh_dir = "#{Etc.getpwnam(ssh_user).dir}/.ssh"
27
- node['deployment']['admins'].each_pair { |name, admin|
27
+ node['deployment']['admins'].each_pair { |_name, admin|
28
28
  if !admin['public-key'].nil?
29
29
  execute "Add #{admin.name}'s ssh key to #{ssh_dir}/authorized_keys" do
30
30
  not_if "grep '^#{admin['public-key']}$' #{ssh_dir}/authorized_keys"
@@ -75,7 +75,7 @@ if !node['application_attributes']['skip_recipes'].include?('apply_security')
75
75
  aide --init
76
76
  mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
77
77
  EOH
78
- not_if { File.exists?("/var/lib/aide/aide.db.gz") }
78
+ not_if { File.exist?("/var/lib/aide/aide.db.gz") }
79
79
  end
80
80
  cron "AIDE daily scan" do
81
81
  action :create
@@ -83,7 +83,7 @@ if !node['application_attributes']['skip_recipes'].include?('apply_security')
83
83
  hour "5"
84
84
  user "root"
85
85
  command "/usr/sbin/aide --check"
86
- only_if { File.exists?("/usr/sbin/aide") }
86
+ only_if { File.exist?("/usr/sbin/aide") }
87
87
  end
88
88
 
89
89
  cookbook_file "/etc/security/limits.conf" do
@@ -338,7 +338,7 @@ if !node['application_attributes']['skip_recipes'].include?('apply_security')
338
338
 
339
339
  Chef::Log.info("Value of login_disabled is #{node.normal.root_login_disabled}")
340
340
 
341
- ruby_block "do a bunch of weird stuff" do
341
+ ruby_block "do a bunch of weird stuff" do # ~FC014
342
342
  block do
343
343
  cmd = Mixlib::ShellOut.new('chcon -Rv --type=user_home_t /home')
344
344
  cmd.run_command
@@ -357,7 +357,7 @@ if !node['application_attributes']['skip_recipes'].include?('apply_security')
357
357
  fe.search_file_replace_line(/^AllowUsers.*$/, valid_users)
358
358
  fe.write_file
359
359
  end
360
- only_if { ::File.exists?("/tmp/moveusers.tgz") }
360
+ only_if { ::File.exist?("/tmp/moveusers.tgz") }
361
361
  end
362
362
 
363
363
  execute "mount -oremount /dev/shm" do
@@ -19,7 +19,7 @@
19
19
 
20
20
  if !node['application_attributes']['skip_recipes'].include?('base_repositories')
21
21
  case node['platform_family']
22
- when "rhel", "redhat"
22
+ when "rhel", "redhat" # ~FC024
23
23
  # Workaround for EOL CentOS 5 repos
24
24
  if node['platform'] != "amazon" and node['platform_version'].to_i == 5
25
25
  cookbook_file "/etc/yum.repos.d/CentOS-Base.repo" do
@@ -51,7 +51,7 @@ if !node['application_attributes']['skip_recipes'].include?('epel') and !node['a
51
51
  elsif platform_family?("debian")
52
52
  package "cloud-init"
53
53
  elsif platform_family?("windows")
54
- Chef::Log.info ("Windows use ec2config, no cloud-init package is necessary")
54
+ Chef::Log.info("Windows use ec2config, no cloud-init package is necessary")
55
55
  else
56
56
  Chef::Log.info("Unsupported platform #{node['platform']}")
57
57
  end
@@ -24,14 +24,14 @@ if node['deployment'].has_key?('storage_pools')
24
24
  case node['platform']
25
25
  when 'ubuntu'
26
26
  package "nfs-common"
27
- when "rhel", "amazon", "centos"
27
+ when "rhel", "amazon", "centos" # ~FC024
28
28
  package %w{nfs-utils nfs4-acl-tools}
29
29
  end
30
30
 
31
31
  instance_identity = JSON.parse(Net::HTTP.get(URI("http://169.254.169.254/latest/dynamic/instance-identity/document")))
32
32
 
33
- node['deployment']['storage_pools'].each { |name, pool|
34
- pool['mount_targets'].each { |name, target|
33
+ node['deployment']['storage_pools'].each { |_name, pool|
34
+ pool['mount_targets'].each { |_name, target|
35
35
  if target['availability_zone'] == instance_identity["availabilityZone"]
36
36
  # Should also make it possible to choose a random endpoint if there isn't one for a specific AZ
37
37
 
@@ -48,7 +48,7 @@ if node['deployment'].has_key?('storage_pools')
48
48
  endpoint = target['ip_address']
49
49
  end
50
50
 
51
- if node[:platform_family] == "rhel" and node[:platform_version].to_i < 6 and node['platform'] != "amazon"
51
+ if node['platform_family'] == "rhel" and node['platform_version'].to_i < 6 and node['platform'] != "amazon"
52
52
  service "portmap" do
53
53
  action [:enable, :start]
54
54
  end
@@ -26,7 +26,7 @@ if node['deployment'].has_key?('container_clusters')
26
26
  endpoint = node['deployment']['container_clusters'][cluster_short_name]['endpoint']
27
27
  # admin_role = node['deployment']['container_clusters'][cluster_short_name]['k8s_admin_role']
28
28
 
29
- if platform_family?("rhel") and node[:platform_version].to_i >= 7
29
+ if platform_family?("rhel") and node['platform_version'].to_i >= 7
30
30
  execute "rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg"
31
31
  file "/etc/yum.repos.d/kubernetes.repo" do
32
32
  content "[kubernetes]
@@ -66,7 +66,7 @@ EOH
66
66
  package "kubelet"
67
67
  package "kubectl"
68
68
  else
69
- Chef::Log.info("I don't know how to turn this #{node['platform']} AMI (#{node[:platform_version].to_s}) into a Kubernetes worker, hopefully it's the official, pre-configured AMI")
69
+ Chef::Log.info("I don't know how to turn this #{node['platform']} AMI (#{node['platform_version'].to_s}) into a Kubernetes worker, hopefully it's the official, pre-configured AMI")
70
70
  end
71
71
 
72
72
  service "docker" do
@@ -70,7 +70,7 @@ if platform_family?("rhel")
70
70
  EOH
71
71
  notifies :create, "remote_file[#{Chef::Config[:file_cache_path]}/gcloud-cli.sh]", :before
72
72
  notifies :create, "remote_file[#{Chef::Config[:file_cache_path]}/gcloud-cli.tar.gz]", :before
73
- not_if { ::File.exists?("/opt/google-cloud-sdk/bin/gcloud") }
73
+ not_if { ::File.exist?("/opt/google-cloud-sdk/bin/gcloud") }
74
74
  end
75
75
  link "/etc/bash_completion.d/gcloud" do
76
76
  to "/opt/google-cloud-sdk/completion.bash.inc"
@@ -91,7 +91,7 @@ elsif platform_family?("debian")
91
91
  curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
92
92
  sudo apt-get update
93
93
  EOH
94
- not_if { ::File.exists?("/etc/apt/sources.list.d/google-cloud-sdk.list") }
94
+ not_if { ::File.exist?("/etc/apt/sources.list.d/google-cloud-sdk.list") }
95
95
  end
96
96
  package "google-cloud-sdk"
97
97
  else
@@ -17,7 +17,7 @@ if !node['application_attributes']['skip_recipes'].include?('newclient')
17
17
  file Chef::Config[:validation_key] do
18
18
  action :delete
19
19
  backup false
20
- only_if { ::File.exists?(Chef::Config[:client_key]) }
20
+ only_if { ::File.exist?(Chef::Config[:client_key]) }
21
21
  end
22
22
  end
23
23
  end
@@ -23,6 +23,7 @@
23
23
 
24
24
  case node['platform']
25
25
  when "windows"
26
+ Chef::Log.info 'Unsupported platform Windows'
26
27
  else
27
28
  bash "update-pip" do
28
29
  code <<-EOF
@@ -23,7 +23,7 @@ if !node['application_attributes']['skip_recipes'].include?('rsyslog')
23
23
  package "rsyslog-gnutls"
24
24
  execute "chcon -R -h -t var_log_t /Mu_Logs" do
25
25
  action :nothing
26
- only_if { ::Dir.exists?("/Mu_Logs") }
26
+ only_if { ::Dir.exist?("/Mu_Logs") }
27
27
  end
28
28
  service "rsyslog" do
29
29
  action [:enable, :start]
@@ -30,7 +30,7 @@ when platform_family?('rhel')
30
30
  command "/bin/firewall-cmd --reload"
31
31
  action :nothing
32
32
  not_if "/bin/systemctl list-units | grep iptables.service"
33
- only_if { ::File.exists?("/bin/firewall-cmd") }
33
+ only_if { ::File.exist?("/bin/firewall-cmd") }
34
34
  end
35
35
  end
36
36
 
@@ -37,7 +37,7 @@ if !node['application_attributes']['skip_recipes'].include?('set_mu_hostname')
37
37
  end
38
38
 
39
39
  case node['platform']
40
- when "rhel", "centos", "amazon"
40
+ when "rhel", "centos", "amazon" # ~FC024
41
41
  template "/etc/sysconfig/network" do
42
42
  source "etc_sysconfig_network.erb"
43
43
  notifies :run, "execute[set hostname]", :immediately if elversion != 7
@@ -47,7 +47,7 @@ if !node['application_attributes']['skip_recipes'].include?('set_mu_hostname')
47
47
  )
48
48
  end
49
49
 
50
- if elversion == 7 and File.exists?("/etc/cloud/cloud.cfg")
50
+ if elversion == 7 and File.exist?("/etc/cloud/cloud.cfg")
51
51
  execute "sed -i '/ssh_pwauth/a preserve_hostname: true' /etc/cloud/cloud.cfg" do
52
52
  not_if "grep 'preserve_hostname: true' /etc/cloud/cloud.cfg"
53
53
  end
@@ -60,10 +60,10 @@ deploy_svr = splunk_servers.first
60
60
  if !deploy_svr.nil?
61
61
  execute 'Splunk client poll for deploy server' do
62
62
  command "\"#{splunk_cmd}\" set deploy-poll #{deploy_svr['splunk']['receiver_ip']}:8089 -auth #{user}:#{pw}"
63
- not_if { ::File.exists?(deploy_guard) }
63
+ not_if { ::File.exist?(deploy_guard) }
64
64
  notifies :create, "file[#{deploy_guard}]", :immediately
65
65
  notifies :restart, "service[splunk]", :delayed
66
66
  end
67
67
  else
68
- Chef::Log.info ("Configured to run a Splunk client, but no Splunk servers were found.")
68
+ Chef::Log.info("Configured to run a Splunk client, but no Splunk servers were found.")
69
69
  end
@@ -34,7 +34,7 @@ if !node['application_attributes']['skip_recipes'].include?('updates')
34
34
  windows_zipfile dir do
35
35
  source "#{Chef::Config[:file_cache_path]}/PSWindowsUpdate.zip"
36
36
  action :unzip
37
- not_if { File.exists?("#{dir}/PSWindowsUpdate") }
37
+ not_if { File.exist?("#{dir}/PSWindowsUpdate") }
38
38
  end
39
39
  }
40
40
 
@@ -35,13 +35,13 @@ if !node['application_attributes']['skip_recipes'].include?('windows-client')
35
35
  # code <<-EOH
36
36
  # Start-Process -wait -FilePath "#{Chef::Config[:file_cache_path]}/cygwin-x86_64.exe" -ArgumentList "-q -n -l #{Chef::Config[:file_cache_path]} -L -R c:/bin/cygwin -s http://mirror.cs.vt.edu/pub/cygwin/cygwin/ -P #{pkgs.join(",")}"
37
37
  # EOH
38
- # not_if { ::File.exists?("#{cygwindir}/Cygwin.bat") }
38
+ # not_if { ::File.exist?("#{cygwindir}/Cygwin.bat") }
39
39
  # end
40
40
 
41
41
  # Be prepared to reinit installs that are missing key utilities
42
42
  # file "#{cygwindir}/etc/setup/installed.db" do
43
43
  # action :delete
44
- # not_if { ::File.exists?("#{cygwindir}/bin/cygcheck.exe") }
44
+ # not_if { ::File.exist?("#{cygwindir}/bin/cygcheck.exe") }
45
45
  # end
46
46
 
47
47
  # pkgs.each { |pkg|
@@ -5,7 +5,7 @@ property :preserve_data, :kind_of => [TrueClass, FalseClass], :required => false
5
5
  property :reboot_after_create, :kind_of => [TrueClass, FalseClass], :required => false, :default => false
6
6
  property :size, Integer, default: 8
7
7
 
8
- actions :create
8
+ actions :create # ~FC092
9
9
  default_action :create
10
10
 
11
11
  action :create do
@@ -24,7 +24,7 @@ action :create do
24
24
  :dev => devicename,
25
25
  :size => new_resource.size
26
26
  )
27
- not_if { ::File.exists?(device) }
27
+ not_if { ::File.exist?(device) }
28
28
  end
29
29
 
30
30
  reboot "Rebooting after adding #{path}" do
@@ -45,7 +45,7 @@ action :create do
45
45
  # also expunge files so we don't eat up a bunch of disk space quietly
46
46
  # underneath our new mount
47
47
  command "( cd #{path} && tar -cpf - . | su -c 'cd /mnt#{backupname}/ && tar -xpf -' ) && find #{path}/ -type f -exec rm -f {} \\;"
48
- only_if { ::Dir.exists?(path) and ::Dir.exists?("/mnt#{backupname}") }
48
+ only_if { ::Dir.exist?(path) and ::Dir.exist?("/mnt#{backupname}") }
49
49
  action :nothing
50
50
  end
51
51
 
@@ -71,7 +71,7 @@ action :create do
71
71
  end
72
72
 
73
73
  execute "/sbin/restorecon -R #{path}" do
74
- only_if { ::File.exists?("/sbin/restorecon") }
74
+ only_if { ::File.exist?("/sbin/restorecon") }
75
75
  action :nothing
76
76
  end
77
77
 
@@ -2,7 +2,7 @@
2
2
  property :request, String, name_property: true
3
3
  property :passparams, Hash
4
4
 
5
- actions :run
5
+ actions :run # ~FC092
6
6
  default_action :run
7
7
 
8
8
  action :run do
@@ -1,6 +1,6 @@
1
1
  resource_name :sshd_service
2
2
 
3
- property :name, String, name_property: true
3
+ property :name, String, name_property: true # ~FC108
4
4
  property :username, String, required: true
5
5
  property :password, String, required: true
6
6
  property :service_username, String, required: true
@@ -19,7 +19,7 @@ action :config do
19
19
  source "ntrights"
20
20
  end
21
21
 
22
- if is_domain_controller?(new_resource.computer_name)
22
+ if domain_controller?(new_resource.computer_name)
23
23
  [new_resource.username, new_resource.ssh_user, new_resource.ec2config_user].each { |user|
24
24
  unless domain_user_exist?(user)
25
25
  pwd =
@@ -69,7 +69,7 @@ action :config do
69
69
  # Using WinRM here doesn't work for multiple reasons so instead we're going to run it only on the schemamaster which is hopefully still the first domain controller.
70
70
  # Also need to chagne this to re-import the GPO even if the GPO exist. The SSH user that is running the service might change, and the GPO will have the old SID.
71
71
  gpo_name = "ec2config-ssh-privileges"
72
- if is_schemamaster?(new_resource.domain_name, new_resource.computer_name)
72
+ if schemamaster?(new_resource.domain_name, new_resource.computer_name)
73
73
  unless gpo_exist?(gpo_name)
74
74
  ["Machine\\microsoft\\windows nt\\SecEdit", "Machine\\Scripts\\Shutdown", "Machine\\Scripts\\Startup", "User"].each { |dir|
75
75
  directory "#{Chef::Config[:file_cache_path]}\\gpo\\{24E13F41-7118-4FB6-AE8B-45D48AFD6AFE}\\DomainSysvol\\GPO\\#{dir}" do
@@ -66,9 +66,9 @@ case node['platform']
66
66
  end
67
67
 
68
68
  # XXX this breaks Chef mid-run
69
- # if Dir.exists?("C:\\chef")
69
+ # if Dir.exist?("C:\\chef")
70
70
  # %w{client.rb first-boot.json client.pem validation.pem}.each { |file|
71
- # if File.exists?("C:\\chef\\#{file}")
71
+ # if File.exist?("C:\\chef\\#{file}")
72
72
  # file "C:\\Users\\Administrator\\AppData\\Local\\Temp\\#{file}" do
73
73
  # content IO.read("C:\\chef\\#{file}")
74
74
  # end
@@ -17,12 +17,7 @@
17
17
  # limitations under the License.
18
18
 
19
19
  case node['platform']
20
-
21
- when "centos"
22
-
23
-
24
20
  when "ubuntu"
25
-
26
21
  ["php5", "php5-mysql", "libapache2-mod-php5", "php5-mysql", "php5-curl", "php5-gd", "php5-intl", "php-pear", "php5-imagick", "php5-imap", "php5-mcrypt", "php5-memcache", "php5-ming", "php5-ps", "php5-pspell", "php5-recode", "php5-snmp", "php5-sqlite", "php5-tidy", "php5-xmlrpc", "php5-xsl", "php5-fpm"].each { |pkg|
27
22
  package pkg
28
23
  }
@@ -37,7 +37,7 @@ class NagiosUsers
37
37
 
38
38
  def load_encrypted_databag(user_databag)
39
39
  Chef::DataBag.load(user_databag).each do |u, _|
40
- d = Chef::EncryptedDataBagItem.load(user_databag, u)
40
+ d = Chef::EncryptedDataBagItem.load(user_databag, u) # ~FC086
41
41
  @users << d unless d['nagios'].nil? || d['nagios']['email'].nil?
42
42
  end
43
43
  rescue Net::HTTPServerException
@@ -9,6 +9,10 @@ URL: http://www.ruby-lang.org/
9
9
  Prefix: /opt/rubies
10
10
  Source: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-%{version}.tar.gz
11
11
 
12
+ BuildRequires: zlib
13
+ BuildRequires: zlib-devel
14
+ BuildRequires: openssl
15
+
12
16
  %description
13
17
  I was drunk when I wrote this spec file
14
18
 
@@ -148,7 +148,7 @@ module MU
148
148
  return @@myRegion_var if @@myRegion_var
149
149
  return nil if credConfig.nil? and !hosted?
150
150
 
151
- if $MU_CFG and (!$MU_CFG['aws'] or !account_number) and !hosted?
151
+ if $MU_CFG and (!$MU_CFG['aws'] or !account_number) and !hosted? and !ENV['EC2_REGION']
152
152
  return nil
153
153
  end
154
154
 
@@ -439,6 +439,13 @@ module MU
439
439
  end
440
440
  rescue JSON::ParserError => e
441
441
  end
442
+ elsif ENV['AWS_ACCESS_KEY'] and ENV['AWS_SECRET_ACCESS_KEY']
443
+ env_config = {
444
+ "region" => ENV['EC2_REGION'] || "us-east-1",
445
+ "access_key" => ENV['AWS_ACCESS_KEY'],
446
+ "access_secret" => ENV['AWS_SECRET_ACCESS_KEY']
447
+ }
448
+ return name_only ? "#default" : env_config
442
449
  end
443
450
 
444
451
  return nil
@@ -71,15 +71,15 @@ module MU
71
71
  end
72
72
 
73
73
  def self.listRegions(credentials = nil)
74
- "TODO"
74
+ []
75
75
  end
76
76
 
77
77
  def self.listAZs(region = nil)
78
- "TODO"
78
+ []
79
79
  end
80
80
 
81
81
  def self.config_example
82
- "TODO"
82
+ {}
83
83
  end
84
84
 
85
85
  def self.writeDeploySecret
data/modules/mu/config.rb CHANGED
@@ -1152,18 +1152,21 @@ module MU
1152
1152
  ok
1153
1153
  end
1154
1154
 
1155
- # XXX this is some primitive nonsense and needs to be cloud-agnostic
1156
1155
  @@allregions = []
1157
- @@allregions.concat(MU::Cloud::AWS.listRegions) if MU::Cloud::AWS.myRegion
1158
- @@allregions.concat(MU::Cloud::Google.listRegions) if MU::Cloud::Google.defaultProject
1156
+ MU::Cloud.supportedClouds.each { |cloud|
1157
+ cloudclass = Object.const_get("MU").const_get("Cloud").const_get(cloud)
1158
+ @@allregions.concat(cloudclass.listRegions())
1159
+ }
1159
1160
 
1160
1161
  # Configuration chunk for choosing a provider region
1161
1162
  # @return [Hash]
1162
1163
  def self.region_primitive
1163
1164
  if !@@allregions or @@allregions.empty?
1164
1165
  @@allregions = []
1165
- @@allregions.concat(MU::Cloud::AWS.listRegions) if MU::Cloud::AWS.myRegion
1166
- @@allregions.concat(MU::Cloud::Google.listRegions) if MU::Cloud::Google.defaultProject
1166
+ MU::Cloud.supportedClouds.each { |cloud|
1167
+ cloudclass = Object.const_get("MU").const_get("Cloud").const_get(cloud)
1168
+ @@allregions.concat(cloudclass.listRegions())
1169
+ }
1167
1170
  end
1168
1171
  {
1169
1172
  "type" => "string",
@@ -1633,10 +1636,10 @@ module MU
1633
1636
  kitten['region'] ||= MU::Cloud::Google.myRegion(kitten['credentials'])
1634
1637
  end
1635
1638
  elsif !resclass.isGlobal?
1636
- if MU::Cloud::AWS.myRegion.nil?
1639
+ if MU::Cloud::AWS.myRegion(kitten['credentials']).nil?
1637
1640
  raise ValidationError, "AWS resource declared without a region, but no default AWS region found"
1638
1641
  end
1639
- kitten['region'] ||= MU::Cloud::AWS.myRegion
1642
+ kitten['region'] ||= MU::Cloud::AWS.myRegion(kitten['credentials'])
1640
1643
  end
1641
1644
 
1642
1645
  kitten['us_only'] ||= @config['us_only']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloud-mu
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.alpha7
4
+ version: 2.0.0.pre.alpha8
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Stange
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2019-02-13 00:00:00.000000000 Z
15
+ date: 2019-02-14 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: erubis