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.

Reply via email to