ridley 0.12.4 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/Gemfile +1 -1
  2. data/lib/ridley.rb +3 -3
  3. data/lib/ridley/bootstrap_context.rb +100 -0
  4. data/lib/ridley/bootstrap_context/unix.rb +74 -0
  5. data/lib/ridley/bootstrap_context/windows.rb +120 -0
  6. data/lib/ridley/chef_objects/node_object.rb +8 -5
  7. data/lib/ridley/host_commander.rb +207 -0
  8. data/lib/ridley/host_connector.rb +49 -87
  9. data/lib/ridley/host_connector/ssh.rb +153 -39
  10. data/lib/ridley/host_connector/winrm.rb +164 -39
  11. data/lib/ridley/resources/node_resource.rb +52 -56
  12. data/lib/ridley/version.rb +1 -1
  13. data/ridley.gemspec +0 -2
  14. data/spec/spec_helper.rb +4 -4
  15. data/spec/support/chef_server.rb +9 -3
  16. data/spec/unit/ridley/{bootstrap_bindings/unix_template_binding_spec.rb → bootstrap_context/unix_spec.rb} +2 -2
  17. data/spec/unit/ridley/{bootstrap_bindings/windows_template_binding_spec.rb → bootstrap_context/windows_spec.rb} +2 -2
  18. data/spec/unit/ridley/{mixin/bootstrap_binding_spec.rb → bootstrap_context_spec.rb} +2 -6
  19. data/spec/unit/ridley/host_commander_spec.rb +208 -0
  20. data/spec/unit/ridley/host_connector/ssh_spec.rb +37 -31
  21. data/spec/unit/ridley/host_connector/winrm_spec.rb +124 -31
  22. data/spec/unit/ridley/host_connector_spec.rb +23 -147
  23. data/spec/unit/ridley/resources/node_resource_spec.rb +55 -115
  24. metadata +17 -66
  25. data/lib/ridley/bootstrap_bindings.rb +0 -3
  26. data/lib/ridley/bootstrap_bindings/unix_template_binding.rb +0 -108
  27. data/lib/ridley/bootstrap_bindings/windows_template_binding.rb +0 -163
  28. data/lib/ridley/bootstrapper.rb +0 -89
  29. data/lib/ridley/bootstrapper/context.rb +0 -81
  30. data/lib/ridley/host_connector/response_set.rb +0 -98
  31. data/lib/ridley/host_connector/ssh/worker.rb +0 -135
  32. data/lib/ridley/host_connector/winrm/worker.rb +0 -159
  33. data/lib/ridley/log.rb +0 -10
  34. data/lib/ridley/mixin/bootstrap_binding.rb +0 -77
  35. data/spec/unit/ridley/bootstrapper/context_spec.rb +0 -45
  36. data/spec/unit/ridley/bootstrapper_spec.rb +0 -96
  37. data/spec/unit/ridley/host_connector/response_set_spec.rb +0 -112
  38. data/spec/unit/ridley/host_connector/ssh/worker_spec.rb +0 -57
  39. data/spec/unit/ridley/host_connector/winrm/worker_spec.rb +0 -139
@@ -3,163 +3,103 @@ require 'spec_helper'
3
3
  describe Ridley::NodeResource do
4
4
  let(:host) { "33.33.33.10" }
5
5
  let(:worker) { double('worker', alive?: true, terminate: nil) }
6
+ let(:host_commander) { double('host-commander') }
6
7
  let(:options) do
7
8
  {
8
- server_url: "https://api.opscode.com/organizations/vialstudios",
9
- validator_path: "/some/path",
10
- validator_client: "chef-validator",
11
- encrypted_data_bag_secret: "hellokitty",
12
- ssh: {
13
- user: "reset",
14
- password: "lol"
15
- },
16
- winrm: {
17
- user: "Administrator",
18
- password: "secret"
19
- },
20
- chef_version: "11.4.0"
9
+ server_url: double('server_url'),
10
+ validator_path: double('validator_path'),
11
+ validator_client: double('validator_client'),
12
+ encrypted_data_bag_secret: double('encrypted_data_bag_secret'),
13
+ ssh: double('ssh'),
14
+ winrm: double('winrm'),
15
+ chef_version: double('chef_version')
21
16
  }
