【发布时间】:2014-01-22 01:53:09
【问题描述】:
当我运行vagrant up 时,我正在尝试将Fnichol's Chef User 配方与 Vagrant 一起使用以自动创建特定的用户帐户。因为我为我从事的几乎每个项目都设置了这个用户,所以我想将用户数据存储在我从 JSON 文件加载的 data bag 中,以便在多个项目中重复使用。
这是我的Vagrantfile 目前的样子:http://pastebin.com/b0riZZCz
失败并出现错误:
[2014-01-20T16:09:39+00:00] ERROR: could not find recipe ben for cookbook user
我创建了一个名为“users”的data bag,并在该数据包中创建了一个名为“ben”的data bag item,来自以下 JSON:
{
"id": "ben",
"comment": "Ben Harold",
"groups": ["admin", "www-data"],
"ssh_keys": ["...longtextstring..."],
"ssh_keygen": false
}
我正在尝试按照http://fnichol.github.io/chef-user/ 的使用说明来:
- 导入 Chef Users 配方
- 告诉厨师用户配方从数据包
users创建用户ben
在我看来,Vagrantfile 中的 Chef 配置语法与大多数可用文档中提供的语法有很大不同。例如:
“只需在您的
run_list和user_account中包含recipe[user]资源将可用。”
我对@987654339@ 的定义以及recipe[user] 语法感到困惑。从Vagrant documentation看来,我的run_list就是这个区块的一切:
config.vm.provision :chef_solo do |chef|
chef.add_recipe "apt"
...etc...
end
但是,我已经在该块中定义了 also found references 到 chef.run_list,尽管我无法找到任何专门提到 chef.run_list 的文档。
问题 1
run_list 只是 config.vm.provision :chef_solo do |chef| 块中的代码,还是别的什么?
问题 2
chef.run_list 的文档在哪里?我不是在 Chef 网站上寻找文档。语法对我来说似乎完全不同。
我已经搞砸了几个小时。我尝试了一堆不起作用的东西。我能够导入Chef User 配方,但我无法弄清楚如何告诉厨师针对data bag item“本”运行user 配方。
问题 3
如何让 Chef 使用 data bag item“ben”运行 user 配方?还是我做错了?
【问题讨论】:
标签: ruby json chef-infra vagrant