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::Bootstrap.new.run
Running this I got an error:
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:96:
warning: toplevel constant Config referenced by Chef::Config
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:85:in
color' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:76:in
error’
from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/bootstrap.rb:158:in
validate_name_args!' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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
Hi
The following code also raised the same error as in the original message:
require 'rubygems'
require 'chef/knife/bootstrap'
kb = Chef::Bootstrap.new
kb.name_args = "ec2-107-20-48-203.compute-1.amazonaws.com"
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 haim.ashkenazi@gmail.comwrote:
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::Bootstrap.new.run
Running this I got an error:
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:96:
warning: toplevel constant Config referenced by Chef::Config
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:85:in
color' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:76:in
error'
from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/bootstrap.rb:158:in
validate_name_args!' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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
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::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 haim.ashkenazi@gmail.comwrote:
Hi
The following code also raised the same error as in the original message:
require 'rubygems'
require 'chef/knife/bootstrap'
kb = Chef::Bootstrap.new
kb.name_args = "ec2-107-20-48-203.compute-1.amazonaws.com"
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 haim.ashkenazi@gmail.comwrote:
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::Bootstrap.new.run
Running this I got an error:
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:96:
warning: toplevel constant Config referenced by Chef::Config
/Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:85:in
color' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/core/ui.rb:76:in
error'
from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/gems/chef-0.10.2/lib/chef/knife/bootstrap.rb:158:in
validate_name_args!' from /Users/haim/.rvm/gems/ruby-1.8.7-p352@chef_010/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