22
17
  end
23
- let(:instance) { described_class.new(double, options) }
18
+ let(:instance) do
19
+ inst = described_class.new(double, options)
20
+ inst.stub(connection: chef_zero_connection, host_commander: host_commander)
21
+ inst
22
+ end
24
23
 
25
24
  describe "#bootstrap" do
26
- let(:hosts) { [ "192.168.1.2" ] }
27
- let(:options) do
28
- {
29
- validator_path: fixtures_path.join("reset.pem").to_s,
30
- encrypted_data_bag_secret: File.read(fixtures_path.join("reset.pem"))
31
- }
25
+ it "sends the message #bootstrap to the instance's host_commander" do
26
+ host_commander.should_receive(:bootstrap).with(host, options)
27
+ instance.bootstrap(host)
32
28
  end
33
- let(:bootstrapper) { double('bootstrapper', run: nil) }
34
- subject { instance }
35
- before { Ridley::Bootstrapper.should_receive(:new).with(hosts, anything).and_return(bootstrapper) }
36
-
37
- it "runs the Bootstrapper" do
38
- bootstrapper.should_receive(:run)
39
29
 
40
- subject.bootstrap("192.168.1.2", options)
30
+ it "passes pre-configured options to #bootstrap" do
31
+ host_commander.should_receive(:bootstrap).with(host, options)
32
+ instance.bootstrap(host)
41
33
  end
42
34
  end
43
35
 
44
36
  describe "#chef_run" do
45
- let(:chef_run) { instance.chef_run(host) }
46
- let(:response) { [:ok, double('response', stdout: 'success_message')] }
47
- subject { chef_run }
48
-
49
- before do
50
- Ridley::HostConnector.stub(:new).and_return(worker)
51
- worker.stub(:chef_client).and_return(response)
52
- end
53
-
54
- it { should eql(response) }
55
-
56
- context "when it executes unsuccessfully" do
57
- let(:response) { [ :error, double('response', stderr: 'failure_message') ] }
58
-
59
- it { should eql(response) }
60
- end
61
-
62
- it "terminates the worker" do
63
- worker.should_receive(:terminate)
64
- chef_run
37
+ it "sends the message #chef_client to the instance's host_commander" do
38
+ host_commander.should_receive(:chef_client).with(host, ssh: instance.ssh, winrm: instance.winrm)
39
+ instance.chef_run(host)
65
40
  end
66
41
  end
67
42
 
68
43
  describe "#put_secret" do
69
- let(:put_secret) { instance.put_secret(host) }
70
- let(:response) { [ :ok, double('response', stdout: 'success_message') ] }
71
- subject { put_secret }
72
-
73
- before do
74
- Ridley::HostConnector.stub(:new).and_return(worker)
75
- worker.stub(:put_secret).and_return(response)
76
- end
77
-
78
- it { should eql(response) }
79
-
80
- context "when it executes unsuccessfully" do
81
- let(:response) { [ :error, double('response', stderr: 'failure_message') ] }
82
-
83
- it { should eql(response) }
84
- end
44
+ let(:secret) { options[:encrypted_data_bag_secret] }
85
45
 
86
- it "terminates the worker" do
87
- worker.should_receive(:terminate)
88
- put_secret
46
+ it "sends the message #put_secret to the instance's host_commander" do
47
+ host_commander.should_receive(:put_secret).with(host, secret, options.slice(:ssh, :winrm))
48
+ instance.put_secret(host)
89
49
  end
90
50
  end
91
51
 
92
52
  describe "#ruby_script" do
93
- let(:ruby_script) { instance.ruby_script(host, command_lines) }
94
- let(:response) { [:ok, double('response', stdout: 'success_message')] }
95
53
  let(:command_lines) { ["puts 'hello'", "puts 'there'"] }
96
- subject { ruby_script }
97
54
 
