many thanks Martin - makes perfect sense! On May 3, 10:45 am, Martin Alfke <tux...@gmail.com> wrote: > Hi Edd, > > here is an example: > > class apache-maven-v3 { > # prepare local filesystem > file { 'java_path': > path => "/usr/local/java", > ensure => directory, > } > # copy file from puppet master to local system > file { 'copy_maven_v3': > path => "/usr/local/java/apache-maven-3.0.3-bin.tar.gz", > source => > "puppet:///modules/apache-maven-v3/apache-maven-3.0.3-bin.tar.gz", > } > # extract local file > exec { 'install_maven_v3': > command => "/bin/tar zxf > /usr/local/java/apache-maven-3.0.3-bin.tar.gz", > cwd => "/usr/local/java", > creates => "/usr/local/java/apache-maven-3.0.3", > } > # make sure the order is set properly > File['java_path'] -> File['copy_maven_v3'] -> Exec['install_maven_v3'] > > } > > kind regards, > > Martin > > On 05/03/2011 11:06 AM, Edd Grant wrote: > > > > > > > > > Hi Nan, > > > Thanks for the answer - I'm not 100% clear how I could acheive this, > > could you expand on your suggestion a little, perhaps with an example? > > Would the file resource point at the .gz file in the module? If so how > > would I then reference the file resource in the tar command? > > > Many thanks, > > > Edd > > > On May 2, 4:15 pm, Nan Liu <n...@puppetlabs.com> wrote: > >> Use a file resource to deploy it to the agent and make the exec depend > >> on the file resource. > > >> On May 2, 2011, at 7:58, Edd Grant <e...@eddgrant.com> wrote: > > >>> Hi All, > > >>> I have defined the following module to untar/unzip and copy the Maven > >>> distributable to a convenient location: > > >>> class apache-maven-v3 { > >>> exec { "/bin/tar xzf /etc/puppet/modules/apache-maven-v3/files/ > >>> apache-maven-3.0.3-bin.tar.gz": > >>> cwd => "/usr/local/java", > >>> creates => "/usr/local/java/apache-maven-3.0.3", > >>> } > >>> ... > >>> } > > >>> The above definition executes perfectly however in order to keep the > >>> module portable I want to replace the absolute path to the .gz file > >>> with a puppet:/// URI e.g. > > >>> exec { "/bin/tar xzf > >>> puppet:///modules/apache-maven-v3/apache-maven-3.0.3-bin.tar.gz": > > >>> When I change the class to use the puppet:/// URI I get the following > >>> error: > > >>> (/Stage[main]/Apache-maven-v3/Exec[/bin > >>> /tar xzf > >>> puppet:///modules/apache-maven-v3/apache-maven-3.0.3-bin.tar.gz]/return > >>> s) change from notrun to 0 failed: /bin/tar xzf > >>> puppet:///modules/apache-maven-v > >>> 3/apache-maven-3.0.3-bin.tar.gz returned 2 instead of one of [0] at / > >>> etc/puppet/ > >>> modules/apache-maven-v3/manifests/init.pp:11 > > >>> It appears to me that the puppet:/// URI is not being resolved in the > >>> exec and this is causing the tar command to operate on the literal > >>> path puppet:///modules/apache-maven-v3/apache-maven-3.0.3-bin.tar.gz > >>> which of course doesn't exist. > > >>> Looking at the docs I can't see any examples of puppet:/// being used > >>> in this way, is there anyway I can obtain the resolved absolute path > >>> to pass this in to my exec? Failing that it there a standard approach > >>> for combining a puppet:/// URI with an exec? > > >>> Cheers, > > >>> Edd > > >>> -- > >>> 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 > >>> athttp://groups.google.com/group/puppet-users?hl=en.
-- 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.