【问题标题】:Install .NET Framework + Upgrade Powershell using Chef?使用 Chef 安装 .NET Framework + 升级 Powershell?
【发布时间】:2016-08-25 17:43:31
【问题描述】:

正如你们中的一些人所看到的,我是 Chef 的新手,似乎有太多东西要学,这让我很头疼:(...

我在早期测试中遇到的一件事是,我发现的一些示例配方会失败,因为我使用 Win2K8 作为节点,并且使用的是 Powershell V2 而不是 Powershell V3。

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

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

我环顾四周,找到了一本 dotnetframework 食谱,并将其添加到我的 WORKSTATION 中。

我也发现了这个:

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

这似乎是一种与使用 dotnetframework 食谱不同的方法?

我想我对这一切感到困惑?这两种方法(使用 dotnetframework 食谱与上面链接中的方法)都“ok”吗?

另外,如果我想做前者,我该怎么做呢?我需要在我的 recipes/default.rb 中添加什么?

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

很抱歉所有问题(希望我不会因为这些问题而被激怒)。我会继续努力,但希望大家能帮忙指明方向!

提前致谢, 吉姆

【问题讨论】:

  • supermarket.chef.io 上的 powershell cookbook(所有社区食谱都在其中)可以处理所有这些问题。如果您想编写自己的代码来学习,请从比 .Net 和 powershell 更简单的东西开始(例如 firefox)。如果您想获得正确的文档,请参阅 github 上的 README,因为 supemarket 似乎实际上在格式上有一个小错误。

标签: powershell chef-infra chef-recipe


【解决方案1】:

您可以使用 windows_package 命令稍微不同地执行此操作(并且不必依赖文件下载来确定是否在盒子上安装了某些东西),但是您将依赖于 Windows 食谱。这将在下载 Chef Development Kit 并使用后起作用:

chef-apply install_powershell_4_0.rb

这也通过 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 文件:

#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

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

$psversiontable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2011-07-31
    • 2022-08-12
    • 1970-01-01
    相关资源
    最近更新 更多