使用knife引导现有Azure VM

时间:2014-06-13 16:15:34

标签: azure chef knife

我在Azure中创建了一个新的Windows 2012映像,并使用以下命令配置了WinRM:

winrm quickconfig -q
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
winrm set winrm/config @{MaxTimeoutms="1800000"}

我正试图用刀子引导vm:

knife bootstrap mymachine.cloudapp.net x username -P password "mymachine"

返回的错误是: 错误:网络错误:无法建立连接,因为目标计算机主动拒绝它。 - 连接(2)
检查刀具配置和网络设置

我在Azure中为以下(公共端口)启用了一个端点:

PowerShell 5985
SSH 22
WinRM 2985

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我已经解决了这个问题,这是由于我用来引导图像的命令。

knife bootstrap windows winrm grussblank.cloudapp.net -r "role[myrole]" -x username -P "password"

我错过了“windows winrm”,这可能很重要! :)

答案 1 :(得分:0)

出于测试和开发目的,您可以按照docs.opscode.com/plugin_knife_windows.html上的说明操作,并使用PowerShell或winrm配置工具在远程系统上设置以下其他winrm选项 - 这是一个PowerShell设置这些选项的示例:

si WSMan:\localhost\Service\AllowUnencrypted $true
si WSMan:\localhost\Service\Auth\Basic $true

对于生产(非内部开发/测试)使用,不应使用上述解决方案,在https://tickets.opscode.com/browse/KNIFE-298跟踪问题。

生产使用的解决方法是使用Azure的资源扩展功能,该功能支持Chef - 这里有关如何通过门户网站执行此操作的信息:

http://docs.opscode.com/azure_portal.html

这也可以通过cli中的Azure SDK工具进行配置,而不是通过Set-AzureVMExtension使用PowerShell进行门户配置。