0

我正在尝试使用 Chef (chef-solo) 来管理我的 Windows Server 2008 R2 安装。Chef 提供windows_feature向 Windows 服务器添加角色/功能。默认情况下,windows_feature使用 DISM 安装角色。但是,据我所知,并非所有角色(例如,RDS-RD-Server)都可以通过 DISM 添加。

我大概可以使用Chef::Provider::WindowsFeature::ServerManagerCmd(在 Windows 食谱自述文件中标识:https ://github.com/opscode-cookbooks/windows ),但它看起来不像是一个真正的类(在那里浏览源代码)。此外,不推荐使用 servermanagercmd(尽管它会起作用)。

我什至不介意使用 powershell 块来添加角色,但我很难确保幂等性。看起来not_if命令 shell 是一些奇怪的 mingwin shell 而不是 CMD。

这是我尝试使用 powershell 的示例(不起作用):

powershell "install_rds_server" do
  code %Q{
    Import-Module Servermanager
    Add-WindowsFeature RDS-RD-Server
  }.strip
  not_if %Q{
    powershell "Import-Module Servermanager; $check = get-windowsfeature -name RDS-RD-Server; if ($check.Installed -ne \"True\") { exit 1 }"
  }.strip
end

添加此角色的推荐厨师方法是什么?

4

1 回答 1

1

你有没有尝试过:

windows_feature 'RDS-RD-Server' do
  provider Chef::Provider::WindowsFeature::ServerManagerCmd
end
于 2013-09-07T15:47:40.043 回答