Resource Type: zone

Defined in:
lib/puppet/type/zone.rb
Providers:
solaris

Overview

Manages Solaris zones.

Autorequires: If Puppet is managing the directory specified as the root of the zone’s filesystem (with the ‘path` attribute), the zone resource will autorequire that directory.

Properties

  • autoboot (defaults to: true)

    Whether the zone should automatically boot.

    Supported values:
    • true
    • false
  • dataset

    The list of datasets delegated to the non-global zone from the global zone. All datasets must be zfs filesystem names which are different from the mountpoint.

  • ensure (defaults to: running)

    The running state of the zone. The valid states directly reflect the states that ‘zoneadm` provides. The states are linear, in that a zone must be `configured`, then `installed`, and only then can be `running`. Note also that `halt` is currently used to stop zones.

  • inherit

    The list of directories that the zone inherits from the global zone. All directories must be fully qualified.

  • ip

    The IP address of the zone. IP addresses must be specified with an interface, and may optionally be specified with a default router (sometimes called a defrouter). The interface, IP address, and default router should be separated by colons to form a complete IP address string. For example: ‘bge0:192.168.178.200` would be a valid IP address string without a default router, and `bge0:192.168.178.200:192.168.178.1` adds a default router to it.

    For zones with multiple interfaces, the value of this attribute should be an array of IP address strings (each of which must include an interface and may include a default router).

  • iptype (defaults to: shared)

    The IP stack type of the zone.

    Supported values:
    • shared
    • exclusive
  • path

    The root of the zone’s filesystem. Must be a fully qualified file name. If you include ‘%s` in the path, then it will be replaced with the zone’s name. Currently, you cannot use Puppet to move a zone. Consequently this is a readonly property.

  • pool

    The resource pool for this zone.

  • shares

    Number of FSS CPU shares allocated to the zone.

Parameters

  • clone

    Instead of installing the zone, clone it from another zone. If the zone root resides on a zfs file system, a snapshot will be used to create the clone; if it resides on a ufs filesystem, a copy of the zone will be used. The zone from which you clone must not be running.

  • create_args

    Arguments to the ‘zonecfg` create command. This can be used to create branded zones.

  • id

    The numerical ID of the zone. This number is autogenerated and cannot be changed.

  • install_args

    Arguments to the ‘zoneadm` install command. This can be used to create branded zones.

  • name (namevar)

    The name of the zone.

  • provider

    The specific backend to use for this ‘zone` resource. You will seldom need to specify this — Puppet will usually discover the appropriate provider for your platform.

  • realhostname

    The actual hostname of the zone.

  • sysidcfg

    %text to go into the ‘sysidcfg` file when the zone is first booted. The best way is to use a template:

    # $confdir/modules/site/templates/sysidcfg.erb
    system_locale=en_US
    timezone=GMT
    terminal=xterms
    security_policy=NONE
    root_password=<%= password %>
    timeserver=localhost
    name_service=DNS {domain_name=<%= domain %> name_server=<%= nameserver %>
    network_interface=primary realhostname %>
      ip_address=<%= ip %>
      netmask=<%= netmask %>
      protocol_ipv6=no
      default_route=<%= defaultroute %>
    nfs4_domain=dynamic
    

    And then call that:

    zone { 'myzone':
      ip           => 'bge0:192.168.0.23',
      sysidcfg     => template('site/sysidcfg.erb'),
      path         => '/opt/zones/myzone',
      realhostname => 'fully.qualified.domain.name',
    }
    

    The ‘sysidcfg` only matters on the first booting of the zone, so Puppet only checks for it at that time.}