我一直在试图找出一种方法来测试资源是否已经在另一个文件中定义,如果没有创建它?一个简单的例子:
if File[$local_container] {
alert("Testing - It existed $local_container")
} else {
file{ "$local_container":
ensure => directory,
}
}
然而 -File[$local_container]
似乎总是评估为真。有没有办法做到这一点?
您的意思是“测试资源是否已定义”?如果您定义了一个资源(即
file {}
等),Puppet 将创建您所描述的内容(如果不存在)(ensure => present
当然,假设您通过了)。检查目录中是否已定义资源:
注意:
defined()
取决于解析顺序。更好的方法是使用 puppetlabs stdlib中的 ensure_resource 函数
它采用资源类型、标题和将资源描述为参数的属性列表。
假设您有测试用例,仅在资源尚不存在时才创建资源-
或者....
并且请留意那些引号和花括号....
简单地,