salt.states.zone
Management of Solaris Zones
- maintainer
-
Jorge Schrauwen <sjorge@blackdot.be>
- maturity
-
new
- depends
-
salt.modules.zoneadm, salt.modules.zonecfg
- platform
-
solaris
New in version 2017.7.0.
Below are some examples of how to use this state. Lets start with creating a zone and installing it.
omipkg1_configuration: zone.present: - name: omipkg1 - brand: ipkg - zonepath: /zones/omipkg1 - properties: - autoboot: true - ip-type: exclusive - cpu-shares: 50 - resources: - attr: - name: owner - value: Jorge Schrauwen - type: string - attr: - name: description - value: OmniOS ipkg zone for testing - type: string - capped-memory: - physical: 64M omipkg1_installation: zone.installed: - name: omipkg1 - require: - zone: omipkg1_configuration omipkg1_running: zone.booted: - name: omipkg1 - require: - zone: omipkg1_installation
A zone without network access is not very useful. We could update the zone.present state in the example above to add a network interface or we could use a separate state for this.
omipkg1_network: zone.resource_present: - name: omipkg1 - resource_type: net - resource_selector_property: mac-addr - resource_selector_value: "02:08:20:a2:a3:10" - physical: znic1 - require: - zone: omipkg1_configuration
Since this is a single tenant system having the owner attribute is pointless. Let's remove that attribute.
Note
The following state run the omipkg1_configuration state will add it again! If the entire configuration is managed it would be better to add resource_prune and optionally the resource_selector_property properties to the resource.
omipkg1_strip_owner: zone.resource_present: - name: omipkg1 - resource_type: attr - resource_selector_property: name - resource_selector_value: owner - require: - zone: omipkg1_configuration
Let's bump the zone's CPU shares a bit.
Note
The following state run the omipkg1_configuration state will set it to 50 again. Update the entire zone configuration is managed you should update it there instead.
omipkg1_more_cpu: zone.property_present: - name: omipkg1 - property: cpu-shares - value: 100
Or we can remove the limit altogether!
Note
The following state run the omipkg1_configuration state will set it to 50 again. Update the entire zone configuration is managed you should set the property to None (nothing after the :) instead.
omipkg1_no_cpu: zone.property_absent: - name: omipkg1 - property: cpu-shares
-
Ensure a zone is absent
- namestring
-
name of the zone
- uninstallboolean
-
when true, uninstall instead of detaching the zone first.
salt.states.zone.absent(name, uninstall=False)
-
Ensure zone is attached
- namestring
-
name of the zone
- forceboolean
-
force attach the zone
salt.states.zone.attached(name, force=False)
-
Ensure zone is booted
- namestring
-
name of the zone
- singleboolean
-
boot in single usermode
salt.states.zone.booted(name, single=False)
-
Ensure zone is detached
- namestring
-
name of the zone
salt.states.zone.detached(name)
-
Export a zones configuration
- namestring
-
name of the zone
- pathstring
-
path of file to export too.
- replaceboolean
-
replace the file if it exists
salt.states.zone.export(name, path, replace=False)
-
Ensure zone is halted
- namestring
-
name of the zone
- gracefulboolean
-
use shutdown instead of halt if true
salt.states.zone.halted(name, graceful=True)
-
Import a zones configuration
- namestring
-
name of the zone
- pathstring
-
path of the configuration file to import
- modestring
-
either import, install, or attach
- nodatasetboolean
-
do not create a ZFS file system
- brand_optsboolean
-
brand specific options to pass
Note
The mode argument can be set to
import
,install
, orattach
.import
: will only import the configurationinstall
: will import and then try to install the zoneattach
: will import and then try to attach of the zoneomipkg1: zone.import: - path: /foo/bar/baz
salt.states.zone.import_(name, path, mode='import', nodataset=False, brand_opts=None)
-
Ensure zone is installed
- namestring
-
name of the zone
- nodatasetboolean
-
do not create a ZFS file system
- brand_optsboolean
-
brand specific options to pass
salt.states.zone.installed(name, nodataset=False, brand_opts=None)
-
Ensure a zone with certain properties and resources
- namestring
-
name of the zone
- brandstring
-
brand of the zone
- zonepathstring
-
path of the zone
- propertieslist of key-value pairs
-
dict of properties
- resourceslist of key-value pairs
-
dict of resources
Note
If the zone does not exist it will not be installed. You can use the
`zone.installed`
state for this.Note
- Default resource selectors:
-
fs: dir
net: mac-addr
device: match
rctl: name
attr: name
dataset: name
admin: user
Warning
Properties and resource will not be removed when they are absent from the state!
For properties, simple set them to
`None`
.For resources, add the
`resource_prune`
property and set it to`True`
. Also specify the`resource_selector_property`
if the default is not the one you want.
salt.states.zone.present(name, brand, zonepath, properties=None, resources=None)
-
Ensure property is absent
- namestring
-
name of the zone
- propertystring
-
name of property
Note
This does a zoneacfg clear call. So the property may be reset to a default value! Does has the side effect of always having to be called.
salt.states.zone.property_absent(name, property)
-
Ensure property has a certain value
- namestring
-
name of the zone
- propertystring
-
name of property
- valuestring
-
value of property
salt.states.zone.property_present(name, property, value)
-
Ensure resource is absent
- namestring
-
name of the zone
- resource_typestring
-
type of resource
- resource_selector_propertystring
-
unique resource identifier
- resource_selector_valuestring
-
value for resource selection
Warning
Both resource_selector_property and resource_selector_value must be provided, some properties like
`name`
are already reserved by salt in there states.Note
You can set both resource_selector_property and resource_selector_value to None for resources that do not require them.
salt.states.zone.resource_absent(name, resource_type, resource_selector_property, resource_selector_value)
-
Ensure resource exists with provided properties
- namestring
-
name of the zone
- resource_typestring
-
type of resource
- resource_selector_propertystring
-
unique resource identifier
- resource_selector_valuestring
-
value for resource selection
- kwargsstring|int|...
-
resource properties
Warning
Both resource_selector_property and resource_selector_value must be provided, some properties like
name
are already reserved by salt in states.Note
You can set both resource_selector_property and resource_selector_value to None for resources that do not require them.
salt.states.zone.resource_present(name, resource_type, resource_selector_property, resource_selector_value, **kwargs)
-
Ensure zone is uninstalled
- namestring
-
name of the zone
salt.states.zone.uninstalled(name)
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/states/all/salt.states.zone.html