为什么不能从文件“刀数据包”find厨师服务器上现有的JSON文件?

概要:

我遇到了一个问题:“子数据包来自文件”,刀不能识别从远程git仓库中取出的.json数据包文件。

背景:

我目前正尝试从厨师独奏使用过渡到厨师服务器,同时使用远程git仓库中的食谱,数据包和其他厨师信息。

我目前已经拉下了我们的git repo的副本,并在knife.rb中设置了cookbookpath和数据包path。 我也装了食谱,做了调整等等

细节:

当试图加载我们的.json数据包时,通过执行“从FOLDER FILE文件添加刀子数据包”,它看起来像它的工作,直到我做“刀数据包列表”,它出现空白。 所以我决定尝试在最后添加编辑选项来查看正在加载的内容,如果是的话。 这是我得到的错误:

knife data bag from file local_settings test.json -e nano ERROR: Could not find or open file 'test.json' in current directory or in 'data_bags/local_settings/test.json' 

数据包文件确实存在于正确的位置,在一个经过testing的工作json文件中。 我有时也得到一个错误,说“无法打开数据包”local_settings“。

我显然希望将数据包path保存在适当的git repo文件夹中,以便能够跟踪更集中的位置(我们的git repo,而不是厨师服务器)中的更改。

任何解决scheme,build议或指针在正确的方向表示赞赏。

我不认为knife data bag from file使用-e nano选项knife data bag from file是有效的(尽pipe命令行帮助意味着否则),但应该忽略它。 那个错误意味着刀找不到你指定的json文件。 当你说这个物品在适当的位置时,它到底在哪里? 请注意,刀将相对于你目前的目录,而不是你的厨师回购。

解决这个问题后,您将遇到另一个问题 – 您需要先创build数据包,然后才能向其中添加项目。 knife data bag list输出一旦创build就应该显示出来:

  $ knife data bag create local_settings Created data_bag[local_settings] $ knife data bag list local_settings 

“knife data bag”的文档可以在这里find: http : //wiki.opscode.com/display/chef/Managing+Data+Bags+With+Knife

我做knife data bag list ,它出现空白。

这意味着数据包local_settings尚未创build。

所以,它应该被创build:

 $> knife data bag create local_settings Created data_bag[local_settings] 

那么它应该出现在列表中,如果服务器的数据包:

 $> knife data bag list local_settings 

然后可以上传{{test.json}}数据包文件。

另外,这里有一些很好的解释: [CHEF wiki链接] 。