【发布时间】:2015-12-25 01:09:05
【问题描述】:
运行木偶 3.8
我有两个定义:
define desktop::vinstall () {
package { $title:
ensure => installed,
allow_virtual => true,
configfiles => keep,
}
}
和
define desktop::vinstallwseeds () {
package { $title:
ensure => installed,
allow_virtual => true,
configfiles => keep,
require => File["/var/cache/debconf/pkg-${title}.seeds"],
responsefile => "/var/cache/debconf/pkg-${title}.seeds",
}
file { "/var/cache/debconf/pkg-${title}.seeds":
source => "puppet:///modules/desktop/pkg-${title}.seeds",
ensure => present,
}
}
希望将这些转换为带有可选布尔参数的定义语句,例如:
define desktop::vinstallopt ( $queryresponse = 'false', ) {
package { $title:
ensure => installed,
allow_virtual => true,
configfiles => keep,
if $queryresponse == 'true' {
require => File["/var/cache/debconf/pkg-${title}.seeds"],
responsefile => "/var/cache/debconf/pkg-${title}.seeds",
}
}
file { "/var/cache/debconf/pkg-${title}.seeds":
source => "puppet:///modules/desktop/pkg-${title}.seeds",
ensure => present,
}
}
然后在 init.pp 中用类似这样的语句实例化它:
@desktop::vinstallopt { 'gdebi': queryresponse => 'false', }
但是这样做会报错:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with argument error ArgumentError: Invalid resource type desktop::vinstallopt at /etc/puppet/modules/desktop/manifests/init.pp:40 on node machine.prvt.net
其中第 40 行具有上述语法。我是木偶的新手,所以如果这是一个简单的语法问题,我深表歉意。我试图从 PuppetLabs 文档和其他 puppet 用户那里找到一种方法来完成这项工作,但到目前为止没有运气。
【问题讨论】:
标签: puppet