98
- before do
99
- Ridley::HostConnector.stub(:new).and_return(worker)
100
- worker.stub(:ruby_script).and_return(response)
101
- end
102
-
103
- it { should eq(response) }
104
-
105
- context "when it executes unsuccessfully" do
106
- let(:response) { [:error, double('response', stderr: 'failure_message')] }
107
-
108
- it { should eq(response) }
109
- end
110
-
111
- it "terminates the worker" do
112
- worker.should_receive(:terminate)
113
- ruby_script
55
+ it "sends the message #ruby_script to the instance's host_commander" do
56
+ host_commander.should_receive(:ruby_script).with(host, command_lines, ssh: instance.ssh, winrm: instance.winrm)
57
+ instance.ruby_script(host, command_lines)
114
58
  end
115
59
  end
116
60
 
117
61
  describe "#execute_command" do
118
- let(:execute_command) { instance.execute_command(host, command) }
119
- let(:response) { [:ok, double('response', stdout: 'success_message')] }
120
62
  let(:command) { "echo 'hello world'" }
121
- subject { execute_command }
122
-
123
- before do
124
- Ridley::HostConnector.stub(:new).and_return(worker)
125
- worker.stub(:run).and_return(response)
126
- end
127
-
128
- it { should eq(response) }
129
63
 
130
- context "when it executes unsuccessfully" do
131
- let(:response) { [:error, double('response', stderr: 'failure_message')] }
132
-
133
- it { should eq(response) }
64
+ it "sends the message #run to the instance's host_commander" do
65
+ host_commander.should_receive(:run).with(host, command, ssh: instance.ssh, winrm: instance.winrm)
66
+ instance.execute_command(host, command)
134
67
  end
135
68
  end
136
69
 
137
70
  describe "#merge_data" do
138
- subject { instance }
139
- let(:node) { double('node') }
140
- let(:data) { double('data') }
141
-
142
- before { subject.stub(find: nil) }
71
+ let(:node_name) { "rspec-test" }
72
+ let(:run_list) { [ "recipe[one]", "recipe[two]" ] }
73
+ let(:attributes) { { deep: { two: "val" } } }
74
+
75
+ subject(:result) { instance.merge_data(node_name, run_list: run_list, attributes: attributes) }
76
+
77
+ context "when a node of the given name exists" do
78
+ before do
79
+ chef_node(node_name,
80
+ run_list: [ "recipe[one]", "recipe[three]" ],
81
+ normal: { deep: { one: "val" } }
82
+ )
83
+ end
143
84
 
144
- context "when a node with the given name exists" do
145
- before { subject.should_receive(:find).and_return(node) }
85
+ it "returns a Ridley::NodeObject" do
86
+ expect(result).to be_a(Ridley::NodeObject)
87
+ end
146
88
 
147
- it "finds the target node, sends it the merge_data message, and updates it" do
148
- updated = double('updated')
149
- node.should_receive(:merge_data).with(data).and_return(updated)
150
- subject.should_receive(:update).with(updated)
89
+ it "has a union between the run list of the original node and the new run list" do
90
+ expect(result.run_list).to eql(["recipe[one]","recipe[three]","recipe[two]"])
91
+ end
151
92
 
152
- subject.merge_data(node, data)
93
+ it "has a deep merge between the attributes of the original node and the new attributes" do
94
+ expect(result.normal.to_hash).to eql(deep: { one: "val", two: "val" })
153
95
  end
154
96
  end
155
97
 
156
98
  context "when a node with the given name does not exist" do
157
- before { subject.should_receive(:find).with(node).and_return(nil) }
99
+ let(:node_name) { "does_not_exist" }
158
100
 
159
101
  it "raises a ResourceNotFound error" do
160
- expect {
161
- subject.merge_data(node, data)
162
- }.to raise_error(Ridley::Errors::ResourceNotFound)
102
+ expect { result }.to raise_error(Ridley::Errors::ResourceNotFound)
163
103
  end
164
104
  end
165
105
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.4
5
- prerelease:
4
+ version: 1.0.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jamie Winsor
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-28 00:00:00.000000000 Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -107,22 +107,6 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: 2.0.2
110
- - !ruby/object:Gem::Dependency
111
- name: mixlib-log
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: 1.3.0
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: 1.3.0
126
110
  - !ruby/object:Gem::Dependency
127
111
  name: mixlib-shellout
128
112
  requirement: !ruby/object:Gem::Requirement
