使用Chef安装.NET Framework + Upgrade Powershell?

时间:2015-06-11 19:41:37

标签: powershell chef chef-recipe

正如你们中的一些人所看到的那样,我是一名厨师的新手,而且似乎有很多东西需要学习,这会伤害我的头脑:( ...

我在之前的测试中遇到的一件事是,我发现的一些示例配方会失败,因为我使用的是Win2K8作为NODE而且它有Powershell V2而不是Powershell V3。

因此,作为一种学习练习,我想尝试制作一本厨师食谱,将PS V3部署到Win2K8 R2。我认为我还需要安装.NET Framework 4.5.x才能安装PS V3 .msu(Windows6.1-KB2506143-x64.msu)。

那么,我该如何制作这样的食谱呢?

我一直在四处寻找并找到了一个dotnetframework食谱,我已将其添加到我的工作站。

我也发现了这个:

http://thinkofdata.blogspot.com/2014/07/installing-microsoft-net-framework.html

这似乎与使用dotnetframework cookbook不同?

我想我对这一切感到困惑?这两种方法(使用dotnetframework cookbook与上面链接中的那个)" ok"?

另外,如果我想做前者,我该怎么做呢?我需要将什么内容放入我的食谱/ default.rb?

最后,至少现在,在那之后执行.msu,进行PS V3升级怎么样?我该怎么做?

对不起所有的问题(希望我不会为他们带来太大的火焰)。我会继续大声疾呼,但希望你们都能指明方向!

提前致谢, 吉姆

1 个答案:

答案 0 :(得分:0)

您可以使用 windows_package 命令以稍微不同的方式执行此操作(并且不必依赖文件下载来确定是否在框中安装了某些内容),然后您会对Windows食谱有依赖性。这将在下载Chef Development Kit后使用:

lcd.message(("%s") % text[line])

这也是通过Windows Management Framework 4.0安装程序而不是PowerShell 3.0安装PowerShell 4.0(这就是安装WMF 4.0之前需要安装.NET framework 4.5的原因,因为否则PowerShell不会更新并保持在2.0)

服务器将在每次安装之间重启3次,因此您必须运行chef-apply命令才能继续(或实际安装Chef客户端)。

以下是 install_powershell_4_0.rb 文件:

chef-apply install_powershell_4_0.rb

然后您应该能够通过运行打开powershell命令提示符并将4.0视为 PSVersion

#Create installs directory to house downloads
directory 'c:/installs' do  
end

#Install Windows 7 and Windows Server 2008 R2 Service Pack 1 (KB976932)
remote_file "c:/installs/windows6.1-KB976932-X64.exe" do
  source "http://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X64.exe"
end

execute "c:/installs/windows6.1-KB976932-X64.exe /quiet" do
  action :nothing
  subscribes :run, resources(:remote_file => "c:/installs/windows6.1-KB976932-X64.exe")
end

#Install .NET 4.5
remote_file "c:/installs/dotNetFx45_Full_setup.exe" do
  source "http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe"
end

execute "c:/installs/dotNetFx45_Full_setup.exe /quiet" do
  action :nothing
  subscribes :run, resources(:remote_file => "c:/installs/dotNetFx45_Full_setup.exe")
end

#Install Windows Management Framework 4.0
remote_file "c:/installs/Windows6.1-KB2819745-x64-MultiPkg.msu" do
  source "http://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu"
end

execute "c:/installs/Windows6.1-KB2819745-x64-MultiPkg.msu /quiet" do
  action :nothing
  subscribes :run, resources(:remote_file => "c:/installs/Windows6.1-KB2819745-x64-MultiPkg.msu")
end