Added support for env.config.chef.node_name when using ChefServer.
This commit is contained in:
parent
de4442fc77
commit
d87030a798
|
@ -11,6 +11,7 @@ module Vagrant
|
||||||
attr_accessor :validation_key_path
|
attr_accessor :validation_key_path
|
||||||
attr_accessor :validation_client_name
|
attr_accessor :validation_client_name
|
||||||
attr_accessor :client_key_path
|
attr_accessor :client_key_path
|
||||||
|
attr_accessor :node_name
|
||||||
|
|
||||||
# Chef solo specific config
|
# Chef solo specific config
|
||||||
attr_accessor :cookbooks_path
|
attr_accessor :cookbooks_path
|
||||||
|
@ -22,6 +23,7 @@ module Vagrant
|
||||||
def initialize
|
def initialize
|
||||||
@validation_client_name = "chef-validator"
|
@validation_client_name = "chef-validator"
|
||||||
@client_key_path = "/etc/chef/client.pem"
|
@client_key_path = "/etc/chef/client.pem"
|
||||||
|
@node_name = "client"
|
||||||
|
|
||||||
@cookbooks_path = "cookbooks"
|
@cookbooks_path = "cookbooks"
|
||||||
@provisioning_path = "/tmp/vagrant-chef"
|
@provisioning_path = "/tmp/vagrant-chef"
|
||||||
|
@ -99,4 +101,4 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -64,7 +64,7 @@ solo
|
||||||
def run_chef_client
|
def run_chef_client
|
||||||
logger.info "Running chef-client..."
|
logger.info "Running chef-client..."
|
||||||
env.ssh.execute do |ssh|
|
env.ssh.execute do |ssh|
|
||||||
ssh.exec!("cd #{env.config.chef.provisioning_path} && sudo chef-client -c client.rb -j dna.json") do |channel, data, stream|
|
ssh.exec!("cd #{env.config.chef.provisioning_path} && sudo chef-client -c client.rb -j dna.json -N #{env.config.chef.node_name}") do |channel, data, stream|
|
||||||
# TODO: Very verbose. It would be easier to save the data and only show it during
|
# TODO: Very verbose. It would be easier to save the data and only show it during
|
||||||
# an error, or when verbosity level is set high
|
# an error, or when verbosity level is set high
|
||||||
logger.info("#{stream}: #{data}")
|
logger.info("#{stream}: #{data}")
|
||||||
|
@ -81,4 +81,4 @@ solo
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,6 +51,7 @@ class Test::Unit::TestCase
|
||||||
config.chef.chef_server_url = "http://localhost:4000"
|
config.chef.chef_server_url = "http://localhost:4000"
|
||||||
config.chef.validation_key_path = "validation.pem"
|
config.chef.validation_key_path = "validation.pem"
|
||||||
config.chef.client_key_path = "/zoo/foo/bar.pem"
|
config.chef.client_key_path = "/zoo/foo/bar.pem"
|
||||||
|
config.chef.node_name = "baz"
|
||||||
config.chef.cookbooks_path = "cookbooks"
|
config.chef.cookbooks_path = "cookbooks"
|
||||||
config.chef.provisioning_path = "/tmp/vagrant-chef"
|
config.chef.provisioning_path = "/tmp/vagrant-chef"
|
||||||
config.chef.json = {
|
config.chef.json = {
|
||||||
|
|
|
@ -179,7 +179,7 @@ config
|
||||||
context "running chef client" do
|
context "running chef client" do
|
||||||
should "cd into the provisioning directory and run chef client" do
|
should "cd into the provisioning directory and run chef client" do
|
||||||
ssh = mock("ssh")
|
ssh = mock("ssh")
|
||||||
ssh.expects(:exec!).with("cd #{@env.config.chef.provisioning_path} && sudo chef-client -c client.rb -j dna.json").once
|
ssh.expects(:exec!).with("cd #{@env.config.chef.provisioning_path} && sudo chef-client -c client.rb -j dna.json -N #{@env.config.chef.node_name}").once
|
||||||
@env.ssh.expects(:execute).yields(ssh)
|
@env.ssh.expects(:execute).yields(ssh)
|
||||||
@action.run_chef_client
|
@action.run_chef_client
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue