Basically you should be creating an init script for each java application that you start. It should be the responsibility of that init script to set the JAVA_HOME/JAVA_BIN variables. With this in mind you shouldn't need to worry about facts or different JAVA_HOME variables since the init script will set this explicitly for each java application you run. You would want to have a java_home or java_bin puppet parameter in your class/define so that you can change java versions in hiera for a specific node/environment/datacenter. If you want a "default" version that is the only reason I would see for setting JAVA_HOME in your bash_profile. Have a look at java service wrappers to help automate that init script creation. (This is what jenkins, puppetdb, and many others use).
Corey On Wednesday, July 2, 2014 3:06:46 AM UTC-7, Gavin Williams wrote: > > Morning all > > I'm currently working on a module[1] to support installation and > configuration of Apache Karaf[2], a Java OSGi container... > > I've got most of the installation piece sorted, and am starting to work on > the configuration side of things. > Unfortunately I've hit a bit of a blocker which I'm not sure of the best > way to work-around. > > As part of the service installation process, a Java wrapper config file is > created. > This config file needs to be modified to specify the 'JAVA_HOME' value. > However I'm not sure of the best way to calculate this JAVA_HOME value, due > to the variable nature of both Java variants (Java 6 vs 7, Oracle vs > OpenJDK, release version) and the fact that Java might not be installed at > the start of the Puppet run. > The intention is to use a template for the config file, so it's modifiable > by Puppet. > > Options I can think of: > > 1. Use a fact to provide JAVA_HOME. This fails if Java isn't installed > at the start of the agent run, which is a valid scenario if this module is > also installing Java... > 2. Hard code the value based on a pre-determined file path based on > chosen Java distro and version. Not very clean/configurable... > 3. Update wrapper config file to pull in system env for JAVA_HOME. > However this fails if the system version isn't the one that the app should > use... > > Am I missing a trick somewhere along the lines, or is hoping to achieve > all this - Install Java, Install Karaf, configure Karaf service - in one > run asking too much? > > Thoughts/ideas welcome. > > Cheers > Gavin > > [1] https://github.com/fatmcgav/fatmcgav-karaf/tree/develop > [2] http://karaf.apache.org/index.html > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/9ae083e2-7e5e-47c1-ab99-7f21a114f750%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
