Overview

This type allows you to manage a share on a ZFS appliance.

Here is an example on how to use this:

zfs_share { 'default:all/project_1/share_1':
  ensure           => 'present',
  aclinherit       => 'restricted',
  checksum         => 'fletcher4',
  compression      => 'off',
  mountpoint       => '/export/share_1',
  quota            => '0.0',
  quota_snap       => 'true',
  recordsize       => '131072.0',
  reservation      => '0.0',
  reservation_snap => 'true',
  root_group       => 'other',
  root_permissions => '700',
  root_user        => 'nobody',
  sharenfs         => 'on',
  sharesmb         => 'off',
  snapdir          => 'hidden',
}

Attributes

Attribute Name Short Description
aclinherit Specifies the ACL inheritance behavior.
appliance The name of the appliance to connect to.
atime Specifies weather you want to update access time on read.
casesensitivity Specify if the share or project uses case sensitive names.
checksum Specifies the ACL inheritance behavior.
compression Specifies the type of compression of off.
ensure The basic property that the resource should be in.
maxblocksize Specifies the maximum blocksize for the project and/or the share.
mountpoint Specifies the mount point .
name The full name of the project
   
nodestroy Specifies if the contants of the share is deleted when the share is deleted.
pool_name The storage pool name of the project.
project_name The project name of the project or share.
provider resource.
quota Specifies the quota on the disk or share.
quota_snap Specifies the quota snap behaviour of the project or share.
readonly Specifies if the project is readonly or not.
recordsize Specifies the record size of the project or share.
reservation Specifies the reservation size for the project or share.
reservation_snap Specifies the reservation snap behaviour of the project or share.
root_group Specifies the root group for a file.
root_permissions Specifies the root permissions for a file.
root_user Specifies the root user for a file.
share_name The name of the share.
sharedav Specifies if the project or share must be shared with the DAV protocol.
shareftp Specifies if the project or share must be shared with the FTP protocol.
sharenfs Specifies if the project or share must be shared with the NFS protocol.
sharesftp Specifies if the project or share must be shared with the FTP protocol.
sharesmb Specifies if the project or share must be shared with the SMB protocol.
sharetftp Specifies if the project or share must be shared with the TFTP protocol.
snapdir Specifies the snapdit behaviour of the project or share.

aclinherit

Specifies the ACL inheritance behavior.

zfs_...{
  ...
  aclinhert => 'restricted'
  ...
}

At the moment it accepts the following values:

  • discard’
  • noallow’
  • restricted’
  • passthrough
  • passthrough-x

Back to overview of zfs_share

appliance

The name of the appliance to connect to.

This is the first part of the title and is seperated from the rest with a double colon.

zfs_...{appliance:...
  ...
}

Back to overview of zfs_share

atime

Specifies weather you want to update access time on read.

zfs_…{ … atime => true … }

Valid values are true, false. Back to overview of zfs_share

casesensitivity

Specify if the share or project uses case sensitive names.

zfs_...{
  ...
  casesensitivity => 'true'
  ...
}

This paramater is only used during creation.

Back to overview of zfs_share

checksum

Specifies the ACL inheritance behavior.

zfs_...{
  ...
  checksum => 'fletcher2'
  ...
}

At the moment it accepts the following values:

  • fletcher2
  • fletcher4
  • sha256

Back to overview of zfs_share

compression

Specifies the type of compression of off.

zfs_...{
  ...
  compression => 'lzjb'
  ...
}

At the moment it accepts the following values:

  • off
  • lzjb
  • gzip-2
  • gzip
  • gzip-9

Back to overview of zfs_share

ensure

The basic property that the resource should be in.

Valid values are present, absent. Back to overview of zfs_share

maxblocksize

Specifies the maximum blocksize for the project and/or the share.

zfs_…{ … maxblocksize => ‘restricted’ … }

Valid values are absent. Values can match /^\-?\d*\.?\d*$/. Back to overview of zfs_share

mountpoint

Specifies the mount point .

