如果不存在,请使用Vagrant / Puppet下载文件

时间:2014-02-02 05:04:21

标签: vagrant puppet

在开发我的流浪汉/木偶剧本时,我做了很多流浪汉的破坏和流浪,以确保配置工作从一个干净的石板。

出于这个原因,为了带宽和时间,我在文件部分放置了我需要安装的大文件(例如,不在公共存储库中的罐子),并使用puppet将它们从那里复制到guest。

这对我来说非常棒,但是对于其他人来说这是一个很大的障碍,因为我有一个自述文件,其中包含大量的依赖项,需要在开始配置之前下载到主机上的某些目录。

一旦我确定我的脚本已准备就绪,我可以将它们更改为指向托管文件的内部服务器,但是,我不喜欢最后一刻更改脚本。

是否可以让vagrant / puppet检查主机上是否存在本地文件,是否从指定的URL下载文件?

1 个答案:

答案 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只会在文件不存在的情况下触发。添加一些文件版本并将所需的版本传递给命令,轻松删除新版本。