Hi,
I'm having trouble understanding the added value Virtual Resources provide. 
Let's say I'm having two different modules (that usually are assigned to 
different agents) that both contain a common resource (let's say a user). 
If I want to easily make it possible to assign both modules to the same 
agent - without suffering from the "duplicate resource declaration" error - 
I could make the resource definition virtual and realize it in different 
modules. See this simplified example.

> cat $modulesdir/virtual/manifests/init.pp
class virtual {
  @user { 'admin': ensure => present }
}

> cat $modulesdir/mailserver/manifests/init.pp
class mailserver {
  realize(User['admin'])
  # some more mailserver stuff...
}

> cat $modulesdir/webserver/manifests/init.pp
class webserver {
  realize(User['admin'])
  # some more webserver stuff...
}

> cat $manifestsdir/nodes.pp
node /<somenode>/ {
  include virtual
  include mailserver
  include webserver
}


My question: How is that different, more convenient or more flexible than 
extracting that admin user into its own module? Like that:

> cat $modulesdir/adminuser/manifests/init.pp
class adminuser {
  user { 'admin': ensure => present }
}

> cat $modulesdir/mailserver/manifests/init.pp
class mailserver {
  # some more mailserver stuff...
}

> cat $modulesdir/webserver/manifests/init.pp
class webserver {
  # some more webserver stuff...
}

> cat $manifestsdir/nodes.pp
node /<somenode>/ {
  include adminuser
  include mailserver
  include webserver
}


I guess I'm missing something here, or I'm using it wrong. 
Your help is highly appreciated, 
thanks in advance,
Christian

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to