2013-09-24 49 views
1

我使用廚師的windows cookbook配置一些windows服務器。這裏是配方:爲廚師配方提供用戶名和密碼

# Windows SDK for Windows 7 and .NET 4 - .NET Tools v4 
windows_package "Windows SDK for Windows 7 and .NET 4 - .NET Tools v4" do 
    source "\\\\MyServer\\MyDrive\\chef\\WinSDKNetFx40Tools_amd64\\WinSDK_nfx40tools_amd64.msi" 
    installer_type :msi 
    action :install 
end 

問題是,當我試圖訪問該UNC路徑時遇到權限錯誤。是否可以提供一個用戶名/密碼到windows_package,這樣我就可以告訴它誰來訪問共享了?我嘗試通過憑證管理器存儲憑據,但這不起作用。

回答

0

Windows不允許將憑據直接包含在UNC路徑中。因此,在通過UNC路徑訪問文件時,似乎沒有Chef支持進行身份驗證。

廚師的mount資源支持安裝遠程路徑。它允許在Windows上傳遞用戶名和密碼。因此,您可以在調用windows_package之前掛載UNC路徑,然後引用掛載的驅動器路徑而不是UNC路徑。

未測試例如:

mount "Z:" do 
    action :mount 
    device "\\\\MyServer\\MyDrive\\chef\\WinSDKNetFx40Tools_amd64\\" 
    username "whoever" 
    password "whatever" 
end 

windows_package "Windows SDK for Windows 7 and .NET 4 - .NET Tools v4" do 
    source "Z:\\WinSDK_nfx40tools_amd64.msi" 
    installer_type :msi 
    action :install 
end 

Mount資源文件: http://docs.opscode.com/resource_mount.html

Mount資源來源: https://github.com/opscode/chef/blob/807891d08dc5c436da237ec8a09639cea87a04fa/lib/chef/provider/mount/windows.rb#L60