Thank Jon. Based on your class, I've come up with the following code which worked for me. class sun-jdk { package {"java-1.6.0-openjdk": ensure => absent, } exec {"jdk_install": cwd => "/root", command => "/root/jdk-6u24-linux-x64-rpm.bin", creates => "/usr/java/jdk1.6.0_24/bin/javac", require => [Package["java-1.6.0-openjdk"], file["/root/ jdk-6u24-linux-x64-rpm.bin"]], } package {jdk: require => Exec["jdk_install"], } file {"/root/jdk-6u24-linux-x64-rpm.bin": ensure => present, source => "puppet:///modules/sun-jdk/jdk-6u24-linux-x64- rpm.bin"; } } I didn't use NFS share but made use of the puppet file server.
If anyone has suggestions for improvement, please let me know. Thanks a lot. Shi On Apr 12, 10:38 pm, Jon Jaroker <goo...@jaroker.com> wrote: > I have the same requirement to install Sun JDK, not openJDK. Below is > the module I am using. I would be grateful for suggestions on how > this install can be done better. > > Thank you, > Jon > > class java { > > package {"java-1.6.0-openjdk": > ensure => absent, > } > > exec {"java_install": > cwd => "/opt", > command => "/usr/bin/yes | /opt/share/downloads/java/jdk-6u24- > linux-x64.bin", > creates => "/opt/jdk1.6.0_24/COPYRIGHT", > require => Package["java-1.6.0-openjdk"], > } > > file {"/usr/bin/java": > ensure => "/opt/jdk1.6.0_24/bin/java", > require => Exec["java_install"], > } > > } > > On Apr 12, 3:55 pm, Shi <jinzish...@gmail.com> wrote: > > > > > > > > > Hi there, > > > I am new to Puppet and am writing my first module to manage our > > cluster. So far, it worked out reasonably well. I can add yum > > repositories and install packages with Puppet automatically. > > However, one package requires the use of Sun JDK, not the openjdk > > coming with CentOS. > > The only way to do this is to download the jdk-6u24-linux-x64-rpm.bin > > file and run it. > > > I figure I might be able to use something like > > > package {jdk: > > source="/mnt/share/jdk-6u24-linux-x64-rpm.bin", > > ensure => installed; > > } > > > I guess I could put the file under the shared NFS /mnt/share. But > > there is no way I can tell puppet to simply run the source as an > > executable. All the PROVIDER options are for a particular format, such > > as RPM or DEB. I guess I could run the file once on one machine, and > > it will extract the rpms. I could then just use the rpms, but that is > > less than ideal. > > > Also, if I don't want to pre-mount the NFS share, is there any way to > > scp the file from the master node? Do I then have to set up ssh > > without password for the root? > > > Thank you very much. > > Shi -- 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.