Você quer dizer "testar se um recurso já está definido "? Se você definir um recurso (por exemplo, file {}
, etc), o Puppet criará o que você está descrevendo, se ainda não existir (supondo que você tenha passado ensure => present
, é claro).
Para verificar se um recurso já está definido no catálogo ou não:
mark-draytons-macbook:~ mark$ cat test.pp
file { "/tmp/foo": ensure => present }
if defined(File["/tmp/foo"]) {
alert("/tmp/foo is defined")
} else {
alert("/tmp/foo is not defined")
}
if defined(File["/tmp/bar"]) {
alert("/tmp/bar is defined")
} else {
alert("/tmp/bar is not defined")
}
mark-draytons-macbook:~ mark$ puppet test.pp
alert: Scope(Class[main]): /tmp/foo is defined
alert: Scope(Class[main]): /tmp/bar is not defined
notice: //File[/tmp/foo]/ensure: created
Observação: defined()
é dependente da ordem de análise .