我正在使用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['..']
无效。
答案 0 :(得分:5)
您应该在存档任务中添加require
,以便您的文件任务类似于
file { 'domain.xml':
ensure => file,
path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml',
source => 'puppet:///modules/glassfish/domain.xml',
require => Archive['/tmp/glassfish-4.1.1.zip'],
}
以便在归档任务之后完成domain.xml文件的副本。