我有一个项目仓库,我想为我们的软件团队设置Vagrant。我有一个厨师服务器,我有点难以理解如何编写VagrantFile
以便软件团队的多个成员可以使用它...
场景1:每个用户都在chef-server上设置了用户......
所以在VagrantFile
..
config.vm.provision "chef_client" do |chef|
chef.chef_server_url = "https://my-chef-server/"
# best way to set this? pass it in as a variable? set it as an ENV variable?
chef.validation_client_name = "users-name"
# users can have their .pem files on their local machine...
chef.validation_key_path = "~/.chef/users-name.pem
end
场景2:为每个项目使用相同的用户名...
config.vm.provision "chef_client" do |chef|
chef.chef_server_url = "https://my-chef-server/"
chef.validation_client_name = "the-project-name"
# would this need to be committed to the project repo then?
chef.validation_key_path = ".chef/users-name.pem
end
我也读过有关knife.rb文件的内容,但听起来他们已经投入到了回购邮件中,这似乎是一种非常奇怪的方式。 A)仍然不支持多个用户和B)在回购中拥有这些验证密钥是否安全?我在谷歌上找不到这个问题的事实也让我相信我可能会遗漏一些明显的东西,所以任何方向都会受到赞赏。
答案 0 :(得分:2)
使用测试厨房。我知道它被称为TEST-kitchen,但你不需要测试来使用它。它将自动为您使用您当地的knife.rb文件,因此无需像回购邮件那样放置任何秘密。额外的奖金,您可以使用任何厨房插件进入云提供商,码头等。我知道Vagrant也支持许多这些选项,但我觉得厨房让它更清洁,更容易。
将您的用户和key_path放入环境变量中,并引用Vagrantfile中的那些变量。