On Wed, Aug 22, 2012 at 6:06 AM, Martin Alfke <[email protected]> wrote: > > On 22.08.2012, at 14:27, Axel Bock wrote: > > Hi readers > > another question for my little puppet project: Can I (and if yes, how) > define dependendies between puppet "defines"? (define like in define > mymodule::mydefine() {...}) > > Example: I have a define "prepare_cool_thing" and another define > "cool_thing". Both can be on a machine several times (quite, actually, like > vhosts :). So this is entirely valid: > > prepare_cool_thing{ "name1" : } > cool_thing{ "name1" : } > > prepare_cool_thing{ "name2" : } > cool_thing{ "name2" : } > > I'm sure you get it. BUT. I'd like to state within the cool_thing define > that the prepare_cool_thing was executed. Can I do that? The following does > not seem to do what I want: > > Prepare_cool_thing[ "name1" ] -> Cool_thing[ "name1" ] # naah, does not > work. > > > Where did you put the dependency? > What puppet version are you using. > > Normally this works: > > define task_one ( $user = 'root' ) { > file { '/tmp/one': > owner => $user, > content => $user, > } > } > define task_two ( $user = 'root' ) { > file { '/tmp/two': > owner => $user, > content => $user, > } > } > task_one { 'foo': } > task_two { 'foo': } > Task_one['foo'] -> Task_two['foo'] > > You can also place the order inside the define: > > define task_two ( $user = 'root') { > file { '/tmp/two': > owner => $name, > content => $name, > } > Task_one["$name"] -> Task_two["$name"] > }
This really irks me. Is this documented anywhere? How did Task_one get into scope inside Task_two? What is the scope for definitions? Are they global? Doug. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
