puppetlabs/puppet-acceptance — pull request #351 by justinstoller (2012-11-19 17:21:26+00:00)
Title: Outline of using Solaris 11 as a hypervisor

I can't connect to the vpn so this is all speculation, but this commit outlines how to use a Solaris 11 global zone as a hypervisor.

See setup/early/00-vmrun.rb

This will use a `~/.fog` file similar to this:
```yaml
:defaults:
:solaris_hypervisor:
mundilfari:
# this is just an example, not where they necessarily are on mundilfari
vmpath: 'zpool/export/zones'
```
Given a config.yml file like:

```yaml
HOSTS:
solaris11-agent:
roles:
- agent
platform: solaris-11-sparc
solaris11-master:
roles:
- agent
- master
platform: solaris-11-sparc
```
This should revert the zones (reachable via dns at `solaris11-agent` and `solaris11-master`) to the snapshot `foss` located in storage `/zpool/export/zones/solaris11-agent` and `/zpool/export/zones/solaris11-master` on the global zone reachable at `mundilfari`.

Solaris cheetsheet:

```bash
# "PowerOn" a zone from the global zone
zoneadm -z boot

# "PowerOff" a zone from the global zone
zoneadm -z halt

# Gracefully shutdown from global zone
zlogin shutdown -i0 -g0 -y

# Rollback to latest snapshot named "foss"
# note: this will cause all snapshots between
# now and "foss" to be deleted!
zfs rollback -r relative/uri/to/zone@foss
```

`` should be equivalent to the `vmname` we use in vSphere and Fusion, which defaults to the `hostname` which is the key in the config.yml file we use.