我尝试使用Chef自动安装/部署Windows产品的旧版本(特别是Sharepoint 2007),并且我几乎可以使用它,但是在安装过程中的某一时刻,安装程序会遇到“应用程序兼容性“问题,并弹出一个窗口,询问是否继续。如果我点击继续,安装继续到最后,并且它工作正常。重新启动(Windows)后,厨师食谱可以继续吗?
我发现了一种避免弹出窗口的方法,在Windows注册表中添加了“Appcompat”键,但如果我在厨师运行期间使用regedit添加密钥,我必须让Chef重新启动机器,然后以后继续进行其余的安装。
我试着像一个偏方:
reboot 'Restart Computer' do
action :nothing
end
powershell_script "install-Sharepoint2007-PREREQUISITES" do
code <<-EOH
regedit /s .\appcompat.reg
EOH
notifies :reboot_now, 'reboot[Restart Computer]', :immediately
end
powershell_script "install-Sharepoint2007" do
code <<-EOH
... the rest of the installation....
EOH
notifies :reboot_now, 'reboot[Restart Computer]', :immediately
end
但加工基本停止,设置注册表项后,重新启动后。
所以我想知道:有没有办法与厨师做到这一点?
感谢, 吉姆
编辑:
我觉得很难使用,因为缺乏的格式,所以我加什么我就此试图远远这里的信息只是意见。
基本上,到目前为止,我可以让主厨客户端在计划任务中运行的唯一方法是执行“一次”计划任务,设置任务运行的时间(到目前为止,我手动在我的schtasks命令中设置时间,只是为了测试)。
当我这样做,并将“/ RU”设置为SYSTEM时,我可以看到“chef-client -o”开始运行,它似乎完成了,但我看到Sharepoint安装程序日志中存在错误,特别是,似乎psconfig(Sharepoint命令行配置工具)中的某些步骤失败。
我想/猜测这些失败的原因是schtasks运行“chef-client -o”作为错误的Windows用户。
的事情是,如果我运行的第二部分菜谱的“厨师客户-o”,“手动”,也就是说,如果我登录到Windows机器和类型:
厨师的客户端安装-o -SHAREPOINT-PART2
然后,Sharepoint得到正确安装和配置。
因此,我现在卡住的东西是当我通过schtasks执行相同的“chef-client -o”命令时,我应该如何使用schtasks命令的“/ RU”和“/ RP” ?
感谢, 吉姆
编辑2:对不起,我忘了,包括在第一食谱/食谱的schtasks线,其中规定了任务的第二食谱/食谱厨师运行:
schtasks /create /tn Task_Name /tr "chef-client -o install-SHAREPOINT2007FULL-PART2" /sc once /RU "SYSTEM" /SD 06/27/2015 /ST 12:30
编辑3:我正在研究这个问题(通过“重新启动主厨”工作)的原始原因是,作为安装Sharepoint的一部分,我必须设置Windows注册表项,并且我认为必须重新启动使该注册表更改对其余的安装过程有效。
不过,我昨天做了一些测试,看来事实并非如此。我可以更改注册表,然后执行安装的其余部分,而不必在两者之间重新启动。
因此,底线是,我不需要毕竟在重新启动后进行处理。
但无论如何,希望这里的一些信息可能会在稍后帮助别人。我发现的主要原因是我无法使用带有/ Z/V1的ONSTART使其工作......我不得不使用ONCE,并且必须在我的Chef配方中有代码来计算日期和时间触发一次性任务。
RFC 62提出了厨师重新启动问题的解决方案。 https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md – spuder