zfs_…{ … mountpoint => ‘/export/my_share’ … }

Back to overview of zfs_share

name

The full name of the project

Back to overview of zfs_share

nodestroy

Specifies if the contants of the share is deleted when the share is deleted.

zfs_share { … … nodestroy => true … }

Valid values are true, false. Back to overview of zfs_share

pool_name

The storage pool name of the project.

This is the second part of the title.

zfs_...{appliance:pool/....:
  ...
}

Back to overview of zfs_share

project_name

The project name of the project or share.

This is the third part of the title.

zfs_...{appliance:pool/project....:
  ...
}

Back to overview of zfs_share

provider

The specific backend to use for this zfs_share resource. You will seldom need to specify this — Puppet will usually discover the appropriate provider for your platform.Available providers are:

simple
Manage a share on a ZFS appliance

Back to overview of zfs_share

quota

Specifies the quota on the disk or share.

zfs_…{ … quota => ‘1G’ … }

Back to overview of zfs_share

quota_snap

 Specifies the quota snap behaviour of the project or share.

zfs_…{ … quota_snap => ‘true’ … }

Valid values are true, false. Back to overview of zfs_share

readonly

Specifies if the project is readonly or not.

zfs_…{ … readonly => true … }

Valid values are true, false. Back to overview of zfs_share

recordsize

Specifies the record size of the project or share.

zfs_…{ … recordsize => ‘1000’ … }

Valid values are absent. Values can match /^\-?\d*\.?\d*$/. Back to overview of zfs_share

reservation

Specifies the reservation size for the project or share.

zfs_…{ … reservation => ‘100’ … }

Valid values are absent. Values can match /^\-?\d*\.?\d*$/. Back to overview of zfs_share

reservation_snap

 Specifies the reservation snap behaviour of the project or share.

zfs_…{ … reservation_snap => ‘true’ … }

Valid values are true, false. Back to overview of zfs_share

root_group

 Specifies the root group for a file.

zfs_…{ … root_group => ‘unknown’ … }

Back to overview of zfs_share

root_permissions

Specifies the root permissions for a file.

zfs_…{ … root_permissions => ‘0700’ … }

Back to overview of zfs_share

root_user

 Specifies the root user for a file.

zfs_…{ … root_user => ‘unknown’ … }

Back to overview of zfs_share

share_name

The name of the share.

That is the 4th part of the title

zfs_...{appliance:pool/project/share:
  ...
}

Back to overview of zfs_share

sharedav

Specifies if the project or share must be shared with the DAV protocol.

zfs_…{ … sharedav => ‘on’ … }

Back to overview of zfs_share

shareftp

Specifies if the project or share must be shared with the FTP protocol.

zfs_…{ … shareftp => ‘on’ … }

Back to overview of zfs_share

sharenfs

Specifies if the project or share must be shared with the NFS protocol.

You can set it to:

  • On (nfs share mode rw, no exceptions)
  • Off (nfs share mode none, no exceptions)
  • ro (nfs share mode ro, no exceptions)
  • An String detailled describing the share mode with possibility for e.g. network level exceptions etc., e.g.: sec=sys,ro,nosuid,nosub,rw=@2.3.4.5/32:@1.2.3.4/32,root=@2.3.4.5/32:@1.2.3.4/32:@6.7.8.9/32

    zfs_…{ … sharenfs => ‘on’ … }

Back to overview of zfs_share

sharesftp

Specifies if the project or share must be shared with the FTP protocol.

zfs_…{ … sharesftp => ‘on’ … }

Back to overview of zfs_share

sharesmb

Specifies if the project or share must be shared with the SMB protocol.

zfs_…{ … sharesmb => ‘on’ … }

Back to overview of zfs_share

sharetftp

Specifies if the project or share must be shared with the TFTP protocol.

zfs_…{ … sharetftp => ‘on’ … }

Back to overview of zfs_share

snapdir

 Specifies the snapdit behaviour of the project or share.

zfs_…{ … snapdir => ‘true’ … }

Back to overview of zfs_share