使用Azure设置主厨

时间:2014-09-26 00:33:16

标签: azure chef

我试图用Azure测试Chef。我已经安装了刀蔚蓝宝石并运行knife configure

之后我已经下载了我的发布设置文件并将其添加到了knife.rb中,如下所示:

knife[:azure_publish_settings_file] = "C:\chef\.chef\Visual Studio Ultimate com MSDN-Windows Azure MSDN - Visual Studio Ultimate-9-25-2014-credentials.publishsettings" 

然后我跑了:

knife azure image list 

我收到了这个错误:

ERROR: Unable to find file - Cef.chefVisual Studio Ultimate com MSDN-Windows Azure MSDN - Visual Studio Ultimate-9-25-2014-credentials.publishsettings

我遇到了这个错误。有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

在ruby中(与许多语言一样)\用于表示下一个字符。

您的日志非常清楚,它会搜索没有文件分隔符的文件。

3个解决方案:

  • 使用两次\\转义反斜杠,你的行变为knife[:azure_publish_settings_file] = "C:\\chef\\.chef\\Visual Studio Ultimate com MSDN-Windows Azure MSDN - Visual Studio Ultimate-9-25-2014-credentials.publishsettings"

  • 改为使用unix分隔符/,您的行变为knife[:azure_publish_settings_file] = "C:/chef/.chef/Visual Studio Ultimate com MSDN-Windows Azure MSDN - Visual Studio Ultimate-9-25-2014-credentials.publishsettings"

  • 使用单引号作为字符串以避免插值,反斜杠会失去其特殊含义。

我偏爱第二个。

正如mtm评论的那样,单引号在处理静态字符串时非常有用,而且它在ruby中是首选的样式。