####Table of Contents
The NetApp Data ONTAP device module is designed to add support for managing NetApp Data ONTAP configuration using Puppet and its Network Device functionality.
The NetApp Data ONTAP device module has been written and tested against NetApp Data ONTAP 8.2 Cluster-mode.
This module uses the NetApp Manageability SDK to manage various aspects of the NetApp Data ONTAP software.
The following items are supported:
- Creation, modification and deletion of volumes, including auto-increment, snapshot schedules and volume options.
- Creation, modification and deletion of QTrees.
- Creation, modification and deletion of NFS Exports, including NFS export security.
- Creation, modification and deletion of users, groups and roles.
- Creation, modification and deletion of Quotas.
- Creation of snapmirror relationships.
- Creation of snapmirror schedules.
Because we can not directly install Puppet on the NetApp Data ONTAP operating
system, it must be managed through an intermediate proxy system running puppet device
. The requirements for the proxy system are:
- Puppet 3.7 or greater
- NetApp Manageability SDK Ruby libraries
- Faraday gem
The proxy system must be able to connect to the Puppet master (default port of 8140) and to the NetApp Data ONTAP (default port of 443).
Due to licensing, you must download the NetApp Manageability SDK separately. The NetApp Ruby libraries are contained within the NetApp Manageability SDK, which is available for download from NetApp NOW.
Please note that you need a NetApp NOW account to download the SDK.
Once you have downloaded and extracted the SDK, the Ruby SDK libraries must be copied into the module:
$ cp netapp-manageability-sdk-5.*/lib/ruby/NetApp/*.rb [module dir]/netapp/lib/puppet/netapp_sdk/
To configure a Data ONTAP device, you must create a proxy system
able to run puppet device
and have a device.conf file that refers to the
NetApp ONTAP system or vserver. Refer to the device.conf man
page
for information on the format of device.conf.
The netapp module can manage two different kinds of devices: Data ONTAP cluster
operating system and Data ONTAP cluster vservers. The device type
of the
device.conf entry is always netapp
.
For example, if you had a Data ONTAP operating system with the node management interface addressable by the DNS name of ontap01.example.com and credentials of admin & netapp123, the device.conf entry would be:
[ontap01.example.com]
type netapp
url https://admin:[email protected]
Note: The device certname must match the hostname of the node.
You can also specify a virtual server to operate on by providing the connection information for a physical system which is configured with the vserver and specify a path in the url that represents the name of your vserver. For example, if the above Data ONTAP node ontap01 is configured with a vserver called "vserver01," the device entry could be:
[vserver01.example.com]
type netapp
url https://admin:[email protected]/vserver01
Note: The device certname does not need to match the hostname of the node as with a system device entry.
You can place the device entries in the default ${confdir}/device.conf
file
or create a separate config file for each device. For example, the above examples could
go in ${confdir}/device/ontap01.example.com.conf
and
${confdir}/device/vserver01.example.com.conf
. Device configurations in separate files must be specified by puppet device --deviceconfig /path/to/device-file.conf
to be used by puppet device
run.
Continuing from the example in Device Proxy System Setup, we can define a node definition for ontap01.example.com to create a vserver with an aggregate of 6 disks and a LIF:
node 'ontap01.example.com' {
netapp_aggregate { 'aggr1':
ensure => present,
diskcount => '6',
}
netapp_vserver { 'vserver01':
ensure => present,
rootvol => 'vserver01_root',
rootvolaggr => 'aggr1',
rootvolsecstyle => 'unix',
}
netapp_lif { 'vserver01_lif':
ensure => present,
homeport => 'e0c',
homenode => 'ontap01',
address => '10.0.207.5',
vserver => 'vserver01',
netmask => '255.255.255.0',
dataprotocols => ['nfs'],
}
}
Next we should create a node definition for the vserver with a volume that has export policies for NFS, and a qtree on the volume:
node 'vserver01.example.com' {
netapp_export_policy { 'nfs_exports':
ensure => present,
}
netapp_export_rule { 'nfs_exports:1':
ensure => present,
clientmatch => '10.0.0.0/8',
protocol => ['nfs'],
superusersecurity => 'none',
rorule => ['sys','none'],
rwrule => ['sys','none'],
}
netapp_volume { 'vserver01_root':
exportpolicy => 'nfs_exports',
}
netapp_volume { 'nfsvol':
ensure => present,
aggregate => 'aggr1',
initsize => '200g',
exportpolicy => 'nfs_exports',
junctionpath => '/nfsvol',
}
netapp_qtree { 'qtree1':
ensure => present,
volume => 'nfsvol',
}
netapp_nfs { 'vserver01':
ensure => present,
state => 'on',
v3 => 'disabled',
v40 => 'enabled',
}
}
If the device configuration are both in $confdir/device.conf
, they can now be
configured by running puppet device --verbose --user=root
.
If the device configurations are is separate files, you can use the following command to run puppet against a single device at a time:
puppet device --verbose --user=root --deviceconfig /etc/puppet/device/ontap01.example.com.conf
None as of this first release. Common operations may be encapsulated in defined resource types.
netapp_aggregate
netapp_cluster_id
netapp_cluster_peer
netapp_export_policy
netapp_export_rule
netapp_group
netapp_ldap_client
netapp_license
netapp_lif
netapp_lun
netapp_lun_map
netapp_nfs
netapp_notify
netapp_qtree
netapp_quota
netapp_role
netapp_security_login
netapp_security_login_role
netapp_snapmirror
netapp_snapmirror_schedule
netapp_user
netapp_volume
netapp_vserver
netapp_vserver_option
netapp_vserver_sis_config
Manage Netapp Aggregate creation, modification and deletion. [Family: cluster]
All parameters, except where otherwise noted, are optional.
The indirect block format for the aggregate. Default value: '64_bit'.
Valid values are 64_bit
, 32_bit
.
Aggregate checksum style. Default value: 'block'.
Valid values are advanced_zoned
, block
.
Number of disks to place in the aggregate, including parity disks.
Disk size with unit to assign to aggregate.
Disk types to use with aggregate. Only required when multiple disk types are connected.
Valid values are ATA
, BSAS
, EATA
, FCAL
, FSAS
, LUN
, MSATA
, SAS
, SATA
, SCSI
, SSD
, XATA
, XSAS
.
The basic state that the resource should be in.
Valid values are present
, absent
.
How should Data ONTAP add disks to raidgroups.
Valid values are last
, one
, new
, all
.
Should the aggregate be mirrored (have two plexes). Defaults to false.
Valid values are true
, false
.
The aggregate name
Target nodes to create aggregate. May be an array.
Maximum number of disks in each RAID group in aggregate.
Valid values are between 2 and 28
Raid type to use in the new aggregate. Default: raid4.
Valid values are raid4
, raid_dp
.
The aggregate state. Default value: 'online'.
Valid values are online
, offline
.
Should the new aggregate be striped? Default: not_striped.
Valid values are striped
, not_striped
.
Manage Netapp Cluster ID. [Family: cluster]
The cluster contact
The basic property that the resource should be in.
Valid values are present
, absent
.
The cluster location
The cluster name
Manage Netapp Cluster Peering. [Family: cluster]
The basic property that the resource should be in.
Valid values are present
, absent
.
The cluster peer name. Must match the remote cluster name.
Cluster peer password.
Cluster peer address array
Cluster operation timeout. Must be between 25 and 180. Defaults to: 25.
Cluster peer username.
Manage Netapp CMode Export Policy creation and deletion. [Family: vserver]
The basic property that the resource should be in.
Valid values are present
, absent
.
The export policy name.
Manage Netapp CMode Export rule creation, modification and deletion. [Family: vserver]
Should the NFS server allow creation of devices. Defaults to true.
Valid values are true
, false
.
Should the NFS server allow setuid. Defaults to true.
Valid values are true
, false
.
User name or ID to map anonymous users to. Defaults to 65534.
Required. Client match specification for the export rule. May take an fqdn, IP address, IP hyphenated range, or CIDR notation.
The basic state that the resource should be in.
Valid values are present
, absent
.
Change ownership mode. Defaults to 'restricted'.
Valid values are restricted
, unrestricted
.
The export policy name and index. Must take the form of policy_name:rule_number
where the rule number is an integer and the policy name is an existing export policy.
Ignore/Fail Unix security operations on NTFS volumes. Defaults to 'fail'.
Valid values are ignore
, fail
.
Client access protocol. Defaults to 'any'.
Valid values are any
, nfs2
, nfs3
, nfs
, cifs
, nfs4
, flexcache
.
Property to configure read only rules. Defaults to 'any'.
Valid values are any
, none
, never
, never
, krb5
, ntlm
, sys
, spinauth
.
Property to configure read write rules. Defaults to 'any'.
Valid values are any
, none
, never
, never
, krb5
, ntlm
, sys
, spinauth
.
Superuser security flavor. Defaults to 'any'.
Valid values are any
, none
, never
, never
, krb5
, ntlm
, sys
, spinauth
.
Manage Netapp Group creation, modification and deletion.
Group comment
The basic property that the resource should be in.
Valid values are present
, absent
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The group name.
List of roles for this group. Comma separate multiple values.
Manage Netapp initiator groups. [Family: vserver]
Namevar: If omitted, this parameter's value defaults to the resource's title.
Initiator group name.
Forcibly remove the initiator even if there are existing LUNs mapped to this initiator group. Best practice is to attempt to unmap all the luns associated with a group before removing the initiator. Default to false
Initiator group type.
Valid values are fcp
, iscsi
, mixed
.
An array of initiator WWPNs or aliases to be members of the initiator group.
OS type of the initiators within the group. The os type applies to all initiators within the group and governs the finer details of SCSI protocol interaction with these initiators. Required.
Valid values are solaris
, windows
, hpux
, aix
, linux
, netware
, vmware
, openvms
, xen
, hyper_v
.
The name of the portset to which the igroup should be bound. A value of false
will unbind the portset.
Valid values are a string or false
Manage Netapp ISCSI service. There may only ever be one of these declared per VServer. [Family: vserver]
Namevar: If omitted, this parameter's value defaults to the resource's title.
ISCSI service SVM.
ISCSI WWPN alias. May be any string that is a valid ISCSI target WWPN.
ISCSI service state.
Valid values are on
, off
.
Manage Netapp ISCSI initiator (client) authentication. [Family: vserver]
Namevar: If omitted, this parameter's value defaults to the resource's title.
ISCSI initiator name.
ISCSI initiator authentication type.
Valid values are chap
, none
, deny
.
ISCSI radius CHAP setting.
Valid values are true
, false
.
ISCSI initiator inbound CHAP username.
ISCSI initiator inbound CHAP password.
Valid values are 12-16 hexidecimal digits.
ISCSI initiator outbound CHAP username.
ISCSI initiator outbound CHAP password.
Valid values are 12-16 hexidecimal digits.
Manage Netapp Licenses. Only supported by ONTAP 8.2 and newer. [Family: cluster] This allows the removal or addition of a license. eg netapp_license { 'snaprestore' : ensure => present, codes => "secret license code", }
(Namevar:) Package Possible values: base - Cluster Base License, nfs - NFS License, cifs - CIFS License, iscsi - iSCSI License, fcp - FCP License, snaprestore - SnapRestore License, snapmirror - SnapMirror License, flexclone - FlexClone License, snapvault - SnapVault License, snaplock - SnapLock License, snapmanagersuite - SnapManagerSuite License, snapprotectapps - SnapProtectApp License, v_storageattach - Virtual Attached Storage License
The license code to be added
The basic property that the resource should be in.
Valid values are present
, absent
.
Manage Netapp LDAP client configuration for the cluster. [Family: vserver]
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The name of the LDAP client configuration.
The basic property that the resource should be in.
Valid values are present
, absent
.
The Active Directory Domain Name for this LDAP configuration. The option is ONLY applicable for configurations using Active Directory LDAP servers.The Active Directory Domain Name for this LDAP configuration. The option is ONLY applicable for configurations using Active Directory LDAP servers.
Allows the use of SSL for the TLS Handshake Protocol over the LDAP connections. The default value is false.
Indicates the starting point for searches within the LDAP directory tree. If omitted, searches will start at the root of the directory tree.
This indicates the scope for LDAP search. If omitted, this parameter defaults to 'subtree'. Possible values: base - Searches only the base directory entry, onelevel - Searches the immediate subordinates of the base directory entry, subtree - Searches the base directory entry and all its subordinates
If set, the cluster will use the CIFS server's credentials to bind to the LDAP server. If omitted, this parameter defaults to 'true' if the configuration uses Active Directory LDAP and defaults to 'false' otherwise.
The Bind Distinguished Name (DN) is the LDAP identity used during the authentication process by the clients. This is required if the LDAP server does not support anonymous binds. This field is not used if 'bind-as-cfs-server' is set to 'true'. Example : cn=username,cn=Users,dc=example,dc=com
The password to be used with the bind-dn.
The Group Distinguished Name (DN), if specified, is used as the starting point in the LDAP directory tree for group lookups. If not specified, group lookups will start at the base-dn.
This indicates the scope for LDAP search when doing group lookups. Possible values: base - Searches only the base directory entry, onelevel - Searches the immediate subordinates of the base directory entry, subtree - Searches the base directory entry and all its subordinates
This indicates whether netgroup.byhost map should be queried for lookups
The minimum authentication level that can be used to authenticate with the LDAP server. If omitted, this parameter defaults to 'sasl'. Possible values: anonymous - Anonymous bind, simple - Simple bind, sasl - Simple Authentication and Security Layer (SASL) bind
The Netgroup Distinguished Name (DN), if specified, is used as the starting point in the LDAP directory tree for netgroup byhost lookups. If not specified, netgroup byhost lookups will start at the base-dn.
This indicates the scope for LDAP search when doing netgroup byhost lookups. Possible values: base - Searches only the base directory entry, onelevel - Searches the immediate subordinates of the base directory entry, subtree - Searches the base directory entry and all its subordinates
The Netgroup Distinguished Name (DN), if specified, is used as the starting point in the LDAP directory tree for netgroup lookups. If not specified, netgroup lookups will start at the base-dn.
This indicates the scope for LDAP search when doing netgroup lookups. Possible values: base - Searches only the base directory entry, onelevel - Searches the immediate subordinates of the base directory entry, subtree - Searches the base directory entry and all its subordinates
Preferred Active Directory (AD) Domain controllers to use for this configuration. This option is ONLY applicable for configurations using Active Directory LDAP servers
Maximum time in seconds to wait for a query response from the LDAP server. The default for this parameter is 3 seconds.
LDAP schema to use for this configuration.
List of LDAP Server IP addresses to use for this configuration. The option is NOT applicable for configurations using Active Directory LDAP servers.
The TCP port on the LDAP server to use for this configuration. If omitted, this parameter defaults to 389.
This indicates if start_tls will be used over LDAP connections.
The User Distinguished Name (DN), if specified, is used as the starting point in the LDAP directory tree for user lookups. If this parameter is omitted, user lookups will start at the base-dn.
This indicates the scope for LDAP search when doing user lookups. Possible values: base - Searches only the base directory entry, onelevel - Searches the immediate subordinates of the base directory entry, subtree - Searches the base directory entry and all its subordinates
Manage Netapp Logical Inteface (LIF) creation, modification and deletion. [Family: cluster]
LIF IP address. Required
LIF administratative status. Defaults to: 'up'.
Valid values are up
, down
.
LIF comment.
LIF data protocols.
Valid values are nfs
, cifs
, iscsi
, fcp
, fcache
, none
.
LIF dns domain name.
The basic property that the resource should be in.
Valid values are present
, absent
.
LIF failover group name.
LIF failover policy. Defaults to: 'nextavail'.
Valid values are nextavail
, priority
, disabled
.
LIF firewall policy. Default is based on the port role.
Valid values are mgmt
, cluster
, intercluster
, data
.
Required. LIF home node.
Required. LIF home port.
Namevar: If omitted, this parameter's value defaults to the resource's title. LIF name.
Should the LIF revert to its home node. Defaults to: false
.
Valid values are true
, false
.
LIF netmask. Required if netmasklength
is not specified.
LIF netmask length. Required if netmask
is not specified.
LIF Role. Defaults to: 'data'.
Valid values are undef
, cluster
, data
, node_mgmt
, intercluster
, cluster_mgmt
.
LIF Routing group. Valid format is {dcn}{ip address}/{subnet}.
Whether the failover group should be automatically created. Defaults to: 'disabled'.
Valid values are disabled
, enabled
, system_defined
.
Required. LIF Vserver name.
Manage Netap Lun creation, modification and deletion. [Family: vserver]
The basic property that the resource should be in.
Valid values are present
, absent
.
Lun class. Default value = 'regular'. Possible values: 'regular', 'protectedendpoint', 'vvol'.
Valid values are regular
, protectedendpoint
, vvol
.
Lun OS Type. Defaults to 'image'. Possible values: 'image', 'aix', 'hpux', 'hyper_v', 'linux', 'netware', 'openvms', 'solaris', 'solaris_efi', 'vmware', 'windows', 'windows_2008', 'windows_gpt'
Valid values are image
, aix
, hpux
, hyper_v
, linux
, netware
, openvms
, solaris
, solaris_efi
, vmware
, windows
, windows_2008
, windows_gpt
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
Lun path
Lun prefix stream size in bytes. Default value is based on ostype. Not required for 'image' ostype. Must be a multiple of 512 bytes.
QOS Policy group
Lun size. Can either be specified in bytes, or specify one of the following size units: [mgt].
Enable Lun space reservation? Defaults to true.
Valid values are true
, false
.
whether or not to force a resize, when shrinking the lun.
Valid values are true
, false
.
Lun state. Default value: 'online'. Possible values: 'online', 'offline'.
Valid values are online
, offline
.
Manage Netap Lun map creation and deletion. [Family: vserver]
The basic property that the resource should be in.
Valid values are present
, absent
.
Initiator group to map to.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
Lun map - Composite key of format {path}:{lun-id}.
Manage NetApp NFS service. [Family: vserver]
Namevar: If omitted, this parameter's value defaults to the resource's title. NFS service SVM. This resource can only be applied to vservers, so the title is redundant.
NFS Service State
Valid values are on
, off
.
Control NFS v3 access
Valid values are enabled
, disabled
.
Control NFS v4.0 access
Valid values are enabled
, disabled
.
Control NFS v4.1 access
Valid values are enabled
, disabled
.
Sends an arbitrary message to the agent run-time log.
The message to be sent to the log.
An arbitrary tag for your own reference; the name of the message.
Whether to show the full object path. Defaults to false.
Valid values are true
, false
.
Manage Netapp Qtree creation, modification and deletion. [Family: vserver]
The basic property that the resource should be in.
Valid values are present
, absent
.
The export policy with which the qtree is associated. (Note: Not yet implemented)
The qtree name.
Required.. The volume to create the qtree against.
Manage NetApp quota entries. Please note that NetApp identifies a quota entry uniquely by the type, target, volume, and qtree. This type on the other hand has to uniquely identify a quota entry only by its target. This means that you cannot manage two quota entries for the same user (username = quota-target) but for different trees. As a result this type is best at managing tree quotas
Example:
Limit qtree1 on vol1 to 10G
netapp_quota { '/vol/vol1/qtree1':
ensure => present,
type => 'tree',
volume => 'vol1',
disklimit => '10G',
}
Limit user bob to consume 2G on qtree1. Note that you cannot define multiple quotas for user bob:
netapp_quota { 'bob':
ensure => present,
type => 'user',
qtree => 'qtree1',
volume => 'vol1',
disklimit => '2048M',
}
Make sure the following restrictions apply in your environment before using this type:
- every quota target has to be unique
- quota entries must not contain any special characters that would require quotation
The amount of space that the target can consume, e.g. 100M
or 2G
. You can also specify absent to make sure there is no limit.
Valid values are absent
. Values can match /^[0-9]+[KMGT]$/i
.
The basic property that the resource should be in.
Valid values are present
, absent
.
The number of files that the target can have. You can also specify absent to make sure there is no limit.
Valid values are absent
. Values can match /^[0-9]+[KMGT]?$/i
.
The name of the quota target. Depending on the quota type this can be a pathname (e.g. /vol/vol1/qtree1
), a username, or a group
The qtree that the quota resides on. This is only relevant for user
and group
quotas
The amount of space the target has to consume before a message is logged. You can also specify absent to make sure there is no limit.
Valid values are absent
. Values can match /^[0-9]+[KMGT]$/i
.
The number of files the target has to own before a message is logged. You can also specify absent to make sure there is no limit
Valid values are absent
. Values can match /^[0-9]+[KMGT]?$/i
.
The amount of disk space the target has to consume before a message is logged. Set to absent to make sure the treshold is unlimited
Valid values are absent
. Values can match /^[0-9]+[KMGT]$/i
.
The type of the quota. You can define tree
, user
or group
here
Valid values are tree
, user
, group
.
The name of the volume the quota resides on
Values can match /^\w+$/
.
Manage Netapp Role creation, modification and deletion. [Family: cluster]
List of capabilities for this role. Comma separate multiple values.
Role comment
The basic property that the resource should be in.
Valid values are present
, absent
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The role name.
Manage Netapp sis policies. [Family: vserver]
The type of policy.
Valid values are threshold
, scheduled
.
Job schedule name. E.g., 'daily'.
Job duration in hours.
Manage whether the sis policy is enabled.
Valid values are true
, false
, yes
, no
, enabled
, disabled
Comment for the policy.
QoS policy name. E.g., 'best_effort'
Percentage at which the changelog will be processed for a threshold type of policy, tested once each hour
A user account associated with the specified application and authentication method. A new user account can be created with user name as the Active Directory group name. This user account gives access to users belonging to the specified Active Directory group. [Family: cluster]
Comments for the user account. The length of comment should be less than or equal to 128 charaters.
The basic property that the resource should be in.
Valid values are present
, absent
.
Whether the login is locked'.
The valid values for are 'true' or 'false'.
(Namevar: If omitted, this parameter's value defaults to the resource's title.) A composite key made up from application:authentication_method:username:vserver
eg ssh:password:vsadmin:vserver01
Password for the user account. This is ignored for creating snmp users. This is required for creating non-snmp users.
Required. The default value is 'admin' for Admin vserver and 'vsadmin' for data vserver. This field is required.
Manages a login role. [Family: cluster]
Access level for the role. Possible values: 'none', 'readonly', 'all'. The default value is 'all'.
The basic property that the resource should be in.
Valid values are present
, absent
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.) A composite key made up from command_directory_name:role_name:vserver
eg ssh:password:vsadmin:vserver01
A query for the role. The query must apply to the specified command or directory name. Example: The command is 'volume show' and the query is '-volume vol1'. The query is applied to the command resulting in populating only the volumes with name vol1.
Manage Netapp Snapmirror creation, modification and deletion. [Family: cluster, vserver]
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The destination location.
The destination snapshot.
Netapp Snapmirror resource state. Valid values are: present, absent.
Valid values are present
, absent
.
The max transfer rate, in KB/s. Defaults to unlimited.
Specifies the type of the SnapMirror relationship. An extended data protection relationship with a policy of type vault is equivalent to a 'vault' relationship. On Data ONTAP 8.3.1 or later, in the case of a Vserver SnapMirror relationship the type of the relationship is always data_protection. Possible values: data_protection , load_sharing , vault , restore , transition_data_protection , extended_data_protection
The source location.
The source snapshot name
Manage Netapp Snapmirror schedule creation, modification and deletion.
The connection mode to use between source and destination.
Valid values are inet
, inet6
.
The days of month for schedule to be set. Can be single value between 1 and 31, comma seperated list (1,7,14), range (2-10), range with divider (1-30/7), * to match all, or - to match none.
The days of week for schedule to be set. Can be single value between 0 and 6, inclusive, with 0 being Sunday, or must be name of the day (e.g. Tuesday), comma sepeated list (1,3,5), range (2-5), * to match all, or - to match none.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The destination location.
Netapp Snapmirror schedule resource state. Valid values are: present, absent.
Valid values are present
, absent
.
The hour(s) in the day for schedule to be set. Can be single value between 1 and 24, comma seperated list (1,7,14), range (2-10), range with divider (1-24/3), * to match all, or - to match none.
The max transfer rate, in KB/s. Defaults to unlimited.
The minutes in the hour for schedule to be set. Can be single value between 0 and 59, comma seperated list (1,7,14), range (2-10), range with divider (1-59/3), * to match all, or - to match none.
The restart mode to use when transfer interrupted. Allowed values are: always, never and restart.
Valid values are always
, never
, default
.
The source location.
Manage Netapp User creation, modification and deletion.
User comment
The basic property that the resource should be in.
Valid values are present
, absent
.
The user full name.
List of groups for this user account. Comma separate multiple values.
Number of days that this user's password can be active before the user must change it. Default value is 2^31-1 days.
Number of days that this user's password must be active before the user can change it. Default value is 0.
The user password. Minimum length is 8 characters, must contain at-least one number.
Status of user account. Valid values are: enabled, disabled and expired. Cannot be modified via API.
Valid values are enabled
, disabled
, expired
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.)
The user username.
Manage Netapp Volume creation, modification and deletion. [Family: vserver]
Required.. The aggregate this volume should be created in.
Whether volume autosize should be grow, grow/shrink, or off.
Valid values are off
, grow
, grow_shrink
.
The basic state that the resource should be in.
Valid values are present
, absent
.
The export policy with which the volume is associated.
The UNIX group ID for the volume.
The initial volume size. Required. Valid format is /[0-9]+[kmgt]/.
The fully-qualified pathname in the owning vserver's namespace at which a volume is mounted.
Valid values are absolute file paths or false
.
The language code this volume should use.
Valid values are C
, ar
, cs
, da
, de
, en
, en_US
, es
, fi
, fr
, he
, hr
, hu
, it
, ja
, ja_v1
, ko
, no
, nl
, pl
, pt
, ro
, ru
, sk
, sl
, sv
, tr
, zh
, zh_TW
.
The volume name. Valid characters are a-z, 1-9 & underscore.
The volume options hash. Key/value pairs are configured via volume-option-info. Only valid in vserver context.
Example:
netapp_volume { 'nfsvol':
ensure => 'present',
autosize => 'off',
exportpolicy => 'nfs_exports',
initsize => '2g',
junctionpath => '/nfsvol',
state => 'online',
options => {
'actual_guarantee' => 'volume',
'convert_ucode' => 'on',
'create_ucode' => 'on',
'effective_guarantee' => 'volume',
'extent' => 'off',
'fractional_reserve' => '100',
'fs_size_fixed' => 'off',
'guarantee' => 'volume',
'ignore_inconsistent' => 'off',
'max_write_alloc_blocks' => '0',
'maxdirsize' => '52346',
'minra' => 'off',
'no_atime_update' => 'off',
'no_i2p' => 'off',
'nosnap' => 'off',
'nosnapdir' => 'off',
'nvfail' => 'off',
'read_realloc' => 'off',
'root' => 'false',
'schedsnapname' => 'create_time',
'snapmirrored' => 'off',
'snapshot_clone_dependency' => 'off',
'try_first' => 'volu me_grow',
},
}
snapreserve => '5',
snapschedule => {'days' => '2', 'hours' => '6', 'minutes' => '0', 'weeks' => '1', 'which-hours' => '0:05, 1:05, 2:05, 3:05, 4:05, 5:05, 6:05, 7:05, 8:05, 9:05, 10:05, 11:05, 12:05, 13:05, 14:05, 15:05,
16:05, 17:05, 18:05, 19:05, 20:05, 21:05, 22:05, 23:05', 'which-minutes' => ''},
The percentage of space to reserve for snapshots.
The volume snapshot schedule, in a hash format. Valid keys are: 'minutes', 'hours', 'days', 'weeks', 'which-hours', 'which-minutes'.
Example:
netapp_volume { 'nfsvol':
ensure => 'present',
autosize => 'off',
exportpolicy => 'nfs_exports',
initsize => '2g',
junctionpath => '/nfsvol',
state => 'online',
snapreserve => '5',
snapschedule => {
'days' => '2',
'hours' => '6',
'minutes' => '0',
'weeks' => '1',
'which-hours' => '0:05, 12:05',
'which-minutes' => '',
},
}
The space reservation mode.
Valid values are none
, file
, volume
.
The volume state.
Valid values are online
, offline
, restricted
.
Unix permission bits in octal string format.It's similar to Unix style permission bits: In Data ONTAP 7-mode, the default setting of '0755' gives read/write/execute permissions to owner and read/execute to group and other users. In Data ONTAP Cluster-Mode, for security style 'mixed' or 'unix', the default setting of '0755' gives read/write/execute permissions to owner and read/execute permissions to group and other users. For security style 'ntfs', the default setting of '0000' gives no permissions to owner, group and other users. It consists of 4 octal digits derived by adding up bits 4, 2 and 1. Omitted digits are assumed to be zeros. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. The second digit selects permission for the owner of the file: read (4), write (2) and execute (1); the third selects permissions for other users in the same group; the fourth for other users not in the group.
The UNIX user ID for the volume.
The type of the volume to be created. Possible values: rw - read-write volume (default setting), ls - load-sharing volume, dp - data-protection volume, dc - data-cache volume (FlexCache)
Manage Netapp Vserver creation, modification and deletion. [Family: cluster, vserver]
Vserver aggregate list. May be an array.
Vserver allowed protocols.
Valid values are nfs
, cifs
, fcp
, iscsi
, ndmpd
.
Vserver comment.
IPspace name.
The basic property that the resource should be in.
Valid values are present
, absent
.
Vserver language. Defaults to c.UTF-8
Valid values are c
, c.UTF-8
, ar
, cs
, da
, de
, en
, en_us
, es
, fi
, fr
, he
, hr
, hu
, it
, ja
, ja_v1
, ja_jp.pck
, ja_jp.932
, ja_jp.pck_v2
, ko
, no
, nl
, pl
, pt
, ro
, ru
, sk
, sl
, sv
, tr
, zh
, zh.gbk
, zh_tw
.
Vserver maximum allowed volumes.
The vserver name
Vserver name mapping switch. Defaults to 'file'.
Valid values are file
, ldap
.
Vserver name server switch.
Valid values are file
, ldap
, nis
.
Vserver quota policy.
Required. The vserver root volume.
Required. Vserver root volume aggregate.
Required. Vserver root volume security style.
Valid values are unix
, ntfs
, mixed
, unified
.
Vserver snapshot policy.
The vserver state.
Valid values are stopped
, running
.
Manage Netapp Vserver option modification. [Family: cluster, vserver]
The basic property that the resource should be in.
Valid values are present
, absent
.
The vserver option name.
The vserver option value.
Manage Netapp Vserver sis config modification. [Family: vserver]
Enable compression on the sis volume.
Valid options: true
, false
.
Enable sis on a volume.
Valid options: true
, false
.
The basic property that the resource should be in.
Valid values are present
, absent
.
Enables file level incompressible data detection and quick check incompressible data detection for large files.
Valid options: true
, false
.
Enable inline compression on the sis volume.
Valid options: true
, false
.
(Namevar: If omitted, this parameter's value defaults to the resource's title.) The full path of the sis volume, /vol/<vol_name>
.
The sis policy name to be attached to the volume.
Quick check file size for Incompressible Data Detection. Accepts integers
Values can match /^\d+$/
.
The schedule string for the sis operation.
Accepts the following formats:
day_list[@hour_list]
hour_list[@day_list]
-
auto
manual
The following items are yet to be implemented:
- Data Fabric Manager support
- Support adding/deleting/modifying cifs shares
- LDAP and/or AD configuration
- QA remaining resources
The following section applies to developers of this module only.
You will need to install the NetApp Manageability SDK Ruby libraries for most of the tests to work.
How to obtain these files is detailed in the NetApp Manageability SDK section above.