【问题标题】:Puppet file resource require archive resourcePuppet 文件资源需要存档资源
【发布时间】: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 资源建立关系是一种更好的方法。

标签: vagrant puppet


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多