salt.states.zfs#
States for managing zfs datasets
- maintainer:
Jorge Schrauwen <sjorge@blackdot.be>
- maturity:
new
- depends:
salt.utils.zfs, salt.modules.zfs
- platform:
smartos, illumos, solaris, freebsd, linux
New in version 2016.3.0.
Changed in version 2018.3.1: Big refactor to remove duplicate code, better type conversions and improved consistency in output.
test/shares/yuki:
zfs.filesystem_present:
- create_parent: true
- properties:
quota: 16G
test/iscsi/haruhi:
zfs.volume_present:
- create_parent: true
- volume_size: 16M
- sparse: true
- properties:
readonly: on
test/shares/yuki@frozen:
zfs.snapshot_present
moka_origin:
zfs.hold_present:
- snapshot: test/shares/yuki@frozen
test/shares/moka:
zfs.filesystem_present:
- cloned_from: test/shares/yuki@frozen
test/shares/moka@tsukune:
zfs.snapshot_absent
- salt.states.zfs.bookmark_absent(name, force=False, recursive=False)#
ensure bookmark is absent on the system
- namestring
name of snapshot
- forceboolean
try harder to destroy the dataset (zfs destroy -f)
- recursiveboolean
also destroy all the child datasets (zfs destroy -r)
- salt.states.zfs.bookmark_present(name, snapshot)#
ensure bookmark exists
- namestring
name of bookmark
- snapshotstring
name of snapshot
- salt.states.zfs.filesystem_absent(name, force=False, recursive=False)#
ensure filesystem is absent on the system
- namestring
name of filesystem
- forceboolean
try harder to destroy the dataset (zfs destroy -f)
- recursiveboolean
also destroy all the child datasets (zfs destroy -r)
Warning
If a volume with
nameexists, this state will succeed without destroying the volume specified byname. This module is dataset type sensitive.
- salt.states.zfs.filesystem_present(name, create_parent=False, properties=None, cloned_from=None)#
ensure filesystem exists and has properties set
- namestring
name of filesystem
- create_parentboolean
creates all the non-existing parent datasets. any property specified on the command line using the -o option is ignored.
- cloned_fromstring
name of snapshot to clone
- propertiesdict
additional zfs properties (-o)
Note
cloned_fromis only use if the filesystem does not exist yet, whencloned_fromis set after the filesystem exists it will be ignored.Note
Properties do not get cloned, if you specify the properties in the state file they will be applied on a subsequent run.
- salt.states.zfs.hold_absent(name, snapshot, recursive=False)#
ensure hold is absent on the system
- namestring
name of hold
- snapshotstring
name of snapshot
- recursiveboolean
recursively releases a hold with the given tag on the snapshots of all descendent file systems.
- salt.states.zfs.hold_present(name, snapshot, recursive=False)#
ensure hold is present on the system
- namestring
name of holdt
- snapshotstring
name of snapshot
- recursiveboolean
recursively add hold with the given tag on the snapshots of all descendent file systems.
- salt.states.zfs.promoted(name)#
ensure a dataset is not a clone
- namestring
name of fileset or volume
Warning
only one dataset can be the origin, if you promote a clone the original will now point to the promoted dataset
- salt.states.zfs.scheduled_snapshot(name, prefix, recursive=True, schedule=None)#
maintain a set of snapshots based on a schedule
- namestring
name of filesystem or volume
- prefixstring
prefix for the snapshots e.g. 'test' will result in snapshots being named 'test-yyyymmdd_hhmm'
- recursiveboolean
create snapshots for all children also
- scheduledict
dict holding the schedule, the following keys are available (minute, hour, day, month, and year) by default all are set to 0 the value indicated the number of snapshots of that type to keep around.
Warning
snapshots will only be created and pruned every time the state runs. a schedule must be setup to automatically run the state. this means that if you run the state daily the hourly snapshot will only be made once per day!
Changed in version 2018.3.0: switched to localtime from gmtime so times now take into account timezones.
- salt.states.zfs.snapshot_absent(name, force=False, recursive=False)#
ensure snapshot is absent on the system
- namestring
name of snapshot
- forceboolean
try harder to destroy the dataset (zfs destroy -f)
- recursiveboolean
also destroy all the child datasets (zfs destroy -r)
- salt.states.zfs.snapshot_present(name, recursive=False, properties=None)#
ensure snapshot exists and has properties set
- namestring
name of snapshot
- recursiveboolean
recursively create snapshots of all descendent datasets
- propertiesdict
additional zfs properties (-o)
- salt.states.zfs.volume_absent(name, force=False, recursive=False)#
ensure volume is absent on the system
- namestring
name of volume
- forceboolean
try harder to destroy the dataset (zfs destroy -f)
- recursiveboolean
also destroy all the child datasets (zfs destroy -r)
Warning
If a filesystem with
nameexists, this state will succeed without destroying the filesystem specified byname. This module is dataset type sensitive.
- salt.states.zfs.volume_present(name, volume_size, sparse=False, create_parent=False, properties=None, cloned_from=None)#
ensure volume exists and has properties set
- namestring
name of volume
- volume_sizestring
size of volume
- sparseboolean
create sparse volume
- create_parentboolean
creates all the non-existing parent datasets. any property specified on the command line using the -o option is ignored.
- cloned_fromstring
name of snapshot to clone
- propertiesdict
additional zfs properties (-o)
Note
cloned_fromis only use if the volume does not exist yet, whencloned_fromis set after the volume exists it will be ignored.Note
Properties do not get cloned, if you specify the properties in the state file they will be applied on a subsequent run.
volume_sizeis considered a property, so the volume's size will be corrected when the properties get updated if it differs from the original volume.The sparse parameter is ignored when using
cloned_from.