【发布时间】:2016-05-20 11:10:50
【问题描述】:
我正在使用 Puppet 进行 Vagrant 配置。我使用https://forge.puppet.com/puppet/archive/types 的存档模块来下载和提取 glassfish,如下所示:
archive { '/tmp/glassfish-4.1.1.zip':
ensure => present,
extract => true,
extract_path => '/opt/',
source => 'http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip',
cleanup => true,
creates => '/opt/glassfish4',
}
应用该资源后,我想像这样将文件移动到新创建的 glassfish 目录中
file { 'domain.xml':
ensure => file,
path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml',
source => 'puppet:///modules/glassfish/domain.xml',
}
我想在文件移动资源中要求提取已经完成,因为提取不是创建文件,而是创建目录。类似的东西
require => FILE['..']
不工作。
【问题讨论】:
-
如果您可以使用
File资源来实现,则语法为require => File['/full/path/to/managed/file']。请注意大小写,并且您必须通过资源名称或标题来引用资源。此外,这仅适用于实际受 Puppet 管理的资源。这实际上可能是这种情况,但由于很难确定,因此正如 Frédéric Henri 建议的那样,与Archive资源建立关系是一种更好的方法。