@@ -139,22 +123,6 @@ dependencies:
139
123
  - - ! '>='
140
124
  - !ruby/object:Gem::Version
141
125
  version: 1.1.0
142
- - !ruby/object:Gem::Dependency
143
- name: mixlib-config
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: 1.1.0
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: 1.1.0
158
126
  - !ruby/object:Gem::Dependency
159
127
  name: mixlib-authentication
160
128
  requirement: !ruby/object:Gem::Requirement
@@ -269,11 +237,9 @@ files:
269
237
  - bootstrappers/unix_omnibus.erb
270
238
  - bootstrappers/windows_omnibus.erb
271
239
  - lib/ridley.rb
272
- - lib/ridley/bootstrap_bindings.rb
273
- - lib/ridley/bootstrap_bindings/unix_template_binding.rb
274
- - lib/ridley/bootstrap_bindings/windows_template_binding.rb
275
- - lib/ridley/bootstrapper.rb
276
- - lib/ridley/bootstrapper/context.rb
240
+ - lib/ridley/bootstrap_context.rb
241
+ - lib/ridley/bootstrap_context/unix.rb
242
+ - lib/ridley/bootstrap_context/windows.rb
277
243
  - lib/ridley/chef.rb
278
244
  - lib/ridley/chef/chefignore.rb
279
245
  - lib/ridley/chef/cookbook.rb
@@ -293,15 +259,12 @@ files:
293
259
  - lib/ridley/client.rb
294
260
  - lib/ridley/connection.rb
295
261
  - lib/ridley/errors.rb
262
+ - lib/ridley/host_commander.rb
296
263
  - lib/ridley/host_connector.rb
297
264
  - lib/ridley/host_connector/response.rb
298
- - lib/ridley/host_connector/response_set.rb
299
265
  - lib/ridley/host_connector/ssh.rb
300
- - lib/ridley/host_connector/ssh/worker.rb
301
266
  - lib/ridley/host_connector/winrm.rb
302
267
  - lib/ridley/host_connector/winrm/command_uploader.rb
303
- - lib/ridley/host_connector/winrm/worker.rb
304
- - lib/ridley/log.rb
305
268
  - lib/ridley/logging.rb
306
269
  - lib/ridley/middleware.rb
307
270
  - lib/ridley/middleware/chef_auth.rb
@@ -311,7 +274,6 @@ files:
311
274
  - lib/ridley/middleware/parse_json.rb
312
275
  - lib/ridley/middleware/retry.rb
313
276
  - lib/ridley/mixin.rb
314
- - lib/ridley/mixin/bootstrap_binding.rb
315
277
  - lib/ridley/mixin/checksum.rb
316
278
  - lib/ridley/mixin/shell_out.rb
317
279
  - lib/ridley/resource.rb
@@ -361,10 +323,9 @@ files:
361
323
  - spec/support/filepath_matchers.rb
362
324
  - spec/support/shared_examples/ridley_resource.rb
363
325
  - spec/support/spec_helpers.rb
364
- - spec/unit/ridley/bootstrap_bindings/unix_template_binding_spec.rb
365
- - spec/unit/ridley/bootstrap_bindings/windows_template_binding_spec.rb
366
- - spec/unit/ridley/bootstrapper/context_spec.rb
367
- - spec/unit/ridley/bootstrapper_spec.rb
326
+ - spec/unit/ridley/bootstrap_context/unix_spec.rb
327
+ - spec/unit/ridley/bootstrap_context/windows_spec.rb
328
+ - spec/unit/ridley/bootstrap_context_spec.rb
368
329
  - spec/unit/ridley/chef/chefignore_spec.rb
369
330
  - spec/unit/ridley/chef/cookbook_spec.rb
370
331
  - spec/unit/ridley/chef/digester_spec.rb
@@ -380,18 +341,15 @@ files:
380
341
  - spec/unit/ridley/client_spec.rb
381
342
  - spec/unit/ridley/connection_spec.rb
382
343
  - spec/unit/ridley/errors_spec.rb
