【发布时间】:2018-06-20 06:02:05
【问题描述】:
我正在尝试在 Windows Server 2012 R2 节点上安装应用程序(Adobe Reader、Access Database 等),方法是使用 Chef 将已编译的 AutoIT 脚本连同相应的安装程序一起下载到节点上 - 我一直在使用这种方法因为并非所有 .exe 文件都有静默安装程序,并且在我(有限的)经验中,有时 GUI 安装程序可以让用户更好地控制应用程序,允许用户将应用程序设置为“手动检查更新”等。
我制作的已编译 AutoIT 脚本完美运行,但 Chef 出于某种原因不会运行这些 .exe 文件。
我用 Chef 尝试了以下方法(将应用程序安装程序和 AutoIT 编译脚本放在“C:\To_Install”中):
powershell_script 'Run AutoIT installer with PowerShell' do
code <<-EOH
C:\\To_Install\\#{fileName}
EOH
end
和
execute 'Run AutoIT installer with CMD' do
command "C:\\To_Install\\#{fileName}"
end
我确信我希望安装的所有应用程序都已正确传输到节点,并且 Chef 正在以所有其他方式与节点正确交互(设置时钟、更改用户权限和设置、创建目录等) )。
有什么我忽略的吗? Chef 是否通过与典型用户不同的进程运行 .exe 文件?
提前致谢!
【问题讨论】:
-
你得到什么错误?
-
我没有收到错误,而是 Chef 无限期地挂在 powershell_script/execute 指令上——一旦至少有一些证据表明 AutoIT 安装程序已经做了某事(我看到了“删除程序”列表,但该程序没有正常运行 - 相反它的行为就像它安装了一半)这让我认为 Chef 必须以不同于典型用户的方式运行一些 exe 文件。
-
你是如何运行 chef-client 的?如果它是通过正常 GUI 会话之外的某种方式,那么是的,那可能行不通。
-
我正在通过引导 Windows Server 2012 节点并运行 powershell_script/execute 行作为我在此节点上运行的配方的一部分来运行 Chef 客户端。关于为什么这不像在普通 GUI 会话中那样工作的任何指针?
-
你的意思是像
knife winrm bootstrap?
标签: windows chef-infra autoit