由 puppet master 控制执行 exec 或包类型
在 linux 上安装包 X,除非 X 已经安装:
package { "X": }
&&
在 Windows 上安装可执行文件 Y,除非 Y 已经安装:
exec { "packageYInstalled":
command => "packageY /S",
require => "C:\\temp\\packageY",
unless => "packageYinstalled";
}
puppet master 无法控制文件类型的执行,因为除非 puppet 文件类型中不允许属性
file { "packageYCopiedToTempFolder": }
path => "C:\\temp\\packageY",
source => "puppet:///files/packageY";
}
从共享(samba)文件夹执行安装程序而不是先将其复制到代理系统不能解决问题
- Puppet 在多个外部系统上运行
- 在每次 puppet 运行期间,可执行文件、zip 和/或 tar.gz 包都被复制到远程系统,而这些文件在安装后被删除并且已经安装了软件