Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
- Puppet >= 5.0.0 < 7.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'treydock-gpfs', '0.2.1'
Learn more about managing modules with a PuppetfileDocumentation
puppet-module-gpfs
Table of Contents
- Description
- Setup - The basics of getting started with gpfs
- Usage - Configuration options and additional functionality
- Reference - Module reference
Description
This module will manage GPFS.
Setup
What gpfs affects
At this time the module is capable of installing GPFS packages and managing ISKLM configurations as well as SSH key authorization for client root logins.
Setup Requirements
For systems with yum
package manager using Puppet >= 6.0 there is a dependency on puppetlabs/yumrepo_core.
Usage
The class to include is based on a host's role:
gpfs::client
- GPFS clientsgpfs::server
- GPFS NSDsgpfs::ces
- GPFS CES nodesgpfs::gui
- GPFS GUI nodes
The class gpfs
is not intended to be included directly but instead configured via Hiera
NOTE: All usage examples will assume you're using Hiera to define data.
Repo configuration
The following is an example of configuring central YUM repository that hosts GPFS RPMs.
gpfs::repo_baseurl: 'https://repo.example.com/gpfs/4/$releasever/'
Clients
The following example will install packages necessary for GPFS client, configure SSH keys and enable ISKLM encryption.
gpfs_keystore_password: >
ENC[...]
gpfs::client::ssh_authorized_keys:
'root@gpfs':
key: 'AAAAB3Nza=='
gpfs::client::rkms:
'ISKLM_srv':
type: 'ISKLM'
kmip_server_uris:
- 'tls://isklm01:5696'
- 'tls://isklm02:5696'
key_store: '/var/mmfs/etc/RKMcerts/ISKLM.gpfs'
key_store_source: 'puppet:///modules/profile/gpfs/ISKLM.gpfs'
passphrase: "%{lookup('gpfs_keystore_password')}"
client_cert_label: 'gpfs'
tenant_name: 'GS_ISKLM'
Filesets and Fileset Quotas
This module provides native types for managing GPFS filesets and GPFS quotas. Each defaults to the shell
provider but there is also a rest_v2
provider.
NOTE: The rest_v2
provider is no longer tested or maintained
NOTE: The gpfs_fileset_quota
type is capable of managing user and group quotas but only fileset quotas have been tested in production.
Create a fileset and fileset quota:
gpfs_fileset { 'test':
ensure => 'present',
filesystem => 'project',
path => '/gpfs/project/test',
owner => 'user1:group1',
permissions => '0770',
max_num_inodes => 1000000,
alloc_inodes => 1000000,
}
gpfs_fileset_quota { 'test':
filesystem => 'project',
block_soft_limit => '5T',
block_hard_limit => '5T',
files_soft_limit => 1000000,
files_hard_limit => 1000000,
}
Reference
Reference
Table of Contents
Classes
Public Classes
gpfs
: base GPFS classgpfs::ces
: GPFS CES classgpfs::client
: GPFS client classgpfs::gui
: GPFS GUI classgpfs::server
: GPFS server class
Private Classes
gpfs::ces::config
: Manage GPFS CES configgpfs::ces::install
: Manage GPFS CES installgpfs::client::config
: Manage GPFS client configgpfs::client::install
: Manage GPFS client installgpfs::gui::config
: Manage GPFS GUI configgpfs::gui::install
: Manage GPFS GUI installgpfs::gui::service
: Manage GPFS GUI servicesgpfs::install
: Manage GPFS installsgpfs::repo
: Manage GPFS repogpfs::server::config
: Manage GPFS NSD configgpfs::server::install
: Manage GPFS NSD install
Defined types
gpfs::client::rkm
: Manage GPFS client ISKLM configuration
Resource types
gpfs_config
: GPFS configgpfs_fileset
: Manage a GPFS filesetgpfs_fileset_quota
: Set a GPFS fileset quotascalemgmt_config
: scalemgmt configscalemgmt_conn_validator
: Verify that a connection can be successfully established between a node and the scalemgmt server. Its primary use is as a precondition to pr
Classes
gpfs
base GPFS class
Examples
include ::gpfs
Parameters
The following parameters are available in the gpfs
class.
manage_repo
Data type: Boolean
Sets if GPFS repo should be managed
Default value: true
repo_baseurl
Data type: Optional[String]
The GPFS repo baseurl
Default value: undef
manage_packages
Data type: Boolean
Determines if GPFS packages should be managed
Default value: true
package_ensure
Data type: String
GPFS package ensure property
Default value: 'present'
packages
Data type: Array
GPFS base packages
Default value: [ "gpfs.gplbin-${facts['kernelrelease']}", 'gpfs.adv', 'gpfs.base', 'gpfs.crypto', 'gpfs.docs', 'gpfs.ext', 'gpfs.gpl', 'gpfs.gskit', 'gpfs.msg.en_US', ]
gpfs::ces
GPFS CES class
Examples
include ::gpfs::ces
Parameters
The following parameters are available in the gpfs::ces
class.
manage_packages
Data type: Boolean
Determines if GPFS CES packages should be managed
Default value: true
package_ensure
Data type: String
GPFS CES package ensure property
Default value: 'present'
packages
Data type: Array
GPFS CES packages
Default value: [ 'gpfs.java', 'gpfs.smb', 'nfs-ganesha', 'nfs-ganesha-gpfs', 'nfs-ganesha-utils', ]
gpfs::client
GPFS client class
Examples
include ::gpfs::client
Parameters
The following parameters are available in the gpfs::client
class.
manage_packages
Data type: Boolean
Determines if GPFS client packages should be managed
Default value: true
package_ensure
Data type: Any
GPFS client package ensure property
Default value: 'present'
packages
Data type: Any
GPFS client packages
Default value: []
manage_ssh_authorized_keys
Data type: Boolean
Determines if SSH authorized_keys should be managed
Default value: true
ssh_user
Data type: Any
SSH user for GPFS
Default value: 'root'
ssh_authorized_keys
Data type: Any
SSH authorized keys for NSDs
Default value: {}
rkms
Data type: Any
Hash to define gpfs::client::rkm resources
Default value: {}
gpfs::gui
GPFS GUI class
Examples
include ::gpfs::gui
Parameters
The following parameters are available in the gpfs::gui
class.
manage_packages
Data type: Boolean
Determines if GPFS GUI packages should be managed
Default value: true
package_ensure
Data type: String
GPFS GUI package ensure property
Default value: 'present'
packages
Data type: Array
GPFS GUI packages
Default value: [ 'gpfs.gui', ]
manage_firewall
Data type: Boolean
Determines if firewall should be managed
Default value: true
firewall_source
Data type: Optional[Variant[String, Array]]
Firewall source value
Default value: undef
gpfs::server
GPFS server class
Examples
include ::gpfs::server
Parameters
The following parameters are available in the gpfs::server
class.
manage_packages
Data type: Boolean
Determines if GPFS server packages should be managed
Default value: true
package_ensure
Data type: String
GPFS server package ensure property
Default value: 'present'
packages
Data type: Array
GPFS server packages
Default value: []
bin_paths
Data type: Array
Paths to add to PATH
Default value: ['/usr/lpp/mmfs/bin']
config_filesystems
Data type: Optional[Array]
Filesystems where filesets are managed by Puppet
Default value: undef
Defined types
gpfs::client::rkm
Manage GPFS client ISKLM configuration
Parameters
The following parameters are available in the gpfs::client::rkm
defined type.
rkm_id
Data type: Any
Default value: $name
type
Data type: Any
Default value: 'ISKLM'
kmip_server_uris
Data type: Array
Default value: []
key_store
Data type: Any
Default value: '/var/mmfs/etc/RKMcerts/ISKLM.proj2'
key_store_source
Data type: Any
Default value: undef
passphrase
Data type: Any
Default value: undef
client_cert_label
Data type: Any
Default value: undef
tenant_name
Data type: Any
Default value: undef
connection_timeout
Data type: Any
Default value: '5'
connection_attempts
Data type: Any
Default value: '3'
retry_sleep
Data type: Any
Default value: '50000'
order
Data type: Any
Default value: '10'
Resource types
gpfs_config
GPFS config
Parameters
The following parameters are available in the gpfs_config
type.
name
namevar
GPFS config
filesystems
Filesystems to manage
gpfs_fileset
Manage a GPFS fileset
Examples
Create test
GPFS fileset
gpfs_fileset { 'test':
filesystem => 'project',
path => '/gpfs/project/test',
owner => 'nobody:wheel',
permissions => '1770',
inode_space => 'new',
max_num_inodes => 1000000,
alloc_inodes => 1000000,
}
Properties
The following properties are available in the gpfs_fileset
type.
ensure
Valid values: present, absent
The basic property that the resource should be in.
Default value: present
path
The GPFS fileset path.
owner
Owner of GPFS fileset: user:group
max_num_inodes
Max number of inodes for fileset.
alloc_inodes
Allocated inodes for fileset.
Parameters
The following parameters are available in the gpfs_fileset
type.
name
namevar
The default namevar.
fileset
The GPFS fileset name.
filesystem
The GPFS filesystem name.
permissions
Permissions of fileset.
inode_space
inodeSpace of fileset.
Default value: new
new_statefile
Statefile that is created at root of a new fileset
gpfs_fileset_quota
Autorequires:
gpfs_fileset
- Puppet will autorequire thegpfs_fileset
resource defined infileset
property.
Examples
Add fileset quota to test
fileset.
gpfs_fileset_quota { 'test':
filesystem => 'project',
block_soft_limit => '5T',
block_hard_limit => '5T',
files_soft_limit => 1000000,
files_hard_limit => 1000000,
}
Properties
The following properties are available in the gpfs_fileset_quota
type.
ensure
Valid values: present, absent
The basic property that the resource should be in.
Default value: present
block_soft_limit
blockSoftLimit of quota
block_hard_limit
blockHardLimit of quota
files_soft_limit
filesSoftLimit of quota
files_hard_limit
filesHardLimit of quota
Parameters
The following parameters are available in the gpfs_fileset_quota
type.
name
namevar
The default namevar
filesystem
The GPFS filesystem name.
fileset
The GPFS fileset name.
object_name
The GPFS quota object name
type
Quota type
Default value: fileset
scalemgmt_config
scalemgmt config
Parameters
The following parameters are available in the scalemgmt_config
type.
name
namevar
scalemgmt config
base_url
Base URL of GPFS API
Default value: https://localhost:443/scalemgmt/
api_user
API user
Default value: admin
api_password
API password
Default value: admin001
scalemgmt_conn_validator
Verify that a connection can be successfully established between a node and the scalemgmt server. Its primary use is as a precondition to prevent configuration changes from being applied if the scalemgmt server cannot be reached, but it could potentially be used for other purposes such as monitoring.
Properties
The following properties are available in the scalemgmt_conn_validator
type.
ensure
Valid values: present, absent
Ensure
Default value: present
Parameters
The following parameters are available in the scalemgmt_conn_validator
type.
name
namevar
An arbitrary name used as the identity of the resource.
scalemgmt_server
The DNS name or IP address of the server where scalemgmt should be running.
Default value: localhost
scalemgmt_port
The port that the scalemgmt server should be listening on.
Default value: 443
api_user
API user name
Default value: admin
api_password
API password
Default value: admin001
test_url
URL to use for testing if the scalemgmt API is up
Default value: /scalemgmt/v2/info
timeout
The max number of seconds that the validator should wait before giving up and deciding that scalemgmt is not running; defaults to 30 seconds.
Default value: 30
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v0.2.1 (2019-12-16)
Fixed
v0.2.0 (2019-12-12)
Added
v0.1.4 (2019-10-11)
Fixed
v0.1.3 (2019-08-20)
Fixed
v0.1.2 (2019-08-14)
Fixed
v0.1.1 (2019-08-14)
Fixed
v0.1.0 (2019-08-14)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.13.0 <6.0.0)
- puppetlabs/concat (>= 4.0.0 <7.0.0)
- puppetlabs/firewall (>= 1.0.0 <3.0.0)
- puppet/logrotate (>= 3.0.0 <4.0.0)
- saz/sudo (>= 4.2.0 <7.0.0)