Re: [Puppet Users] Puppet for deploying Jboss application

2012-08-14 Thread Rost
thks

Le mardi 14 août 2012 22:21:04 UTC+2, Dominic Cleal a écrit :
>
> On 14/08/12 18:18, Rost wrote: 
> > Hi All, 
> > 
> > I would like to use puppet for deploying Jboss application. 
> > 
> > The property file of my Jboss app need to be evaluated before moving in 
> > the conf dir as it's a template. 
> > 
> > How could I make this kind of operation with native resources of puppet. 
> > 
> > 
> > *Example :* 
> > 
> > I have this file *myapp.properties.tmpl* : 
> > 
> > ApplicationName=${MY_APP_NAME} 
> > ApplicationVersion=${MY_APP_VERSION} 
> > ... 
> > 
> > 
> > And I have the file *global.properties* : 
> > 
> > ${MY_APP_NAME}=helloworld 
> > ${MY_APP_VERSION}=1.0.0 
>
> This here feels like you're not solving the actual problem, but working 
> around a bug elsewhere in your design. 
>
> > I would like to replace variables in myapp.properties.tmpl with the 
> > right value in global.properties and generate the new file 
> > *myapp.properties* with 
> > 
> > ApplicationName=helloworld 
> > ApplicationVersion=1.0.0 
> > 
> > Is that possible, may be with tools like Augeas? 
>
> The first thing you need is to get the data ("helloworld", "1.0.0") into 
> Puppet.  Ideally via an ENC or hiera or similar. 
>
> If it only exists on the filesystem of the host at the start of a run 
> and you really must, you could use a fact, but you're going into weird 
> territory as your system build will then depend on the existing state of 
> the system.  Definitely an anti-pattern here, but possible. 
>
> You can use Augeas in facts, but only the properties lens as it exists 
> in master (rather than the 0.9.0 release) can parse that 
> global.properties file.  Something like this: 
>
> http://pastie.org/4475806 
> http://projects.puppetlabs.com/projects/facter/wiki/Facter_Augeas 
>
> Or do something similar in Ruby to pull the value out of the file on the 
> host and present it in a fact. 
>
> Once you have the value in Puppet, then creating or editing 
> myapp.properties with Augeas is trivial, or use a template: 
>
> augeas { "myapp.properties": 
>   lens=> "Properties.lns", 
>   incl=> "/path/to/myapp.properties", 
>   changes => [ 
> "set ApplicationName ${appname}", 
> "set ApplicationVersion ${appversion}", 
>   ], 
> } 
>
> (Where $appname and $appversion are Puppet variables, facts or a proper 
> data source.) 
>
> Cheers, 
>
> -- 
> Dominic Cleal 
> Red Hat Consulting 
> m: +44 (0)7817 878113 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/j8t3iTOJjNoJ.
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.



Re: [Puppet Users] Puppet for deploying Jboss application

2012-08-14 Thread Dominic Cleal
On 14/08/12 18:18, Rost wrote:
> Hi All,
> 
> I would like to use puppet for deploying Jboss application.
> 
> The property file of my Jboss app need to be evaluated before moving in
> the conf dir as it's a template.
> 
> How could I make this kind of operation with native resources of puppet.
> 
> 
> *Example :*
> 
> I have this file *myapp.properties.tmpl* :
> 
> ApplicationName=${MY_APP_NAME}
> ApplicationVersion=${MY_APP_VERSION}
> ...
> 
> 
> And I have the file *global.properties* :
> 
> ${MY_APP_NAME}=helloworld
> ${MY_APP_VERSION}=1.0.0

This here feels like you're not solving the actual problem, but working
around a bug elsewhere in your design.

> I would like to replace variables in myapp.properties.tmpl with the
> right value in global.properties and generate the new file
> *myapp.properties* with
> 
> ApplicationName=helloworld
> ApplicationVersion=1.0.0
> 
> Is that possible, may be with tools like Augeas?

The first thing you need is to get the data ("helloworld", "1.0.0") into
Puppet.  Ideally via an ENC or hiera or similar.

If it only exists on the filesystem of the host at the start of a run
and you really must, you could use a fact, but you're going into weird
territory as your system build will then depend on the existing state of
the system.  Definitely an anti-pattern here, but possible.

You can use Augeas in facts, but only the properties lens as it exists
in master (rather than the 0.9.0 release) can parse that
global.properties file.  Something like this:

http://pastie.org/4475806
http://projects.puppetlabs.com/projects/facter/wiki/Facter_Augeas

Or do something similar in Ruby to pull the value out of the file on the
host and present it in a fact.

Once you have the value in Puppet, then creating or editing
myapp.properties with Augeas is trivial, or use a template:

augeas { "myapp.properties":
  lens=> "Properties.lns",
  incl=> "/path/to/myapp.properties",
  changes => [
"set ApplicationName ${appname}",
"set ApplicationVersion ${appversion}",
  ],
}

(Where $appname and $appversion are Puppet variables, facts or a proper
data source.)

Cheers,

-- 
Dominic Cleal
Red Hat Consulting
m: +44 (0)7817 878113

-- 
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.



[Puppet Users] Puppet for deploying Jboss application

2012-08-14 Thread Rost
Hi All,

I would like to use puppet for deploying Jboss application.

The property file of my Jboss app need to be evaluated before moving in the 
conf dir as it's a template.

How could I make this kind of operation with native resources of puppet.


*Example :*

I have this file *myapp.properties.tmpl* :

ApplicationName=${MY_APP_NAME}
ApplicationVersion=${MY_APP_VERSION}
...


And I have the file *global.properties* :

${MY_APP_NAME}=helloworld
${MY_APP_VERSION}=1.0.0


I would like to replace variables in myapp.properties.tmpl with the right 
value in global.properties and generate the new file *myapp.properties* with

ApplicationName=helloworld
ApplicationVersion=1.0.0

Is that possible, may be with tools like Augeas?

Suggestions 
Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/gwkHUwM26QYJ.
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.