Class: Chef::Knife::Bootstrap::ClientBuilder
- Inherits:
-
Object
- Object
- Chef::Knife::Bootstrap::ClientBuilder
- Defined in:
- lib/chef/knife/bootstrap/client_builder.rb
Instance Attribute Summary collapse
-
#chef_config ⇒ Hash
Chef config object.
-
#client ⇒ Chef::ApiClient
readonly
Client saved on run.
-
#knife_config ⇒ Hash
Knife merged config, typically @config.
-
#ui ⇒ Chef::Knife::UI
Ui object for output.
Instance Method Summary collapse
-
#client_path ⇒ String
Tempfile to use to write newly created client credentials to.
-
#initialize(knife_config: {}, chef_config: {}, ui: nil) ⇒ ClientBuilder
constructor
A new instance of ClientBuilder.
-
#run ⇒ Object
Main entry.
Constructor Details
#initialize(knife_config: {}, chef_config: {}, ui: nil) ⇒ ClientBuilder
Returns a new instance of ClientBuilder.
43 44 45 46 47 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 43 def initialize(knife_config: {}, chef_config: {}, ui: nil) @knife_config = knife_config @chef_config = chef_config @ui = ui end |
Instance Attribute Details
#chef_config ⇒ Hash
Returns chef config object.
34 35 36 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 34 def chef_config @chef_config end |
#client ⇒ Chef::ApiClient (readonly)
Returns client saved on run.
38 39 40 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 38 def client @client end |
#knife_config ⇒ Hash
Returns knife merged config, typically @config.
32 33 34 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 32 def knife_config @knife_config end |
#ui ⇒ Chef::Knife::UI
Returns ui object for output.
36 37 38 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 36 def ui @ui end |
Instance Method Details
#client_path ⇒ String
Tempfile to use to write newly created client credentials to.
This method is public so that the knife bootstrapper can read then and pass the value into the handler for chef vault which needs the client cert we create here.
We hang onto the tmpdir as an ivar as well so that it will not get GC’d and removed
71 72 73 74 75 76 77 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 71 def client_path @client_path ||= begin @tmpdir = Dir.mktmpdir File.join(@tmpdir, "#{node_name}.pem") end end |
#run ⇒ Object
Main entry. Prompt the user to clean up any old client or node objects. Then create the new client, then create the new node.
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/chef/knife/bootstrap/client_builder.rb', line 51 def run sanity_check ui.info("Creating new client for #{node_name}") @client = create_client! ui.info("Creating new node for #{node_name}") create_node! end |