我创建了一个类型和提供程序来检查程序是否已安装,如果不是,则运行msiexec。运行代理程序时的输出显示程序为“ensure = absent”,但它不会启动msi安装。任何人都可以看到我的代码有什么问题吗?
事件查看器未显示正在运行的msi安装
我的自定义类型:
Puppet::Type.newtype(:custom) do
@doc = "Custom type"
ensurable
newparam(:name) do
desc "name of program."
end
newparam(:source) do
desc "The full path to the file."
end
end
我的提供者:
Puppet::Type.type(:custom).provide(:win) do
desc "."
def create
exec "msiexec.exe /i " + @resource[:source] + " /quiet"
end
def destroy
end
def exists?
begin
exec "puppet resource package " + @resource[:name]
rescue Puppet::ExecutionFailure => e
false
end
end
end
我的清单
class mod {
custom { 'AppNameHere':
ensure => present,
source => 'Q:\\app.msi',
}
}
答案 0 :(得分:0)
在Windows上使用Puppet,没有shell。您需要为所有内容提供完整路径(绝对路径)。