Thanks! Very helpful. Though I don't follow your discussion of MSI's, since 
Groovy/Gradle don't have MSI installers. My understanding is MSI 
development is non-trivial. 

On Thursday, August 16, 2012 4:19:31 PM UTC-5, Josh Cooper wrote:
>
> Hi Jeff, 
>
> I've recently added support for MSI and executable packages on 
> Windows[1], which will be out in Puppet 3. That way you can just 
> download the java exe installer (step 1) and manage it via a `package` 
> resource, thereby avoiding the zip issue. Obviously, it doesn't help 
> you out now. 
>
> In 2.7.x, I'd recommend using one of the later puppet versions as the 
> MSI support is much better[2] 
>
> On Thu, Aug 16, 2012 at 1:45 PM, Jeff Sussna 
> <j...@ingineering.it<javascript:>> 
> wrote: 
> > Thanks for the pointer to nanliu/staging. Though from the forge page it 
> > sounds like it requires a master and hiera. I'm running standalone. 
>
> You can install and run modules locally, e.g. 
>
> puppet apply <manifest> --modulepath <path> 
>
> In 2.7.x, make sure to use forward slashes for the module path[3] 
>
> > 
> > Re env vars, I managed to figure that out. The following resource sets 
> the 
> > global system var FOO_BAR to the current value of PATH, with ";baz" 
> appended 
> > to the end of it: 
> > 
> > exec { "cmd.exe /c reg add 
> \"HKLM\SYSTEM\CurrentControlSet\Control\Session 
> > Manager\Environment\" /v FOO_BAR /t REG_SZ /d \"$::path;baz\" /f": 
> >      path => $::path 
> > } 
> > 
>
> You'll need to add an `unless` otherwise puppet will append baz each 
> time it runs. 
>
> > Note the escaped quotes. 
> > 
> > On Windows 7 you could use the builtin 'setx' command instead, but I'm 
> being 
> > wacky and using Puppet on XP, which doesn't have setx. 
>
> Didn't know about setx, cool! 
>
> > 
> > On Thursday, August 16, 2012 3:20:11 PM UTC-5, Ryan Coleman wrote: 
> >> 
> >> On Thu, Aug 16, 2012 at 12:44 PM, Jeff Sussna <j...@ingineering.it> 
> wrote: 
> >> > I want to use Puppet to manage Groovy and Gradle on Windows machines. 
> >> > The 
> >> > install process for each looks like: 
> >> > 
> >> > 1. Download zip file from a URL 
>
> If you can host the package on a puppet fileserver, then you can just 
> use a 'puppet' URI scheme. 
>
> If not, then you'll have to use nan's module (which requires curl) to 
> download. 
>
> >> > 2. Unzip 
> >> 
> >> The nanliu/staging module on the Puppet Forge will at least get you 
> >> the first two points. http://forge.puppetlabs.com/nanliu/staging 
> >> 
> >> With a couple of Puppet resources, it will retrieve the zip file from 
> >> a url, store it somewhere and unzip it wherever you want. He lists 
> >> some examples on the Forge page. They're for tar.gz files but the 
> >> resources automatically handle zipped files should they have the 
> >> proper .zip extension. 
> >> 
>
> Nan's module requires unzip, which isn't present by default. You'd 
> probably want to install 7zip. They have an MSI installer, so you can 
> manage as a package resource. 
>
> >> > 3. Create a Windows environment variable to point to the location 
> where 
> >> > you 
> >> > unzipped 
>
> You can exec reg.exe or use the registry module[4][5]: 
>
> So to create an environment variable JAVA_HOME=C:\java7, you'd do: 
>
> registry_value { 'HKLM\System\CurrentControlSet\Control\Session 
> Manager\Environment\JAVA_HOME': 
>   ensure => present, 
>   type     => string, 
>   value   => 'C:\java7' 
> } 
>
> The `registry_value` type supports all common registry types, such as 
> REG_EXPAND_SZ, so you can do `value => '%SYSTEMDRIVE%\java7'` 
>
> >> > 4. Add that environment variable/bin to the global PATH environment 
> >> > variable. 
> >> 
> >> I'm sorry I can't help you with these two. Hopefully someone else on 
> >> the list can. :-) 
> > 
>
> This would best be handled by an environment type & provider (to 
> account for the inclusive/exclusive behavior of the multi-valued PATH 
> environment variable). In the meantime, probably best to use the exec 
> resource. 
>
> Josh 
>
> [1] http://projects.puppetlabs.com/issues/11870 
> [2] http://projects.puppetlabs.com/issues/11868 
> [3] http://projects.puppetlabs.com/issues/13055 
> [4] http://forge.puppetlabs.com/puppetlabs/registry 
> [5] 
> http://puppetlabs.com/blog/module-of-the-week-puppetlabs-registry-windows/ 
>
> -- 
> Josh Cooper 
> Developer, Puppet Labs 
>

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