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 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 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/stagingWith 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 post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.