cloud-mu 1.9.0.pre.beta → 2.0.0.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/Berksfile +16 -54
  3. data/Berksfile.lock +14 -62
  4. data/bin/mu-aws-setup +131 -108
  5. data/bin/mu-configure +311 -74
  6. data/bin/mu-gcp-setup +84 -62
  7. data/bin/mu-load-config.rb +46 -2
  8. data/bin/mu-self-update +11 -9
  9. data/bin/mu-upload-chef-artifacts +4 -4
  10. data/{mu.gemspec → cloud-mu.gemspec} +2 -2
  11. data/cookbooks/awscli/Berksfile +8 -0
  12. data/cookbooks/mu-activedirectory/Berksfile +11 -0
  13. data/cookbooks/mu-firewall/Berksfile +9 -0
  14. data/cookbooks/mu-firewall/metadata.rb +1 -1
  15. data/cookbooks/mu-glusterfs/Berksfile +10 -0
  16. data/cookbooks/mu-jenkins/Berksfile +14 -0
  17. data/cookbooks/mu-master/Berksfile +23 -0
  18. data/cookbooks/mu-master/attributes/default.rb +1 -1
  19. data/cookbooks/mu-master/metadata.rb +2 -2
  20. data/cookbooks/mu-master/recipes/default.rb +1 -1
  21. data/cookbooks/mu-master/recipes/init.rb +7 -3
  22. data/cookbooks/mu-master/recipes/ssl-certs.rb +1 -0
  23. data/cookbooks/mu-mongo/Berksfile +10 -0
  24. data/cookbooks/mu-openvpn/Berksfile +11 -0
  25. data/cookbooks/mu-php54/Berksfile +13 -0
  26. data/cookbooks/mu-splunk/Berksfile +10 -0
  27. data/cookbooks/mu-tools/Berksfile +21 -0
  28. data/cookbooks/mu-tools/files/default/Mu_CA.pem +15 -15
  29. data/cookbooks/mu-utility/Berksfile +9 -0
  30. data/cookbooks/mu-utility/metadata.rb +2 -1
  31. data/cookbooks/nagios/Berksfile +7 -4
  32. data/cookbooks/s3fs/Berksfile +9 -0
  33. data/environments/dev.json +6 -6
  34. data/environments/prod.json +6 -6
  35. data/modules/mu.rb +20 -42
  36. data/modules/mu/cleanup.rb +102 -100
  37. data/modules/mu/cloud.rb +90 -28
  38. data/modules/mu/clouds/aws.rb +449 -218
  39. data/modules/mu/clouds/aws/alarm.rb +29 -17
  40. data/modules/mu/clouds/aws/cache_cluster.rb +78 -64
  41. data/modules/mu/clouds/aws/collection.rb +25 -18
  42. data/modules/mu/clouds/aws/container_cluster.rb +73 -66
  43. data/modules/mu/clouds/aws/database.rb +124 -116
  44. data/modules/mu/clouds/aws/dnszone.rb +27 -20
  45. data/modules/mu/clouds/aws/firewall_rule.rb +30 -22
  46. data/modules/mu/clouds/aws/folder.rb +18 -3
  47. data/modules/mu/clouds/aws/function.rb +77 -23
  48. data/modules/mu/clouds/aws/group.rb +19 -12
  49. data/modules/mu/clouds/aws/habitat.rb +153 -0
  50. data/modules/mu/clouds/aws/loadbalancer.rb +59 -52
  51. data/modules/mu/clouds/aws/log.rb +30 -23
  52. data/modules/mu/clouds/aws/msg_queue.rb +29 -20
  53. data/modules/mu/clouds/aws/notifier.rb +222 -0
  54. data/modules/mu/clouds/aws/role.rb +178 -90
  55. data/modules/mu/clouds/aws/search_domain.rb +40 -24
  56. data/modules/mu/clouds/aws/server.rb +169 -137
  57. data/modules/mu/clouds/aws/server_pool.rb +60 -83
  58. data/modules/mu/clouds/aws/storage_pool.rb +59 -31
  59. data/modules/mu/clouds/aws/user.rb +36 -27
  60. data/modules/mu/clouds/aws/userdata/linux.erb +101 -93
  61. data/modules/mu/clouds/aws/vpc.rb +250 -189
  62. data/modules/mu/clouds/azure.rb +132 -0
  63. data/modules/mu/clouds/cloudformation.rb +65 -1
  64. data/modules/mu/clouds/cloudformation/alarm.rb +8 -0
  65. data/modules/mu/clouds/cloudformation/cache_cluster.rb +7 -0
  66. data/modules/mu/clouds/cloudformation/collection.rb +7 -0
  67. data/modules/mu/clouds/cloudformation/database.rb +7 -0
  68. data/modules/mu/clouds/cloudformation/dnszone.rb +7 -0
  69. data/modules/mu/clouds/cloudformation/firewall_rule.rb +9 -2
  70. data/modules/mu/clouds/cloudformation/loadbalancer.rb +7 -0
  71. data/modules/mu/clouds/cloudformation/log.rb +7 -0
  72. data/modules/mu/clouds/cloudformation/server.rb +7 -0
  73. data/modules/mu/clouds/cloudformation/server_pool.rb +7 -0
  74. data/modules/mu/clouds/cloudformation/vpc.rb +7 -0
  75. data/modules/mu/clouds/google.rb +214 -110
  76. data/modules/mu/clouds/google/container_cluster.rb +42 -24
  77. data/modules/mu/clouds/google/database.rb +15 -6
  78. data/modules/mu/clouds/google/firewall_rule.rb +17 -25
  79. data/modules/mu/clouds/google/group.rb +13 -5
  80. data/modules/mu/clouds/google/habitat.rb +105 -0
  81. data/modules/mu/clouds/google/loadbalancer.rb +28 -20
  82. data/modules/mu/clouds/google/server.rb +93 -354
  83. data/modules/mu/clouds/google/server_pool.rb +18 -10
  84. data/modules/mu/clouds/google/user.rb +22 -14
  85. data/modules/mu/clouds/google/vpc.rb +97 -69
  86. data/modules/mu/config.rb +133 -38
  87. data/modules/mu/config/alarm.rb +25 -0
  88. data/modules/mu/config/cache_cluster.rb +5 -3
  89. data/modules/mu/config/cache_cluster.yml +23 -0
  90. data/modules/mu/config/database.rb +25 -16
  91. data/modules/mu/config/database.yml +3 -3
  92. data/modules/mu/config/function.rb +1 -2
  93. data/modules/mu/config/{project.rb → habitat.rb} +10 -10
  94. data/modules/mu/config/notifier.rb +85 -0
  95. data/modules/mu/config/notifier.yml +9 -0
  96. data/modules/mu/config/role.rb +1 -1
  97. data/modules/mu/config/search_domain.yml +2 -2
  98. data/modules/mu/config/server.rb +13 -1
  99. data/modules/mu/config/server.yml +3 -3
  100. data/modules/mu/config/server_pool.rb +3 -1
  101. data/modules/mu/config/storage_pool.rb +3 -1
  102. data/modules/mu/config/storage_pool.yml +19 -0
  103. data/modules/mu/config/vpc.rb +70 -8
  104. data/modules/mu/groomers/chef.rb +2 -3
  105. data/modules/mu/kittens.rb +500 -122
  106. data/modules/mu/master.rb +5 -5
  107. data/modules/mu/mommacat.rb +151 -91
  108. data/modules/tests/super_complex_bok.yml +12 -0
  109. data/modules/tests/super_simple_bok.yml +12 -0
  110. data/spec/mu/clouds/azure_spec.rb +82 -0
  111. data/spec/spec_helper.rb +105 -0
  112. metadata +26 -5
  113. data/modules/mu/clouds/aws/notification.rb +0 -139
  114. data/modules/mu/config/notification.rb +0 -44
