En marionnette, il est possible de réaliser des ressources virtuelles avec la fonction realize ou avec des collections.
J'aimerais savoir s'il est possible de réaliser des ressources uniquement avec la fonction realize. Par exemple simplifié, je voudrais que dans le manifeste suivant, nginx ne soit pas installé, sauf en incluant le module nginx_conf
, qui contient un realize implicite.
@package { 'nginx':
ensure => present,
}
class nginx_conf {
realize Package['nginx']
file { '/etc/nginx/conf.d/foo':
ensure => present,
require => Package['nginx'],
}
}
exec { 'apt-get update': path => '/usr/bin' }
Exec['apt-get update'] -> Package <| |>
Des idées?
Une option est de mettre le package à l'intérieur d'une classe séparée qui est requise par le module qui va la réaliser, mais j'aimerais savoir s'il y a un moyen de sélectionner des ressources virtuelles dans les collections uniquement si elles sont réalisées, et de ne pas les réaliser uniquement en étant incluses dans les collections.