chef-provisioner 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/chef-provisioner/bootstrap.rb +13 -2
- data/lib/chef-provisioner/chef.rb +4 -3
- data/lib/chef-provisioner/version.rb +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ade17022da3a8becf1b3138e2a5ea7ba531cd744
|
4
|
+
data.tar.gz: 86982d7f331dbaaff77ed1adcf800cee7a8d502a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac71c3996744f8d12bac476566719029e9e6e6a061bb2fcab8e22f604be47265a54eceb66fb8e12309b1cb1df71726ac7e95a3f622bf811ed8696989b9794441
|
7
|
+
data.tar.gz: 9fbc07de9aaca5d8a8a851976eb7de21cd5ac4c20cc01d9d6802e5b9d3e90008845324f8bce09d6c5e23792075ea2e5aab786e623b71bdd35ae881a5f59707a0
|
@@ -9,13 +9,13 @@ module ChefProvisioner
|
|
9
9
|
extend self
|
10
10
|
BOOTSTRAP_TEMPLATE = File.read(File.expand_path('../templates/bootstrap.erb', __FILE__)).freeze
|
11
11
|
|
12
|
-
def generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false)
|
12
|
+
def generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false, force: false, retries: 0)
|
13
13
|
node_name = node_name.strip
|
14
14
|
server = ChefAPI.endpoint if server.empty?
|
15
15
|
run_list = first_boot[:run_list] if first_boot[:run_list] # FIXME - symbolize keys instead of the dup here
|
16
16
|
run_list = first_boot['run_list'] if first_boot['run_list']
|
17
|
-
client_pem = ChefProvisioner::Chef.init_server(node_name, run_list: (run_list || []))
|
18
17
|
first_boot.merge!( fqdn: node_name, chef_client: {config: {chef_server_url: server}} )
|
18
|
+
client_pem = get_client_key(node_name, run_list, force, retries)
|
19
19
|
render(node_name: node_name, client_pem: client_pem, chef_version: chef_version, environment: environment, server: server, first_boot: first_boot, reinstall: reinstall, audit: audit)
|
20
20
|
end
|
21
21
|
|
@@ -24,5 +24,16 @@ module ChefProvisioner
|
|
24
24
|
def render(**kwargs)
|
25
25
|
ERB.new(BOOTSTRAP_TEMPLATE).result(OpenStruct.new(**kwargs).instance_eval { binding })
|
26
26
|
end
|
27
|
+
|
28
|
+
def get_client_key(node_name, run_list, force, retries)
|
29
|
+
client_pem = ''
|
30
|
+
attempts = 0
|
31
|
+
while client_pem.empty? && attempts < retries
|
32
|
+
client_pem = ChefProvisioner::Chef.init_server(node_name, run_list: (run_list || []), force: force)
|
33
|
+
attempts += 1
|
34
|
+
sleep(5)
|
35
|
+
end
|
36
|
+
client_pem
|
37
|
+
end
|
27
38
|
end
|
28
39
|
end
|
@@ -16,9 +16,10 @@ module ChefProvisioner
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def init_server(name, attributes:{}, run_list:[])
|
20
|
-
|
21
|
-
|
19
|
+
def init_server(name, attributes:{}, run_list:[], force: false)
|
20
|
+
nuke(name) if force
|
21
|
+
key = create_client(name) || ''
|
22
|
+
create_node(name, attributes: attributes, run_list: run_list, force: force) unless key.empty?
|
22
23
|
key
|
23
24
|
end
|
24
25
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dale Hamel
|
@@ -112,9 +112,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
requirements: []
|
114
114
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.4.
|
115
|
+
rubygems_version: 2.4.8
|
116
116
|
signing_key:
|
117
117
|
specification_version: 4
|
118
118
|
summary: Bootstrap against a chef-zero server
|
119
119
|
test_files: []
|
120
|
-
has_rdoc:
|