该场景是在 Windows RDP 服务器上使用 Puppet 安装 Windows 应用程序。我使用 Puppet 安装应用程序没有问题,但根据最佳实践,您应该install
在执行此操作时处于模式,然后切换回execute
模式。
我可以执行以下操作并且它有效:
package {'Adobe AIR':
ensure => '15.0.0.356',
source => '\\myserver\adobeair.exe',
install_options => ['-silent', '-eulaAccepted'],
require => Exec['installmode'],
before => Exec['executemode'],
}
exec {'installmode':
command => 'c:/Windows/System32/change.exe user /install',
}
exec {'executemode':
command => 'c:/Windows/System32/change.exe user /execute',
}
我在这里试图解决的问题是,每次 Puppet 运行时,它都会认为已经完成了某件事,因为Exec
每次运行这两项操作都不管应用程序是否真的安装。
我想停止执行,或者找到更好的方法在和模式Exec
之间切换。install
execute
答案1
我创建PUP-3979为你。
当服务器配置了远程桌面服务(无论是本地执行安装还是从远程会话执行安装)时,需要运行此程序:
为了确保应用程序正确安装以在多用户环境中工作,您必须在 RD 会话主机服务器上安装应用程序之前,将 RD 会话主机服务器置于特殊安装模式。此特殊安装模式可确保在安装过程中创建支持在多用户环境中运行应用程序所需的正确注册表项和 .ini 文件。
来自 TechNet:在 RD 会话主机服务器上安装程序