383
- - spec/unit/ridley/host_connector/response_set_spec.rb
384
- - spec/unit/ridley/host_connector/ssh/worker_spec.rb
344
+ - spec/unit/ridley/host_commander_spec.rb
385
345
  - spec/unit/ridley/host_connector/ssh_spec.rb
386
346
  - spec/unit/ridley/host_connector/winrm/command_uploader_spec.rb
387
- - spec/unit/ridley/host_connector/winrm/worker_spec.rb
388
347
  - spec/unit/ridley/host_connector/winrm_spec.rb
389
348
  - spec/unit/ridley/host_connector_spec.rb
390
349
  - spec/unit/ridley/middleware/chef_auth_spec.rb
391
350
  - spec/unit/ridley/middleware/chef_response_spec.rb
392
351
  - spec/unit/ridley/middleware/gzip_spec.rb
393
352
  - spec/unit/ridley/middleware/parse_json_spec.rb
394
- - spec/unit/ridley/mixin/bootstrap_binding_spec.rb
395
353
  - spec/unit/ridley/resource_spec.rb
396
354
  - spec/unit/ridley/resources/client_resource_spec.rb
397
355
  - spec/unit/ridley/resources/cookbook_resource_spec.rb
@@ -420,12 +378,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
420
378
  required_rubygems_version: !ruby/object:Gem::Requirement
421
379
  none: false
422
380
  requirements:
423
- - - ! '>='
381
+ - - ! '>'
424
382
  - !ruby/object:Gem::Version
425
- version: '0'
426
- segments:
427
- - 0
428
- hash: 744717169722095875
383
+ version: 1.3.1
429
384
  requirements: []
430
385
  rubyforge_project:
431
386
  rubygems_version: 1.8.23
@@ -466,10 +421,9 @@ test_files:
466
421
  - spec/support/filepath_matchers.rb
467
422
  - spec/support/shared_examples/ridley_resource.rb
468
423
  - spec/support/spec_helpers.rb
469
- - spec/unit/ridley/bootstrap_bindings/unix_template_binding_spec.rb
470
- - spec/unit/ridley/bootstrap_bindings/windows_template_binding_spec.rb
471
- - spec/unit/ridley/bootstrapper/context_spec.rb
472
- - spec/unit/ridley/bootstrapper_spec.rb
424
+ - spec/unit/ridley/bootstrap_context/unix_spec.rb
425
+ - spec/unit/ridley/bootstrap_context/windows_spec.rb
426
+ - spec/unit/ridley/bootstrap_context_spec.rb
473
427
  - spec/unit/ridley/chef/chefignore_spec.rb
474
428
  - spec/unit/ridley/chef/cookbook_spec.rb
475
429
  - spec/unit/ridley/chef/digester_spec.rb
@@ -485,18 +439,15 @@ test_files:
485
439
  - spec/unit/ridley/client_spec.rb
486
440
  - spec/unit/ridley/connection_spec.rb
487
441
  - spec/unit/ridley/errors_spec.rb
488
- - spec/unit/ridley/host_connector/response_set_spec.rb
489
- - spec/unit/ridley/host_connector/ssh/worker_spec.rb
442
+ - spec/unit/ridley/host_commander_spec.rb
490
443
  - spec/unit/ridley/host_connector/ssh_spec.rb
491
444
  - spec/unit/ridley/host_connector/winrm/command_uploader_spec.rb
492
- - spec/unit/ridley/host_connector/winrm/worker_spec.rb
493
445
  - spec/unit/ridley/host_connector/winrm_spec.rb
494
446
  - spec/unit/ridley/host_connector_spec.rb
495
447
  - spec/unit/ridley/middleware/chef_auth_spec.rb
496
448
  - spec/unit/ridley/middleware/chef_response_spec.rb
497
449
  - spec/unit/ridley/middleware/gzip_spec.rb
498
450
  - spec/unit/ridley/middleware/parse_json_spec.rb
499
- - spec/unit/ridley/mixin/bootstrap_binding_spec.rb
500
451
  - spec/unit/ridley/resource_spec.rb
501
452
  - spec/unit/ridley/resources/client_resource_spec.rb
502
453
  - spec/unit/ridley/resources/cookbook_resource_spec.rb
