CHEF - 当前目录位于存储库路径之外时,尝试使用相对路径'foo

时间:2015-07-23 02:44:35

标签: chef knife

当我尝试运行knife upload rolesknife upload /roles时,会出现以下错误

cd ~/my-chef-repo
knife upload roles -n -V
INFO: Using configuration from /Users/sowen/.chef/knife.rb
ERROR: Attempt to use relative path 'roles' when current directory is outside the repository path

我的knife.rb文件

cookbook_path            "/Users/me/my-chef-repo"

3 个答案:

答案 0 :(得分:3)

如果没有在knife.rb

中正确设置cookbook_path,就会发生这种情况

执行以下操作:

确保你的knife.rb中有一个斜杠

cookbook_path            "/Users/me/my-chef-repo/"

或者从命令行传递repo路径

knife upload roles -n -VV --chef-repo-path /Users/me/my-chef-repo/

答案 1 :(得分:0)

我发现,那把刀可以区分大小写:

https://tickets.opscode.com/browse/CHEF-4663

或"斜杠" -sensitive:

基本上,我的knife.rb中有一个斜杠(\),但是我的Windows系统正在生成其他斜杠(/),并且它们不匹配。

答案 2 :(得分:0)

对我来说,我将cookbook文件夹放置在〜/ .chef文件夹内,这是导致问题的原因。我通过将Cookbook文件夹上移一个目录来解决此问题,并更新了〜/ .chef / knife.rb中的路径。

def try_call_module():
    output = subprocess.Popen(['module', '--version'], stdout=subprocess.PIPE).communicate()[0]
    # Check version number is greater than 2
    if int(output[0]) >= 2:
        return True
    return False