我一直在使用 opscode chef 进行远程配置,我想在本地测试我的 chef 脚本,因此我开始着手设置一个 vagrant box。但是,我似乎无法让我的 vagrant box 注册。我收到如下列出的错误:https://gist.github.com/2961246
我的 Vagrantfile 如下所示:
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
config.vm.forward_port 80, 8080
config.vm.provision :chef_client do |chef|
chef.chef_server_url = "https://api.opscode.com/organizations/pinedesk"
chef.validation_key_path = ".chef/pinedesk-validator.pem"
chef.validation_client_name = "pinedesk-validator"
chef.node_name = "vagrant"
chef.provisioning_path = "/etc/chef"
chef.log_level = :debug
chef.add_role "base"
end
end
我的 .chef 文件夹中有这些:
dsummersl.pem
knife.rb
pinedesk-validator.pem
vagrant.pem
Chef 似乎注册了一个新客户端,然后在创建节点时收到 HTTP 401。有什么提示吗?
答案1
看来您正在尝试使用已经存在的名称来注册新客户。
如果你运行,knife client list
你会看到一个与你的 vagrant vm 主机名匹配的客户端名称
假设主机名是“vagrant”,您可以运行以下命令:
for foo in client node ; do knife $foo delete vagrant -y ; done
然后运行vagrant up
或vagrant provision
你可能希望在每次vagrant destroy