@@ -45,7 +45,24 @@ Usage:
45
45
  opt :uploadlogs, "Push today's log files to the Cloud Storage bucket created by the -l option.", :require => false, :default => false, :type => :boolean
46
46
  end
47
47
 
48
- if MU::Cloud::Google.hosted
48
+ if MU::Cloud::Google.hosted? and !$MU_CFG['google']
49
+ new_cfg = $MU_CFG.dup
50
+ cfg_blob = MU::Cloud::Google.hosted_config
51
+ if cfg_blob
52
+ cfg_blob['log_bucket_name'] ||= $MU_CFG['hostname']
53
+ new_cfg["google"] = { "default" => cfg_blob }
54
+ MU.log "Adding auto-detected Google stanza to #{cfgPath}", MU::NOTICE
55
+ if new_cfg != $MU_CFG or !cfgExists?
56
+ MU.log "Generating #{cfgPath}"
57
+ saveMuConfig(new_cfg)
58
+ $MU_CFG = new_cfg
59
+ end
60
+ end
61
+ end
62
+
63
+ my_instance_id = MU::Cloud::AWS.getAWSMetaData("instance-id")
64
+
65
+ if MU::Cloud::Google.hosted?
49
66
  instance = MU.myCloudDescriptor
50
67
  admin_sg_name = "mu-master-"+MU.myInstanceId+"-ingress-allow"
51
68
  if !instance.tags.items or !instance.tags.items.include?(admin_sg_name)
@@ -110,74 +127,79 @@ if $opts[:sg]
110
127
 
111
128
  end
112
129
 
113
- $bucketname = $MU_CFG['google']['log_bucket_name']
130
+ $bucketname = MU::Cloud::Google.adminBucketName
114
131
 
115
132
  if $opts[:logs]
116
- exists = false
117
-
118
- MU.log "Configuring log and secret Google Cloud Storage bucket '#{$bucketname}'"
119
-
120
- bucket = nil
121
- begin
122
- bucket = MU::Cloud::Google.storage.get_bucket($bucketname)
123
- rescue ::Google::Apis::ClientError => e
124
- if e.message.match(/notFound:/)
125
- MU.log "Creating #{$bucketname} bucket"
126
- bucketobj = MU::Cloud::Google.storage(:Bucket).new(
127
- name: $bucketname,
128
- location: "US", # XXX why is this needed?
129
- versioning: MU::Cloud::Google.storage(:Bucket)::Versioning.new(
130
- enabled: true
131
- ),
132
- lifecycle: MU::Cloud::Google.storage(:Bucket)::Lifecycle.new(
133
- rule: [ MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule.new(
134
- action: MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule::Action.new(
135
- type: "SetStorageClass",
136
- storage_class: "DURABLE_REDUCED_AVAILABILITY"
137
- ),
138
- condition: MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule::Condition.new(
139
- age: 180
140
- )
141
- )]
133
+ MU::Cloud::Google.listCredentials.each { |credset|
134
+ bucketname = MU::Cloud::Google.adminBucketName(credset)
135
+ exists = false
136
+
137
+ MU.log "Configuring log and secret Google Cloud Storage bucket '#{bucketname}'"
138
+
139
+ bucket = nil
140
+ begin
141
+ bucket = MU::Cloud::Google.storage(credentials: credset).get_bucket(bucketname)
142
+ rescue ::Google::Apis::ClientError => e
143
+ if e.message.match(/notFound:/)
144
+ MU.log "Creating #{bucketname} bucket"
145
+ bucketobj = MU::Cloud::Google.storage(:Bucket).new(
146
+ name: bucketname,
147
+ location: "US", # XXX why is this needed?
148
+ versioning: MU::Cloud::Google.storage(:Bucket)::Versioning.new(
149
+ enabled: true
150
+ ),
151
+ lifecycle: MU::Cloud::Google.storage(:Bucket)::Lifecycle.new(
152
+ rule: [ MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule.new(
153
+ action: MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule::Action.new(
154
+ type: "SetStorageClass",
155
+ storage_class: "DURABLE_REDUCED_AVAILABILITY"
156
+ ),
157
+ condition: MU::Cloud::Google.storage(:Bucket)::Lifecycle::Rule::Condition.new(
158
+ age: 180
159
+ )
160
+ )]
161
+ )
142
162
  )
143
- )
144
- bucket = MU::Cloud::Google.storage.insert_bucket(
145
- MU::Cloud::Google.defaultProject,
146
- bucketobj
147
- )
148
- else
149
- raise MuError, e.inspect
163
+ bucket = MU::Cloud::Google.storage(credentials: credset).insert_bucket(
164
+ MU::Cloud::Google.defaultProject(credset),
165
+ bucketobj
166
+ )
167
+ else
168
+ pp e.backtrace
169
+ raise MU::MuError, e.inspect
170
+ end
150
171
  end
151
- end
152
172
 
153
- ebs_key = nil
154
-
155
- begin
156
- ebs_key = MU::Cloud::Google.storage.get_object($bucketname, "log_vol_ebs_key")
157
- rescue ::Google::Apis::ClientError => e
158
- if e.message.match(/notFound:/)
159
- # XXX this may not be useful outside of AWS
160
- MU.log "Creating new key for encrypted log volume"
161
- key = SecureRandom.random_bytes(32)
162
- f = Tempfile.new("logvolkey") # XXX this is insecure and stupid
163
- f.write key
164
- f.close
165
- objectobj = MU::Cloud::Google.storage(:Object).new(
166
- bucket: $bucketname,
167
- name: "log_vol_ebs_key"
168
- )
169
- ebs_key = MU::Cloud::Google.storage.insert_object(
170
- $bucketname,
171
- objectobj,
172
- upload_source: f.path
173
- )
174
- f.unlink
175
- else
176
- raise MuError, e.inspect
173
+ ebs_key = nil
174
+
175
+ begin
176
+ ebs_key = MU::Cloud::Google.storage(credentials: credset).get_object(bucketname, "log_vol_ebs_key")
177
+ rescue ::Google::Apis::ClientError => e
178
+ if e.message.match(/notFound:/)
179
+ # XXX this may not be useful outside of AWS
180
+ MU.log "Creating new key for encrypted log volume"
181
+ key = SecureRandom.random_bytes(32)
182
+ f = Tempfile.new("logvolkey") # XXX this is insecure and stupid
183
+ f.write key
184
+ f.close
185
+ objectobj = MU::Cloud::Google.storage(:Object).new(
186
+ bucket: bucketname,
187
+ name: "log_vol_ebs_key"
188
+ )
189
+ ebs_key = MU::Cloud::Google.storage(credentials: credset).insert_object(
190
+ bucketname,
191
+ objectobj,
192
+ upload_source: f.path
193
+ )
194
+ f.unlink
195
+ else
196
+ raise MuError, e.inspect
197
+ end
177
198
  end
178
- end
199
+ # XXX stop doing this per-bucket, chowderhead
200
+ MU::Master.disk("/dev/xvdl", "/Mu_Logs", 50, "log_vol_ebs_key", "ram7")
201
+ }
179
202
 
180
- MU::Master.disk("/dev/xvdl", "/Mu_Logs", 50, "log_vol_ebs_key", "ram7")
181
203
  end
182
204
 
183
205
  if $opts[:dns]
@@ -18,6 +18,46 @@ require 'json'
18
18
  require 'erubis'
19
19
  require 'socket'
20
20
 
21
+ # Make sure things make sense in our various cloud subsections, which are more
22
+ # complicated than the rest. May alter the hash it's passed.
23
+ def validateClouds(cfg)
24
+ ok = true
25
+
26
+ ['aws', 'google', 'azure'].each { |cloud|
27
+ if cfg[cloud]
28
+ found_default = false
29
+ # Muddle up old-style single-account cloud configs into an array of
30
+ # named accounts, which is what we're expecting to see nowadays.
31
+ if cfg[cloud] and cfg[cloud].values.any? { |h| !h.is_a?(Hash) }
32
+ puts "Converting single #{cloud} #{cfgPath} account entry to default alias"
33
+ cfg[cloud] = {
34
+ "default" => cfg[cloud]
35
+ }
36
+ cfg[cloud]["default"]["default"] = true
37
+ found_default = true
38
+ else
39
+ missing_alias = false
40
+ cfg[cloud].each_pair { |acctalias, acct|
41
+ if acct["default"]
42
+ if found_default
43
+ puts "Multiple accounts have 'default' set in #{cloud}"
44
+ ok = false
45
+ end
46
+ found_default = true
47
+ end
48
+ }
49
+ end
50
+ if !found_default
51
+ first = cfg[cloud].keys.first
52
+ puts "No default #{cloud} credentials specified in #{cfgPath}, arbitrarily designating '#{first}'"
53
+ cfg[cloud][first]["default"] = true
54
+ end
55
+ end
56
+ }
57
+
58
+ ok
59
+ end
60
+
21
61
  # Locate and load the Mu Master's configuration, typically stored in
22
62
  # /opt/mu/etc/mu.yaml. If ~/.mu.yaml exists, load that too and allow it to
23
63
  # override values from the global config. Also puts Mu's /modules directory
@@ -94,7 +134,7 @@ def loadMuConfig(default_cfg_overrides = nil)
94
134
  if !global_cfg.has_key?("installdir")
95
135
  if ENV['MU_INSTALLDIR']
96
136
  global_cfg["installdir"] = ENV['MU_INSTALLDIR']
97
- elsif Gem.paths and Gem.paths.home
137
+ elsif Gem.paths and Gem.paths.home and !Dir.exists?("/opt/mu/lib")
98
138
  global_cfg["installdir"] = File.realpath(File.expand_path(File.dirname(Gem.paths.home))+"/../../../")
99
139
  else
100
140
  global_cfg["installdir"] = "/opt/mu"
@@ -117,10 +157,13 @@ def loadMuConfig(default_cfg_overrides = nil)
117
157
  end
118
158
  end
119
159
 
160
+ exit 1 if !validateClouds(global_cfg)
161
+
120
162
  $LOAD_PATH << "#{global_cfg["libdir"]}/modules"
121
163
  return default_cfg.merge(global_cfg).freeze
122
164
  end
123
165
 
166
+ # Shorthand for locating the path to mu.yaml
124
167
  def cfgPath
125
168
  home = Etc.getpwuid(Process.uid).dir
126
169
  username = Etc.getpwuid(Process.uid).name
@@ -128,7 +171,7 @@ def cfgPath
128
171
  if ENV.include?('MU_INSTALLDIR')
129
172
  ENV['MU_INSTALLDIR']+"/etc/mu.yaml"
130
173
  elsif Dir.exists?("/opt/mu")
131
- File.realpath(File.expand_path(File.dirname(__FILE__)+"/../../etc"))
174
+ "/opt/mu/etc/mu.yaml"
132
175
  else
133
176
  "#{home}/.mu.yaml"
134
177
  end
@@ -146,6 +189,7 @@ end
146
189
  # @param cfg [Hash]: The configuration to dump
147
190
  # @param comment [Hash]: A configuration blob that will be appended as a commented block
148
191
  def saveMuConfig(cfg, comment = nil)
192
+ exit 1 if !validateClouds(cfg)
149
193
  puts "**** Saving master config to #{cfgPath} *****"
150
194
  File.open(cfgPath, File::CREAT|File::TRUNC|File::RDWR, 0644){ |f|
151
195
  f.puts cfg.to_yaml
@@ -168,15 +168,6 @@ elif [ "`diff -r $MU_LIBDIR/Berksfile.lock $MU_DATADIR/tmp/berks_changes.$$/Berk
168
168
  set -- "-u" "$@"
169
169
  fi
170
170
 
171
- /bin/rm -rf $MU_DATADIR/tmp/cookbook_changes.$$
172
- /bin/rm -rf $MU_DATADIR/tmp/berks_changes.$$
173
-
174
- if [ "$rebuild_chef_artifacts" == "1" ];then
175
- /bin/rm -rf /root/.berkshelf/cookbooks
176
- $bindir/mu-upload-chef-artifacts -p
177
- else
178
- $bindir/mu-upload-chef-artifacts -r mu
179
- fi
180
171
 
181
172
  set +e
182
173
  /sbin/service nagios stop
@@ -203,7 +194,18 @@ if [ "$chef_major" == "12" ];then
203
194
  fi
204
195
 
205
196
  /opt/chef/bin/chef-apply $MU_LIBDIR/cookbooks/mu-master/recipes/init.rb
197
+
198
+ /bin/rm -rf $MU_DATADIR/tmp/cookbook_changes.$$
199
+ /bin/rm -rf $MU_DATADIR/tmp/berks_changes.$$
200
+
201
+ if [ "$rebuild_chef_artifacts" == "1" ];then
202
+ /bin/rm -rf /root/.berkshelf/cookbooks
203
+ $bindir/mu-upload-chef-artifacts -p
204
+ else
205
+ $bindir/mu-upload-chef-artifacts -r mu
206
+ fi
206
207
  $bindir/mu-configure -n
208
+
207
209
  for dir in $MU_LIBDIR /opt/chef/embedded /opt/opscode/embedded /usr/local/ruby-current/;do
208
210
  echo "${GREEN}Sanitizing permissions in ${BOLD}$dir${NORM}${GREEN}${NORM}"
209
211
  for tree in `ls -1 $dir/`;do
@@ -44,10 +44,10 @@ real_datadir="$MU_DATADIR"
44
44
 
45
45
 
46
46
  source $MU_INSTALLDIR/lib/install/deprecated-bash-library.sh
47
- if [ -x $MU_INSTALLDIR/lib/bin/mu-gen-env ];then
48
- $MU_INSTALLDIR/lib/bin/mu-gen-env > $HOMEDIR/.murc
49
- source $HOMEDIR/.murc
50
- fi
47
+ # if [ -x $MU_INSTALLDIR/lib/bin/mu-gen-env ];then
48
+ # $MU_INSTALLDIR/lib/bin/mu-gen-env > $HOMEDIR/.murc
49
+ # source $HOMEDIR/.murc
50
+ # fi
51
51
  export MU_DATADIR="$real_datadir"
52
52
 
53
53
  cd $MU_CHEF_CACHE
@@ -17,7 +17,7 @@ end
17
17
 
18
18
  Gem::Specification.new do |s|
19
19
  s.name = 'cloud-mu'
20
- s.version = '1.9.0-beta'
20
+ s.version = '2.0.0-alpha'
21
21
  s.date = '2018-12-11'
22
22
  s.require_paths = ['modules']
23
23
  s.required_ruby_version = '>= 2.4'
@@ -34,7 +34,7 @@ EOF
34
34
  s.authors = ["John Stange", "Robert Patt-Corner", "Ryan Bolyard", "Clara Bridges", "Zach Rowe"]
35
35
  s.email = 'eGTLabs@eglobaltech.com'
36
36
  s.files = build_file_list(whereami)
37
- s.executables = Dir.entries(whereami+"/bin")
37
+ s.executables = Dir.entries(whereami+"/bin").reject { |f| File.directory?(f) }
38
38
  s.homepage =
39
39
  'https://github.com/cloudamatic/mu'
40
40
  s.license = 'BSD-3-Clause-Attribution'
@@ -0,0 +1,8 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+
8
+ # Supermarket Cookbooks
@@ -0,0 +1,11 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+
8
+ # Supermarket Cookbooks
9
+ cookbook "windows", '~> 5.1.1'
10
+ cookbook "chef-vault", '~> 3.1.1'
11
+ cookbook "yum-epel", '~> 3.2.0'
@@ -0,0 +1,9 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+
8
+ # Supermarket Cookbooks
9
+ cookbook 'firewall', '~> 2.6.5'
@@ -13,4 +13,4 @@ version '0.1.0'
13
13
  supports os
14
14
  end
15
15
 
16
- depends 'firewall', '~> 2.6.5'
16
+ depends 'firewall', '~> 2.7.0'
@@ -0,0 +1,10 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+ cookbook 'mu-firewall'
8
+
9
+ # Supermarket Cookbooks
10
+ cookbook 'yum', '~> 5.1.0'
@@ -0,0 +1,14 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+ cookbook 'mu-master'
8
+ cookbook 'mu-utility'
9
+ cookbook 'mu-tools'
10
+
11
+ # Supermarket Cookbooks
12
+ cookbook 'java', '~> 2.2.0'
13
+ cookbook 'jenkins', '~> 6.2.0'
14
+ cookbook 'chef-vault', '~> 3.1.1'
@@ -0,0 +1,23 @@
1
+ source 'https://supermarket.chef.io'
2
+ source chef_repo: ".."
3
+
4
+ metadata
5
+
6
+ # Mu Cookbooks
7
+ cookbook 'nagios'
8
+ cookbook 'mu-utility'
9
+ cookbook 'mu-tools'
10
+ cookbook 'mu-firewall'
11
+ cookbook 'mu-activedirectory'
12
+ cookbook 's3fs'
13
+
14
+ # Supermarket Cookbooks
15
+ cookbook 'nrpe', '~> 2.0.3'
16
+ cookbook 'postfix', '~> 5.3.1'
17
+ cookbook 'bind', '~> 2.2.0'
18
+ cookbook 'bind9-ng', '~> 0.1.0'
19
+ cookbook 'vault-cluster', '~> 2.1.0'
20
+ cookbook 'consul-cluster', '~> 2.0.0'
21
+ cookbook 'hostsfile', '~> 3.0.1'
22
+ cookbook 'chef-vault', '~> 3.1.1'
23
+ cookbook 'apache2', '< 4.0'
@@ -77,7 +77,7 @@ default['nagios']['host_name_attribute'] = 'chef_node_name'
77
77
  default['application_attributes']['logs']['volume_size_gb'] = 50
78
78
  default['application_attributes']['logs']['mount_device'] = "/dev/xvdl"
79
79
  default['application_attributes']['logs']['label'] = "#{node['hostname']} /Mu_Logs"
80
- default['application_attributes']['logs']['secure_location'] = MU.adminBucketName
80
+ #default['application_attributes']['logs']['secure_location'] = MU.adminBucketName
81
81
  default['application_attributes']['logs']['ebs_keyfile'] = "log_vol_ebs_key"
82
82
  default['application_attributes']['logs']['mount_directory'] = "/Mu_Logs"
83
83
 
@@ -7,7 +7,7 @@ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
7
  source_url 'https://github.com/cloudamatic/mu'
8
8
  issues_url 'https://github.com/cloudamatic/mu/issues'
9
9
  chef_version '>= 12.1' if respond_to?(:chef_version)
10
- version '0.9.0'
10
+ version '0.9.2'
11
11
 
12
12
  %w( centos ).each do |os|
13
13
  supports os
@@ -18,7 +18,7 @@ depends 'nrpe', '~> 2.0.3'
18
18
  depends 'mu-utility'
19
19
  depends 'mu-tools'
20
20
  depends 'mu-activedirectory'
21
- depends 's3fs', '~> 3.0.1'
21
+ depends 's3fs'
22
22
  depends 'postfix', '~> 5.3.1'
23
23
  depends 'bind', '~> 2.2.0'
24
24
  depends 'bind9-ng', '~> 0.1.0'
@@ -27,7 +27,7 @@ include_recipe 'mu-master::firewall-holes'
27
27
  include_recipe 'mu-master::ssl-certs'
28
28
  include_recipe 'mu-master::vault'
29
29
  include_recipe 'mu-tools::gcloud'
30
- include_recipe 'mu-master::eks-kubectl'
30
+ #include_recipe 'mu-master::eks-kubectl'
31
31
 
32
32
  master_ips = get_mu_master_ips
33
33
  master_ips << "127.0.0.1"