On Thu, Jun 23, 2011 at 4:07 PM, Craig White <craig.wh...@ttiltd.com> wrote: > class nginx::install { > $prerequisites = [ "build-essential", "libcurl4-openssl-dev", "libssl-dev", > "zlib1g-dev" ] > case $operatingsystem { > centos, redhat: { > } > debian, ubuntu: { > package { $prerequisites : ensure => "installed" : > ensure => present { > exec { "Installing nginx via passenger": > path => "/bin:/usr/bin", > environment => "HOME=/root", > command => "passenger-install-nginx-module --auto-download > --auto", > user => "root", > group => "root", > unless => "ls -l /opt | grep nginx", > logoutput => on_failure, > } > } > file {"/etc/init.d/nginx": > source => "puppet:///modules/nginx/nginx-initd", > owner => root, > group => root, > mode => 755, > require => Class["nginx::install"], > notify => Class["nginx::service"], > } > } > } > } > } > > The above has a syntax error on line 7 and the catalog won't build but > essentially I want to 'ensure' that the pre-requsite packages are installed > prior to attempting to execute the command (because if the pre-requisites > aren't there, the command will fail).
That definitely won't compile :) You should be able to just declare the exec and package(s) resources separately and define a relationship, like: exec { "Installing nginx via passenger": path => "/bin:/usr/bin", environment => "HOME=/root", command => "passenger-install-nginx-module --auto-download --auto", user => "root", group => "root", unless => "ls -l /opt | grep nginx", logoutput => on_failure, require => Package[$prerequisites], } That last line should work for you. Otherwise you could define it the opposite way around: package { $prerequisites: ensure => installed, before => Exec["Installing nginx via passenger"], } Both those methods should work, but I have a vague memory of the first method failing in a point release or two. What version of Puppet are you running? You may have a much clearer way of expressing the conditional you're using than the somewhat messy case statement you're using at the moment. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.