@@ -1,3 +0,0 @@
1
- Dir["#{File.dirname(__FILE__)}/bootstrap_bindings/*.rb"].sort.each do |path|
2
- require_relative "bootstrap_bindings/#{File.basename(path, '.rb')}"
3
- end
@@ -1,108 +0,0 @@
1
- module Ridley
2
- # Represents a binding that will be evaluated as an ERB template. When bootstrapping
3
- # nodes, an instance of this class represents the customizable and necessary configurations
4
- # needed by the Host in order to install and connect to Chef. By default, this class will be used
5
- # when SSH is the best way to connect to the node.
6
- #
7
- # @author Kyle Allan <kallan@riotgames.com>
8
- class UnixTemplateBinding
9
- include Ridley::BootstrapBinding
10
-
11
- attr_reader :sudo
12
- attr_reader :hints
13
-
14
- # @option options [String] :validator_client
15
- # @option options [String] :validator_path
16
- # filepath to the validator used to bootstrap the node (required)
17
- # @option options [String] :bootstrap_proxy (nil)
18
- # URL to a proxy server to bootstrap through
19
- # @option options [String] :encrypted_data_bag_secret
20
- # your organizations encrypted data bag secret
21
- # @option options [Hash] :hints (Hash.new)
22
- # a hash of Ohai hints to place on the bootstrapped node
23
- # @option options [Hash] :attributes (Hash.new)
24
- # a hash of attributes to use in the first Chef run
25
- # @option options [Array] :run_list (Array.new)
26
- # an initial run list to bootstrap with
27
- # @option options [String] :chef_version (nil)
28
- # version of Chef to install on the node
29
- # @option options [String] :environment ('_default')
30
- # environment to join the node to
31
- # @option options [Boolean] :sudo (true)
32
- # bootstrap with sudo (default: true)
33
- # @option options [String] :template ('unix_omnibus')
34
- # bootstrap template to use
35
- def initialize(options = {})
36
- options = self.class.default_options.merge(options)
37
- options[:template] ||= default_template
38
- self.class.validate_options(options)
39
-
40
- @template_file = options[:template]
41
- @bootstrap_proxy = options[:bootstrap_proxy]
42
- @chef_version = options[:chef_version]
43
- @sudo = options[:sudo]
44
- @validator_path = options[:validator_path]
45
- @encrypted_data_bag_secret = options[:encrypted_data_bag_secret]
46
- @hints = options[:hints]
47
- @server_url = options[:server_url]
48
- @validator_client = options[:validator_client]
49
- @node_name = options[:node_name]
50
- @attributes = options[:attributes]
51
- @run_list = options[:run_list]
52
- @environment = options[:environment]
53
- end
54
-
55
- # @return [String]
56
- def boot_command
57
- cmd = template.evaluate(self)
58
-
59
- if sudo
60
- cmd = "sudo #{cmd}"
61
- end
62
-
63
- cmd
64
- end
65
-
66
- # @return [String]
67
- def chef_config
68
- body = <<-CONFIG
69
- log_level :info
70
- log_location STDOUT
71
- chef_server_url "#{server_url}"
72
- validation_client_name "#{validator_client}"
73
- CONFIG
74
-
75
- if node_name.present?
76
- body << %Q{node_name "#{node_name}"\n}
77
- else
78
- body << "# Using default node name (fqdn)\n"
79
- end
80
-
81
- if bootstrap_proxy.present?
82
- body << %Q{http_proxy "#{bootstrap_proxy}"\n}
83
- body << %Q{https_proxy "#{bootstrap_proxy}"\n}
84
- end
85
-
86
- if encrypted_data_bag_secret.present?
87
- body << %Q{encrypted_data_bag_secret "#{bootstrap_directory}/encrypted_data_bag_secret"\n}
88
- end
89
-
90
- body
91
- end
92
-
93
- # @return [String]
94
- def bootstrap_directory
95
- "/etc/chef"
96
- end
97
-
98
- # @return [String]
99
- def chef_run
100
- "chef-client -j #{bootstrap_directory}/first-boot.json -E #{environment}"
101
- end
102
-
103
- # @return [String]
104
- def default_template
105
- templates_path.join('unix_omnibus.erb').to_s
106
- end
107
- end
108
- end