forked from tinoschroeter/raspbian_bootstrap
-
Notifications
You must be signed in to change notification settings - Fork 9
/
raspbian_bootstrap.erb
73 lines (58 loc) · 1.63 KB
/
raspbian_bootstrap.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
sh -c '
<%= "export https_proxy=\"#{knife_config[:bootstrap_proxy]}\"" if knife_config[:bootstrap_proxy] -%>
<% case ENV['OPT'] %>
<% when "build" %>
<%= File.read('ruby-omnibus-build.sh') %>
<% else %>
<%= File.read('ruby-omnibus-prebuilt.sh') %>
<% end %>
PATH=/opt/chef/bin:$PATH
export PATH
# Add Chef configurations
mkdir -p /etc/chef
if [ ! -f /usr/local/bin/chef-client ]; then
ln -s /opt/chef/bin/chef-client /usr/local/bin/
fi
<% if client_pem -%>
cat > /etc/chef/client.pem <<EOP
<%= ::File.read(::File.expand_path(client_pem)) %>
EOP
chmod 0600 /etc/chef/client.pem
<% end -%>
<% if validation_key -%>
cat > /etc/chef/validation.pem <<EOP
<%= validation_key %>
EOP
chmod 0600 /etc/chef/validation.pem
<% end -%>
<% if encrypted_data_bag_secret -%>
cat > /etc/chef/encrypted_data_bag_secret <<EOP
<%= encrypted_data_bag_secret %>
EOP
chmod 0600 /etc/chef/encrypted_data_bag_secret
<% end -%>
<% unless trusted_certs.empty? -%>
mkdir -p /etc/chef/trusted_certs
<%= trusted_certs %>
<% end -%>
<%# Generate Ohai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
mkdir -p /etc/chef/ohai/hints
<% @chef_config[:knife][:hints].each do |name, hash| -%>
cat > /etc/chef/ohai/hints/<%= name %>.json <<EOP
<%= Chef::JSONCompat.to_json(hash) %>
EOP
<% end -%>
<% end -%>
cat > /etc/chef/client.rb <<EOP
<%= config_content %>
EOP
cat > /etc/chef/first-boot.json <<EOP
<%= Chef::JSONCompat.to_json(first_boot) %>
EOP
<% unless client_d.empty? -%>
mkdir -p /etc/chef/client.d
<%= client_d %>
<% end -%>
echo "Starting the first Chef Client run..."
<%= start_chef %>'