Puppet 文件资源需要存档资源

Puppet file resource require archive resource

我正在使用 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['..']

不工作。

您应该在存档任务上添加一个 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 文件的副本将在归档任务之后完成。