当我尝试运行knife upload roles
或knife 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"
答案 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