在开发我的流浪汉/木偶剧本时,我做了很多流浪汉的破坏和流浪,以确保配置工作从一个干净的石板。
出于这个原因,为了带宽和时间,我在文件部分放置了我需要安装的大文件(例如,不在公共存储库中的罐子),并使用puppet将它们从那里复制到guest。
这对我来说非常棒,但是对于其他人来说这是一个很大的障碍,因为我有一个自述文件,其中包含大量的依赖项,需要在开始配置之前下载到主机上的某些目录。
一旦我确定我的脚本已准备就绪,我可以将它们更改为指向托管文件的内部服务器,但是,我不喜欢最后一刻更改脚本。
是否可以让vagrant / puppet检查主机上是否存在本地文件,是否从指定的URL下载文件?
答案 0 :(得分:4)
在调用wget的exec资源上使用creates参数。
exec {'download-tar-file':
command => 'wget -O /tmp/tar.file http://somewhere.com/tar.file',
creates => '/tmp/tar.file',
}
有了这个,exec只会在文件不存在的情况下触发。添加一些文件版本并将所需的版本传递给命令,轻松删除新版本。