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.