[chef] Re: Running knife bootstrap programatically


Chronological Thread 
  • From: Haim Ashkenazi < >
  • To:
  • Subject: [chef] Re: Running knife bootstrap programatically
  • Date: Wed, 3 Aug 2011 14:08:47 +0300

Ok, solved! thanks to the great guys in the IRC channel. Here's a way to run it (if someone is interested):

require 'rubygems'
require "chef"
require "chef/knife/core/bootstrap_context"
require 'chef/knife'
require 'chef/knife/ssh'
require 'net/ssh'
require 'net/ssh/multi'
require 'chef/knife/bootstrap'

Chef::Config.from_file(File.expand_path('~/.chef/knife.rb'))
kb = Chef::Knife::Bootstrap.new
kb.name_args = "some.host"
kb.config[:ssh_user] = "ubuntu"
kb.config[:run_list] = "role[test]"
kb.config[:use_sudo] = true
kb.run

Bye

On Wed, Aug 3, 2011 at 1:05 PM, Haim Ashkenazi < "> > wrote:
Hi

The following code also raised the same error as in the original message:

require 'rubygems'
require 'chef/knife/bootstrap'

kb = Chef::Knife::Bootstrap.new
kb.config[:ssh_user] = "ubuntu"
kb.config[:run_list] = "role[test]"
kb.config[:use_sudo] = true
kb.run

:(

Bye

On Wed, Aug 3, 2011 at 12:31 PM, Haim Ashkenazi < " target="_blank"> > wrote:
Hi

I was wondering if there's a way to run knife bootstrap not as a command, but as API call? (Sorry if it's already been answered but it's really hard to search the mailing list).

I tried using something simple like (ignore the redefinition of ARGV :):

require 'chef/knife/bootstrap'
ARGV = ["some.host", "-x", "ubuntu", "-r", "role[test]", "--sudo"]
Chef::Knife::Bootstrap.new.run

Running this I got an error:
/Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/core/ui.rb:96: warning: toplevel constant Config referenced by Chef::Config
/Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/core/ui.rb:96:in `color?': undefined method `[]' for Config:Module (NoMethodError)
from /Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/core/ui.rb:85:in `color'
from /Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/core/ui.rb:76:in `error'
from /Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/bootstrap.rb:158:in `validate_name_args!'
from /Users/haim/.rvm/gems/ /gems/chef-0.10.2/lib/chef/knife/bootstrap.rb:137:in `run'
from test.rb:4

Is there any easy way to run it? 

Thanks in advance 
--
Haim



--
Haim



--
Haim



Archive powered by MHonArc 2.6.16.

§