Ok, I've looked at the zone puppet type and have come to the conclusion that 
puppet, at least in it's current form, does not what I need. At least not 
without some other distributed mechanism.

The Problem is the migration of a zone from one host to another.

Such scenarios typically involve some shared storage (SAN luns in our case) for 
the zone roots. Migrating a zone from host A to host B might look like this:

host A: shutdown zone
host A: unmount zone root
host A: release metaset

host B: get the zone configuration from somewhere
host B: modify the zone configuration if needed (network interfaces might have 
another name)
host B: take metaset
host B: mount zone root
host B: boot zone

To manage this scenario, puppet would need to:
1) know that the zone is currently deployed on host A,
2) be able to resolve dependencies spanning multiple nodes.

For 1) there's propably a workaround which involves specifying all the zone on 
all the physical nodes and use a ensure property detached or unmounted to make 
sure that the zone roots of zones, which are currently deployed on another 
node, are unmounted:

node A {
    ensure => detached #(1

node B {
  zone {"foobar":
   ensure => running,
   require => A::Zone["foobar"] #(2 This would trigger the unmounting of the 
zone root

2) is more tricky because this feature doesn't exist in puppet. 

Regards Robert
This message posted from opensolaris.org
zones-discuss mailing list

Reply via email to