module ChefProvisioner::Bootstrap
Help render the bootstrap script
Constants
- BOOTSTRAP_TEMPLATE
Public Instance Methods
generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false, force: false, retries: 1, profile: false, chef_cmd: nil)
click to toggle source
# File lib/chef-provisioner/bootstrap.rb, line 12 def generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false, force: false, retries: 1, profile: false, chef_cmd: nil) node_name = node_name.strip server = ChefAPI.endpoint if server.empty? run_list = first_boot[:run_list] if first_boot[:run_list] # FIXME - symbolize keys instead of the dup here run_list = first_boot['run_list'] if first_boot['run_list'] first_boot.merge!( fqdn: node_name, chef_client: {config: {chef_server_url: server}} ) client_pem = get_client_key(node_name, environment, run_list, force, retries) 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, chef_cmd: chef_cmd, profile: profile) end
Private Instance Methods
get_client_key(node_name, environment, run_list, force, retries)
click to toggle source
# File lib/chef-provisioner/bootstrap.rb, line 28 def get_client_key(node_name, environment, run_list, force, retries) client_pem = '' attempts = 0 while client_pem.empty? && attempts < retries client_pem = ChefProvisioner::Chef.init_server(node_name, environment: environment, run_list: (run_list || []), force: force) attempts += 1 sleep(5) end client_pem end
render(**kwargs)
click to toggle source
# File lib/chef-provisioner/bootstrap.rb, line 24 def render(**kwargs) ERB.new(BOOTSTRAP_TEMPLATE).result(OpenStruct.new(**kwargs).instance_eval { binding }) end