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.

Reply via email to