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.