Version information
This version is compatible with:
- Puppet Enterprise 2018.1.x
- Puppet >= 5.5.0 < 6.0.0
Start using this module
Add this module to your Puppetfile:
mod 'cnafsd-storm', '3.2.0'
Learn more about managing modules with a PuppetfileDocumentation
StoRM puppet module
Table of Contents
Description
StoRM Puppet module allows administrators to configure StoRM services deployed on CentOS 7.
The supported services are:
- StoRM Backend
- StoRM Frontend
- StoRM WebDAV
- StoRM Globus GridFTP
Setup
StoRM Puppet module is available on puppet forge:
puppet module install cnafsd-storm
You can also build and install module from source code as follow:
git clone https://github.com/italiangrid/storm-puppet-module.git
cd storm-puppet-module
pdk build
puppet module install ./pkg/cnafsd-storm-*.tar.gz
Usage
This Puppet module allows site administrators to properly configure StoRM services on CentOS 7 platform. This module provides some classes related to the main components and also some utility classes those can be used to configure StoRM repositories, StoRM users, VO pool accounts, LCMAPS and storage directories.
Component classes:
Utility classes:
StoRM Backend class
Prerequisites: A MySQL or MariaDB server with StoRM databases must exist. Databases can be empty. If you want to use this module to install MySQL client and server and init databases, please read about StoRM database utility class.
The Backend class installs:
storm-backend-mp
and all the releated packages;storm-dynamic-info-provider
.
Then, the Backend class configures storm-backend-server
service by managing the following files:
/etc/storm/backend-server/storm.properties
/etc/storm/backend-server/namespace.xml
/etc/systemd/system/storm-backend-server.service.d/storm-backend-server.conf
/etc/systemd/system/storm-backend-server.service.d/filelimit.conf
and deploys StoRM databases. In addiction, this class configures and run storm-info-provider
by managing the following file:
/etc/storm/info-provider/storm-yaim-variables.conf
.
The whole list of StoRM Backend class parameters can be found here.
Example of StoRM Backend configuration:
class { 'storm::backend':
hostname => backend.test.example,
frontend_public_host => frontend.test.example,
transfer_protocols => ['file', 'gsiftp', 'webdav'],
xmlrpc_security_token => 'NS4kYAZuR65XJCq',
service_du_enabled => true,
srm_pool_members => [
{
'hostname' => frontend.test.example,
}
],
gsiftp_pool_members => [
{
'hostname' => gridftp.test.example,
},
],
webdav_pool_members => [
{
'hostname' => webdav.test.example,
},
],
storage_areas => [
{
'name' => 'dteam-disk',
'root_path' => '/storage/disk',
'access_points' => ['/disk'],
'vos' => ['dteam'],
'online_size' => 40,
},
{
'name' => 'dteam-tape',
'root_path' => '/storage/tape',
'access_points' => ['/tape'],
'vos' => ['dteam'],
'online_size' => 40,
'nearline_size' => 80,
'fs_type' => 'gpfs',
'storage_class' => 'T1D0',
},
],
}
Starting from Puppet module v2.0.0, the management of Storage Site Report has been improved.
Site administrators can add script and cron described in the how-to using a defined type storm::backend::storage_site_report
.
For example:
storm::backend::storage_site_report { 'storage-site-report':
report_path => '/storage/info/report.json', # the internal storage area path
minute => '*/20', # set cron's minute
}
Enable GPFS native libs on StoRM Backend
If you're running StoRM Backend on GPFS file system and you need to install the GPFS native libs, enable the installation through the Puppet module as follows:
class { 'storm::backend':
# ...
'install_native_libs_gpfs' => true,
# ...
}
In this case the storm-native-libs-gpfs library is added to the installed packages.
Enable HTTP as transfer protocol for SRM
To enable HTTP as transfer protocol for SRM prepare-to-get and prepare-to-put requests, you must add webdav
protocol to the list of your transfer_protocols and define at least one member for webdav_pool_members. You can re-define the default list of transfer protocols by adding your storm::backend::transfer_protocols variable and/or you can override this list by adding a specific transfer_protocols for each storage area:
class { 'storm::backend':
# ...
'webdav_pool_members' => [
{
'hostname' => webdav.test.example,
},
],
# defines the default list of transfer protocols for each storage area:
'transfer_protocols' => ['file', 'gsiftp', 'webdav'],
'storage_areas' => [
{
'name' => 'sa-http-enabled',
'root_path' => '/storage/sa-http-enabled',
'access_points' => ['/sa-http-enabled'],
'vos' => ['test.vo'],
'online_size' => 40,
},
{
'name' => 'sa-no-http-enabled',
'root_path' => '/storage/sa-no-http-enabled',
'access_points' => ['/sa-no-http-enabled'],
'vos' => ['test.vo'],
'online_size' => 40,
# disable webdav protocol for this storage area
'transfer_protocols' => ['file', 'gsiftp'],
},
# ...
],
# ...
}
The manifest.pp showed above includes the HTTP transfer protocol for all the storage area defined.
By default, storm::backend::transfer_protocols includes only file
and gsiftp
.
StoRM Frontend class
The StoRM Frontend class installs storm-frontend-mp
and all the releated packages and configures storm-frontend-server
service by managing the following files:
/etc/storm/frontend-server/storm-frontend-server.conf
/etc/sysconfig/storm-frontend-server
The whole list of StoRM Frontend class parameters can be found here.
Example of StoRM Frontend configuration:
class { 'storm::frontend':
be_xmlrpc_host => 'backend.test.example',
be_xmlrpc_token => 'NS4kYAZuR65XJCq',
db_host => 'backend.test.example',
db_user => 'storm',
db_passwd => 'storm',
}
StoRM WebDAV class
The StoRM WebDAV class installs storm-webdav
rpm and configures storm-webdav
service by managing the following files:
- the systemd override files
filelimit.conf
andstorm-webdav.conf
stored into/etc/systemd/system/storm-webdav.service.d
; - the storage areas property files stored into
/etc/storm/webdav/sa.d
(optional);
The whole list of StoRM Webdav class parameters can be found here.
Example of StoRM WebDAV configuration:
class { 'storm::webdav':
storage_areas => [
{
name => 'test.vo',
root_path => '/storage/test.vo',
access_points => ['/test.vo'],
vos => ['test.vo'],
},
{
name => 'test.vo.2',
root_path => '/storage/test.vo.2',
access_points => ['/test.vo.2', '/alias'],
vos => ['test.vo.2'],
authenticated_read_enabled => true,
},
],
hostnames => ['storm-webdav.test.example', 'alias-for-storm-webdav.test.example'],
}
Storage Areas can also be configured singularly by using the defined type storm::webdav::storage_area_file
. This strategy allows site administrators to keep their manifests unaware of the improvements on StoRM WebDAV code. For example, if a new property is added into Storage Area configuration files, you haven't to update your Puppet module and all the service configuration will continue working.
Example of Storage Areas configuration done with storm::webdav::storage_area_file
:
class { 'storm::webdav':
hostnames => ['storm-webdav.test.example', 'alias-for-storm-webdav.test.example'],
}
storm::webdav::storage_area_file { 'test.vo.properties':
source => '/path/to/my/test.vo.properties',
}
storm::webdav::storage_area_file { 'test.vo.2.properties':
source => '/path/to/my/test.vo.2.properties',
}
Starting from Puppet module v2.0.0, the management of application.yml file has been removed from storm::webdav class.
Site administrators can edit their own configuration files or use a defined type storm::webdav::application_file
to inject also one or more YAML files into the proper directory.
For example:
class { 'storm::webdav':
hostnames => ['storm-webdav.test.example', 'alias-for-storm-webdav.test.example'],
}
storm::webdav::application_file { 'application.yml':
source => '/path/to/my/application.yml',
}
storm::webdav::application_file { 'application-wlcg.yml':
source => '/path/to/my/application-wlcg.yml',
}
StoRM GridFTP class
The StoRM GridFTP class installs storm-globus-gridftp-mp
and configures storm-globus-gridftp
service by managing the following files:
/etc/grid-security/gridftp.conf
, the main configuration file;/etc/sysconfig/storm-globus-gridftp
, with the environment variables.
The whole list of StoRM GridFTP class parameters can be found here.
Examples of StoRM Gridftp configuration:
class { 'storm::gridftp':
redirect_lcmaps_log => true,
llgt_log_file => '/var/log/storm/storm-gridftp-lcmaps.log',
}
StoRM database class
The StoRM database utility class installs mariadb
server and releated rpms and configures mysql
service by managing the following files:
/etc/my.cnf.d/server.cnf
;/etc/systemd/system/mariadb.service.d/limits.conf
.
The whole list of StoRM Database class parameters can be found here.
Examples of StoRM Database usage:
class { 'storm::db':
root_password => 'supersupersecretword',
storm_password => 'supersecretword',
}
StoRM repo class
The StoRM repo utility class creates all the StoRM YUM repositories: stable, beta, nightly. By default, only stable repo is enabled. You can also add extra repositories to install.
The whole list of StoRM repo class parameters can be found here.
Examples of StoRM Repo usage:
class { 'storm::repo':
enabled => ['stable', 'beta'],
}
StoRM users class
The StoRM users utility class creates the default StoRM users and groups.
Use:
include storm::users
to create default scenario:
storm
group with id 1100edguser
group with id 1101storm
user with id 1100, member ofstorm
andedguser
groupsedguser
user with id 1101, member ofedguser
andstorm
groups
You can also customize and create your own users and groups as follow:
class { 'storm::users':
groups => {
infosys => {
gid => '996',
},
},
users => {
edguser => {
comment => 'Edguser user',
groups => [ edguser, infosys, storm, ],
uid => '995',
gid => '995',
home => '/home/edguser',
},
storm => {
comment => 'StoRM user',
groups => [ storm, edguser, ],
uid => '991',
gid => '991',
home => '/home/storm',
},
},
}
The whole list of StoRM repo class parameters can be found here.
Documentation
You can find all the info about module classes and parameters at:
Developers
Run tests with:
pdk test unit
Validate code with:
pdk validate
Limitations
It works only on RedHat CentOS 7 distribution.
Reference
Table of Contents
Classes
storm::backend
: StoRM Backend puppet modulestorm::backend::config
: StoRM Backend config classstorm::backend::configdb
: StoRM Backend DB config classstorm::backend::install
: StoRM Backend install classstorm::backend::service
: StoRM Backend service classstorm::db
: Install MariaDB server and client, create empty databases 'storm_db' and 'storm_be_ISAM', add storm user and all the necessary grants.storm::frontend
: StoRM Frontend puppet modulestorm::frontend::config
: StoRM Frontend config classstorm::frontend::install
: StoRM Frontend install classstorm::frontend::service
: StoRM Frontend service classstorm::gridftp
: StoRM GridFTP puppet modulestorm::gridftp::config
: StoRM GridFTP config classstorm::gridftp::install
: StoRM GridFTP install classstorm::gridftp::service
: StoRM GridFTP service classstorm::repo
: Choose which StoRM repository you want to intall and enable. Also a custom list of repository URL can be specified.storm::users
: StoRM accounts configurationstorm::webdav
: StoRM WebDAV puppet modulestorm::webdav::config
: StoRM WebDAV config classstorm::webdav::install
: StoRM WebDAV install classstorm::webdav::service
: StoRM WebDAV service class
Defined types
storm::backend::service_conf_file
: Starting from Puppet module v2.0.0, site administrators can inject one or more .conf files into/etc/systemd/system/storm-backend-server.service.d
directory.storm::backend::storage_site_report
: Starting from Puppet module v2.0.0, the management of Storage Site Report has been improved. Site administrators can add script and cron described in the how-tostorm::rootdir
: StoRM main storage area root directory defined resourcestorm::sarootdir
: StoRM Storage Area root directory defined resourcestorm::webdav::application_file
: Starting from Puppet module v2.0.0, the management of application.yml file has been removed from storm::webdav class. Site administrators can edit their own configuration files or use this defined type to inject one or more YAML files into the proper directory.storm::webdav::storage_area_file
: Storage Areas can be configured singularly by using this defined type. This strategy allows site administrators to keep their manifests unaware of the improvements on StoRM WebDAV code. For example, if a new property is added into Storage Area configuration files, you haven't to update your Puppet module and all the service configuration will continue working.
Data types
Storm::Backend::Acl
: The ACL type for storm-backend-serverStorm::Backend::AclMode
: The AclMode type for storm-backend-serverStorm::Backend::BalanceStrategy
: The BalanceStrategy type for storm-backend-serverStorm::Backend::Endpoint
: The Endpoint type for storm-backend-serverStorm::Backend::FileSystem
: The FileSystem type for storm-backend-serverStorm::Backend::FsDriver
: The FsDriver type for storm-backend-serverStorm::Backend::FsType
: The FsType type for storm-backend-serverStorm::Backend::Gsiftp
: The Gsiftp type for storm-backend-serverStorm::Backend::GsiftpPoolMember
: The GsiftpPoolMember type for storm-backend-serverStorm::Backend::Pool
: The Pool type for storm-backend-serverStorm::Backend::Quota
: The Quota type for storm-backend-serverStorm::Backend::Rfio
: The Rfio type for storm-backend-serverStorm::Backend::SrmPoolMember
: The SrmPoolMember type for storm-backend-serverStorm::Backend::StorageArea
: The storage area type for storm-backend-serverStorm::Backend::StorageClass
: The StorageClass type for storm-backend-serverStorm::Backend::TransferProtocol
: The TransferProtocol type for storm-backend-serverStorm::Backend::Webdav
: The WebDAV type for storm-backend-serverStorm::Backend::WebdavPoolMember
: The WebdavPoolMember type for storm-backend-serverStorm::Backend::Xroot
: The Xroot type for storm-backend-serverStorm::CustomRepo
: The storage area type for storm-webdavStorm::Webdav::StorageArea
: The storage area type for storm-webdav.
Classes
storm::backend
StoRM Backend puppet module
Examples
Example of usage
class { 'storm::backend':
hostname => 'backend.test.example',
db_username => 'storm',
db_password => 'bluemoon',
srm_pool_members => [
{
'hostname' => 'frontend.test.example',
}
],
gsiftp_pool_members => [
{
'hostname' => 'gridftp.test.example',
},
],
webdav_pool_members => [
{
'hostname' => 'webdav.test.example',
},
],
storage_areas => [
{
'name' => 'test.vo',
'root_path' => '/storage/test.vo',
'access_points' => ['/test.vo'],
'vos' => ['test.vo'],
'storage_class' => 'T0D1',
'online_size' => 4,
'transfer_protocols' => ['file', 'gsiftp', 'https'],
},
],
}
Parameters
The following parameters are available in the storm::backend
class.
hostname
Data type: String
StoRM Backend Fully Qualified Domain Name
Default value: $::fqdn
install_native_libs_gpfs
Data type: Boolean
Set this if you need to install storm-native-libs-gpfs. Default: false.
db_hostname
Data type: String
Fully Qualified Domain Name of database hostname. Default value: hostname
.
Default value: $hostname
db_username
Data type: String
The name of user used to connect to local database. Default: storm
db_password
Data type: String
Password for the user in db_storm_username
. Default: bluemoon
xroot_hostname
Data type: String
Root server (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration.
Default value: $hostname
xroot_port
Data type: Integer
Root server port (default value for all Storage Areas).
gsiftp_pool_balance_strategy
Data type: Storm::Backend::BalanceStrategy
Load balancing strategy for GridFTP server pool (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration. Available values: round-robin, smart-rr, random, weight. Default value: round-robin. See Storm::Backend::BalanceStrategy.
gsiftp_pool_members
Data type: Array[Storm::Backend::GsiftpPoolMember]
Array of Storm::Backend::GsiftpPoolMember. GridFTP servers pool list (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration.
webdav_pool_members
Data type: Array[Storm::Backend::WebdavPoolMember]
Array of Storm::Backend::WebdavPoolMember. WebDAV endpoints pool list (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration.
srm_pool_members
Data type: Array[Storm::Backend::SrmPoolMember]
Array of Storm::Backend::SrmPoolMember. Frontend endpoints pool list (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration.
transfer_protocols
Data type: Array[Storm::Backend::TransferProtocol]
List of supported (and published) transfer protocols (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration.
fs_type
Data type: Storm::Backend::FsType
File System Type (default value for all Storage Areas). Note: you may change the settings for each SA acting on its configuration. Available values: posixfs, gpfs and test. Default value: posixfs See Storm::Backend::FsType.
storage_areas
Data type: Array[Storm::Backend::StorageArea]
List of supported Storage Areas. Array of Storm::Backend::StorageArea.
frontend_public_host
Data type: String
StoRM Frontend service public host. It’s used by StoRM Info Provider to publish the SRM endpoint into the Resource BDII.
Default value: hostname
Default value: $hostname
frontend_port
Data type: Integer
StoRM Frontend service port. Default value: 8444
directory_automatic_creation
Data type: Boolean
Flag to enable automatic missing directory creation upon srmPrepareToPut requests. Default: false.
directory_writeperm
Data type: Boolean
Flag to enable directory write permission setting upon srmMkDir requests on created directories. Default: false.
rest_services_port
Data type: Integer
REST services port. Default value: 9998
rest_services_max_threads
Data type: Integer
REST services max active requests. Default: 100
rest_services_max_queue_size
Data type: Integer
REST services max queue size of accepted requests. Default: 1000
xmlrpc_unsecure_server_port
Data type: Integer
Port to listen on for incoming XML-RPC connections from Frontends(s). Default: 8080
xmlrpc_maxthread
Data type: Integer
Number of threads managing XML-RPC connection from Frontends(s). A well sized value for this parameter have to be at least equal to the sum of the number of working threads in all Frontends. Default: 100.
xmlrpc_max_queue_size
Data type: Integer
Max number of accepted and queued XML-RPC connection from Frontends(s). Default: 1000
xmlrpc_security_enabled
Data type: Boolean
Whether the backend will require a token to be present for accepting XML-RPC requests. Default: true.
xmlrpc_security_token
Data type: String
The token that the backend will require to be present for accepting XML-RPC requests. Mandatory if xmlrpc_security_enabled is true.
ptg_skip_acl_setup
Data type: Boolean
Skip ACL setup for PtG requests. Default: false.
pinlifetime_default
Data type: Integer
Default PinLifetime in seconds used for pinning files in case of srmPrepareToPut or srmPrepareToGet operation without any pinLifetime specified. Default: 259200.
pinlifetime_maximum
Data type: Integer
Maximum PinLifetime allowed in seconds. Default: 1814400.
sanity_check_enabled
Data type: Boolean
Enable/disable sanity checks during bootstrap phase. Default: true.
service_du_enabled
Data type: Boolean
Flag to enable disk usage service. Default: false.
service_du_delay
Data type: Integer
The initial delay before the service is started (seconds). Default: 60.
service_du_interval
Data type: Integer
The interval in seconds between successive run. Default: 360.
max_ls_entries
Data type: Integer
Maximum number of entries returned by an srmLs call. Since in case of recursive srmLs results can be in order of million, this prevent a server overload. Default: 500.
gc_pinnedfiles_cleaning_delay
Data type: Integer
Initial delay before starting the reserved space, JIT ACLs and pinned files garbage collection process, in seconds. Default: 10.
gc_pinnedfiles_cleaning_interval
Data type: Integer
Time interval in seconds between successive purging run. Default: 300.
gc_purge_enabled
Data type: Boolean
Enable the request garbage collector. Default: true.
gc_purge_interval
Data type: Integer
Time interval in seconds between successive purging run. Default: 600.
gc_purge_size
Data type: Integer
Number of requests picked up for cleaning from the requests garbage collector at each run. This value is use also by Tape Recall Garbage Collector. Default: 800
gc_expired_request_time
Data type: Integer
Time in seconds to consider a request expired after its submission. Default: 604800 seconds (1 week). From StoRM 1.11.13 it is used also to identify how much time is needed to consider a completed recall task as cleanable.
gc_expired_inprogress_time
Data type: Integer
Time in seconds to consider an in-progress ptp request as expired. Default: 2592000 seconds (1 month).
gc_ptp_transit_interval
Data type: Integer
Time interval in seconds between successive expired put requests agent run. Default: 3000.
gc_ptp_transit_start_delay
Data type: Integer
Initial delay before starting the expired put requests agent process, in seconds. Default: 60
extraslashes_file
Data type: String
Add extra slashes after the “authority” part of a TURL for file protocol. Defaul: ''
extraslashes_root
Data type: String
Add extra slashes after the “authority” part of a TURL for xroot protocol. Default: '/'
extraslashes_gsiftp
Data type: String
Add extra slashes after the “authority” part of a TURL for gsiftp protocol. Default: '/'
db_connection_pool_enabled
Data type: Boolean
Enable the database connection pool. Default: true
db_connection_pool_max_active
Data type: Integer
Database connection pool max active connections. Default: 10
db_connection_pool_max_wait
Data type: Integer
Database connection pool max wait time to provide a connection. Default: 50
asynch_db_reconnect_period
Data type: Integer
Database connection refresh time intervall in seconds. Default: 18000
asynch_db_delay_period
Data type: Integer
Database connection refresh initial delay in seconds. Default: 30.
asynch_picking_initial_delay
Data type: Integer
Initial delay before starting to pick requests from the DB, in seconds. Default: 1.
asynch_picking_time_interval
Data type: Integer
Polling interval in seconds to pick up new SRM requests. Default: 2.
asynch_picking_max_batch_size
Data type: Integer
Maximum number of requests picked up at each polling time. Default: 100.
requests_scheduler_core_size
Data type: Integer
Crusher Scheduler worker pool base size. Default: 50.
requests_scheduler_max_size
Data type: Integer
Crusher Schedule worker pool max size. Default: 200.
requests_scheduler_queue_size
Data type: Integer
Request queue maximum size. Default: 2000.
ptp_requests_scheduler_core_size
Data type: Integer
PrepareToPut worker pool base size. Default: 50.
ptp_requests_scheduler_max_size
Data type: Integer
PrepareToPut worker pool max size. Default: 200.
ptp_requests_scheduler_queue_size
Data type: Integer
PrepareToPut request queue maximum size. Default: 1000.
ptg_requests_scheduler_core_size
Data type: Integer
PrepareToGet worker pool base size. Default: 50.
ptg_requests_scheduler_max_size
Data type: Integer
PrepareToGet worker pool max size. Default: 200.
ptg_requests_scheduler_queue_size
Data type: Integer
PrepareToGet request queue maximum size. Default: 2000.
bol_requests_scheduler_core_size
Data type: Integer
BringOnline worker pool base size. Default: 50.
bol_requests_scheduler_max_size
Data type: Integer
BringOnline Worker pool max size. Default: 200.
bol_requests_scheduler_queue_size
Data type: Integer
BringOnline request queue maximum size. Default: 2000.
info_sitename
Data type: String
It’s the human-readable name of your site used to set the Glue-SiteName attribute.
info_storage_default_root
Data type: String
Default directory for Storage Areas.
info_endpoint_quality_level
Data type: Integer
Endpoint maturity level to be published by the StoRM info provider. Default value: 2.
info_webdav_pool_list
Data type: Array[Storm::Backend::WebdavPoolMember]
List of published webdav endpoints.
info_frontend_host_list
Data type: Array[Storm::Backend::SrmPoolMember]
List of published srm endpoints.
jvm_options
Data type: String
jmx
Data type: Boolean
jmx_options
Data type: String
debug
Data type: Boolean
debug_port
Data type: Integer
debug_suspend
Data type: Boolean
lcmaps_db_file
Data type: String
lcmaps_policy_name
Data type: String
lcmaps_log_file
Data type: String
lcmaps_debug_level
Data type: Integer
http_turl_prefix
Data type: String
storm_limit_nofile
Data type: Integer
Sets LimitNOFILE value.
manage_path_authz_db
Data type: Boolean
If true, allows to set content of path-authz.db file.
path_authz_db_file
Data type: String
If manage_path_authz_db is true, set the content from this source path
info_config_file
Data type: String
storm::backend::config
StoRM Backend config class
Parameters
The following parameters are available in the storm::backend::config
class.
hostname
Data type: Any
Default value: $storm::backend::hostname
install_native_libs_gpfs
Data type: Any
Default value: $storm::backend::install_native_libs_gpfs
db_hostname
Data type: Any
Default value: $storm::backend::db_hostname
db_username
Data type: Any
Default value: $storm::backend::db_username
db_password
Data type: Any
Default value: $storm::backend::db_password
xroot_hostname
Data type: Any
Default value: $storm::backend::xroot_hostname
xroot_port
Data type: Any
Default value: $storm::backend::xroot_port
gsiftp_pool_members
Data type: Any
Default value: $storm::backend::gsiftp_pool_members
gsiftp_pool_balance_strategy
Data type: Any
Default value: $storm::backend::gsiftp_pool_balance_strategy
webdav_pool_members
Data type: Any
Default value: $storm::backend::webdav_pool_members
srm_pool_members
Data type: Any
Default value: $storm::backend::srm_pool_members
transfer_protocols
Data type: Any
Default value: $storm::backend::transfer_protocols
fs_type
Data type: Any
Default value: $storm::backend::fs_type
storage_areas
Data type: Any
Default value: $storm::backend::storage_areas
frontend_public_host
Data type: Any
Default value: $storm::backend::frontend_public_host
frontend_port
Data type: Any
Default value: $storm::backend::frontend_port
directory_automatic_creation
Data type: Any
Default value: $storm::backend::directory_automatic_creation
directory_writeperm
Data type: Any
Default value: $storm::backend::directory_writeperm
rest_services_port
Data type: Any
Default value: $storm::backend::rest_services_port
rest_services_max_threads
Data type: Any
Default value: $storm::backend::rest_services_max_threads
rest_services_max_queue_size
Data type: Any
Default value: $storm::backend::rest_services_max_queue_size
xmlrpc_unsecure_server_port
Data type: Any
Default value: $storm::backend::xmlrpc_unsecure_server_port
xmlrpc_maxthread
Data type: Any
Default value: $storm::backend::xmlrpc_maxthread
xmlrpc_max_queue_size
Data type: Any
Default value: $storm::backend::xmlrpc_max_queue_size
xmlrpc_security_enabled
Data type: Any
Default value: $storm::backend::xmlrpc_security_enabled
xmlrpc_security_token
Data type: Any
Default value: $storm::backend::xmlrpc_security_token
ptg_skip_acl_setup
Data type: Any
Default value: $storm::backend::ptg_skip_acl_setup
pinlifetime_default
Data type: Any
Default value: $storm::backend::pinlifetime_default
pinlifetime_maximum
Data type: Any
Default value: $storm::backend::pinlifetime_maximum
sanity_check_enabled
Data type: Any
Default value: $storm::backend::sanity_check_enabled
service_du_enabled
Data type: Any
Default value: $storm::backend::service_du_enabled
service_du_delay
Data type: Any
Default value: $storm::backend::service_du_delay
service_du_interval
Data type: Any
Default value: $storm::backend::service_du_interval
max_ls_entries
Data type: Any
Default value: $storm::backend::max_ls_entries
gc_pinnedfiles_cleaning_delay
Data type: Any
Default value: $storm::backend::gc_pinnedfiles_cleaning_delay
gc_pinnedfiles_cleaning_interval
Data type: Any
Default value: $storm::backend::gc_pinnedfiles_cleaning_interval
gc_purge_enabled
Data type: Any
Default value: $storm::backend::gc_purge_enabled
gc_purge_interval
Data type: Any
Default value: $storm::backend::gc_purge_interval
gc_purge_size
Data type: Any
Default value: $storm::backend::gc_purge_size
gc_expired_request_time
Data type: Any
Default value: $storm::backend::gc_expired_request_time
gc_expired_inprogress_time
Data type: Any
Default value: $storm::backend::gc_expired_inprogress_time
gc_ptp_transit_interval
Data type: Any
Default value: $storm::backend::gc_ptp_transit_interval
gc_ptp_transit_start_delay
Data type: Any
Default value: $storm::backend::gc_ptp_transit_start_delay
extraslashes_file
Data type: Any
Default value: $storm::backend::extraslashes_file
extraslashes_root
Data type: Any
Default value: $storm::backend::extraslashes_root
extraslashes_gsiftp
Data type: Any
Default value: $storm::backend::extraslashes_gsiftp
db_connection_pool_enabled
Data type: Any
Default value: $storm::backend::db_connection_pool_enabled
db_connection_pool_max_active
Data type: Any
Default value: $storm::backend::db_connection_pool_max_active
db_connection_pool_max_wait
Data type: Any
Default value: $storm::backend::db_connection_pool_max_wait
asynch_db_reconnect_period
Data type: Any
Default value: $storm::backend::asynch_db_reconnect_period
asynch_db_delay_period
Data type: Any
Default value: $storm::backend::asynch_db_delay_period
asynch_picking_initial_delay
Data type: Any
Default value: $storm::backend::asynch_picking_initial_delay
asynch_picking_time_interval
Data type: Any
Default value: $storm::backend::asynch_picking_time_interval
asynch_picking_max_batch_size
Data type: Any
Default value: $storm::backend::asynch_picking_max_batch_size
requests_scheduler_core_size
Data type: Any
Default value: $storm::backend::requests_scheduler_core_size
requests_scheduler_max_size
Data type: Any
Default value: $storm::backend::requests_scheduler_max_size
requests_scheduler_queue_size
Data type: Any
Default value: $storm::backend::requests_scheduler_queue_size
ptp_requests_scheduler_core_size
Data type: Any
Default value: $storm::backend::ptp_requests_scheduler_core_size
ptp_requests_scheduler_max_size
Data type: Any
Default value: $storm::backend::ptp_requests_scheduler_max_size
ptp_requests_scheduler_queue_size
Data type: Any
Default value: $storm::backend::ptp_requests_scheduler_queue_size
ptg_requests_scheduler_core_size
Data type: Any
Default value: $storm::backend::ptg_requests_scheduler_core_size
ptg_requests_scheduler_max_size
Data type: Any
Default value: $storm::backend::ptg_requests_scheduler_max_size
ptg_requests_scheduler_queue_size
Data type: Any
Default value: $storm::backend::ptg_requests_scheduler_queue_size
bol_requests_scheduler_core_size
Data type: Any
Default value: $storm::backend::bol_requests_scheduler_core_size
bol_requests_scheduler_max_size
Data type: Any
Default value: $storm::backend::bol_requests_scheduler_max_size
bol_requests_scheduler_queue_size
Data type: Any
Default value: $storm::backend::bol_requests_scheduler_queue_size
info_config_file
Data type: Any
Default value: $storm::backend::info_config_file
info_sitename
Data type: Any
Default value: $storm::backend::info_sitename
info_storage_default_root
Data type: Any
Default value: $storm::backend::info_storage_default_root
info_endpoint_quality_level
Data type: Any
Default value: $storm::backend::info_endpoint_quality_level
jvm_options
Data type: Any
Default value: $storm::backend::jvm_options
jmx
Data type: Any
Default value: $storm::backend::jmx
jmx_options
Data type: Any
Default value: $storm::backend::jmx_options
debug
Data type: Any
Default value: $storm::backend::debug
debug_port
Data type: Any
Default value: $storm::backend::debug_port
debug_suspend
Data type: Any
Default value: $storm::backend::debug_suspend
lcmaps_db_file
Data type: Any
Default value: $storm::backend::lcmaps_db_file
lcmaps_policy_name
Data type: Any
Default value: $storm::backend::lcmaps_policy_name
lcmaps_log_file
Data type: Any
Default value: $storm::backend::lcmaps_log_file
lcmaps_debug_level
Data type: Any
Default value: $storm::backend::lcmaps_debug_level
http_turl_prefix
Data type: Any
Default value: $storm::backend::http_turl_prefix
storm_limit_nofile
Data type: Any
Default value: $storm::backend::storm_limit_nofile
manage_path_authz_db
Data type: Any
Default value: $storm::backend::manage_path_authz_db
path_authz_db_file
Data type: Any
Default value: $storm::backend::path_authz_db_file
storm::backend::configdb
StoRM Backend DB config class
Parameters
The following parameters are available in the storm::backend::configdb
class.
db_hostname
Data type: Any
Default value: $storm::backend::db_hostname
db_username
Data type: Any
Default value: $storm::backend::db_username
db_password
Data type: Any
Default value: $storm::backend::db_password
storm::backend::install
StoRM Backend install class
storm::backend::service
StoRM Backend service class
storm::db
Install MariaDB server and client, create empty databases 'storm_db' and 'storm_be_ISAM', add storm user and all the necessary grants.
Examples
Basic usage:
include storm::db
Parameters
The following parameters are available in the storm::db
class.
fqdn_hostname
Data type: String
The Fully Qualified Domain Name of the host. Default value got from Puppet fact fqdn
.
Default value: $::fqdn
root_password
Data type: String
MySQL root password. Default: 'storm'.
storm_username
Data type: String
The username of the user used by storm services to query the databases. Default 'storm'.
storm_password
Data type: String
The password of 'storm' username used by storm services to access the databases. Default: 'storm'.
override_options
Data type: Data
MySQL server override options. Read more about this at https://forge.puppet.com/puppetlabs/mysql/reference#override_options.
limit_no_file
Data type: Integer
MariaDB setting for limitNoFile
storm::frontend
StoRM Frontend puppet module
Examples
Example of usage
class { 'storm::frontend':
be_xmlrpc_host => 'storm-backend.example',
be_xmlrpc_token => 'secret',
db_host => 'storm-backend.example',
db_user => 'storm',
db_passwd => 'secret',
}
Parameters
The following parameters are available in the storm::frontend
class.
be_xmlrpc_host
Data type: String
Backend hostname. Required.
be_xmlrpc_port
Data type: Integer
Backend XML-RPC server port. Default is 8080.
be_xmlrpc_token
Data type: String
Token used for communicating with Backend service. Mandatory, has no default.
be_xmlrpc_path
Data type: String
XML-RPC server path. Default is /RPC2.
be_recalltable_port
Data type: Integer
REST server port running on the Backend machine. Default is 9998.
db_host
Data type: String
Host for database connection. Default is set to be_xmlrpc_host.
Default value: $be_xmlrpc_host
db_user
Data type: String
User for database connection. Default is storm.
db_passwd
Data type: String
Password for database connection. Default is storm.
port
Data type: Integer
Frontend service port. Default is 8444.
threadpool_maxpending
Data type: Integer
Size of the internal queue used to maintain SRM tasks in case there are no free worker threads. Default is 200
threadpool_threads_number
Data type: Integer
Size of the worker thread pool. Default is 50.
gsoap_maxpending
Data type: Integer
Size of the GSOAP queue used to maintain pending SRM requests. Default is 1000.
check_user_blacklisting
Data type: Boolean
Enable/disable user blacklisting. Default is false.
argus_pepd_endpoint
Data type: String
The complete service endpoint of Argus PEP server. Mandatory if check_user_blacklisting is true.
monitoring_enabled
Data type: Boolean
Enable/disable monitoring. Default is true.
monitoring_time_interval
Data type: Integer
Time interval in seconds between each monitoring round. Default is 60.
monitoring_detailed
Data type: Boolean
Enable/disable detailed monitoring. Default is false.
security_enable_mapping
Data type: Boolean
Flag to enable/disable DN-to-userid mapping via gridmap-file. Default is false.
security_enable_vomscheck
Data type: Boolean
Flag to enable/disable checking proxy VOMS credentials. Default is true.
log_debuglevel
Data type: String
Logging level. Possible values are: ERROR, WARN, INFO, DEBUG, DEBUG2. Default is INFO
gridmap_dir
Data type: String
Gridmap directory path. Defailt value is: /etc/grid-security/gridmapdir
gridmap_file
Data type: String
Gridmap file path. Defailt value is: /etc/grid-security/grid-mapfile
storm::frontend::config
StoRM Frontend config class
Parameters
The following parameters are available in the storm::frontend::config
class.
db_host
Data type: Any
Default value: $storm::frontend::db_host
db_user
Data type: Any
Default value: $storm::frontend::db_user
db_passwd
Data type: Any
Default value: $storm::frontend::db_passwd
port
Data type: Any
Default value: $storm::frontend::port
threadpool_threads_number
Data type: Any
Default value: $storm::frontend::threadpool_threads_number
threadpool_maxpending
Data type: Any
Default value: $storm::frontend::threadpool_maxpending
gsoap_maxpending
Data type: Any
Default value: $storm::frontend::gsoap_maxpending
be_xmlrpc_host
Data type: Any
Default value: $storm::frontend::be_xmlrpc_host
be_xmlrpc_token
Data type: Any
Default value: $storm::frontend::be_xmlrpc_token
be_xmlrpc_port
Data type: Any
Default value: $storm::frontend::be_xmlrpc_port
be_xmlrpc_path
Data type: Any
Default value: $storm::frontend::be_xmlrpc_path
be_recalltable_port
Data type: Any
Default value: $storm::frontend::be_recalltable_port
check_user_blacklisting
Data type: Any
Default value: $storm::frontend::check_user_blacklisting
argus_pepd_endpoint
Data type: Any
Default value: $storm::frontend::argus_pepd_endpoint
monitoring_enabled
Data type: Any
Default value: $storm::frontend::monitoring_enabled
monitoring_time_interval
Data type: Any
Default value: $storm::frontend::monitoring_time_interval
monitoring_detailed
Data type: Any
Default value: $storm::frontend::monitoring_detailed
security_enable_mapping
Data type: Any
Default value: $storm::frontend::security_enable_mapping
security_enable_vomscheck
Data type: Any
Default value: $storm::frontend::security_enable_vomscheck
log_debuglevel
Data type: Any
Default value: $storm::frontend::log_debuglevel
gridmap_dir
Data type: Any
Default value: $storm::frontend::gridmap_dir
gridmap_file
Data type: Any
Default value: $storm::frontend::gridmap_file
storm::frontend::install
StoRM Frontend install class
storm::frontend::service
StoRM Frontend service class
storm::gridftp
Parameters
The StoRM GridFTP configuration parameters are:
port
: the port used by GridFTP server service;port_range
: the range of ports used by transfer sockets; format is 'MIN,MAX';connections_max
: the number of max allowed connections to server;
Examples
Example of usage
class { 'storm::gridftp':
port => 2811,
port_range => '20000,25000',
connections_max => 2000,
}
Parameters
The following parameters are available in the storm::gridftp
class.
port
Data type: Integer
The port used by GridFTP server service.
port_range
Data type: String
The range of ports used by transfer sockets; format is 'MIN,MAX'.
connections_max
Data type: Integer
The number of max allowed connections to server.
log_single
Data type: String
Session log file path. Default is: /var/log/storm/storm-gridftp-session.log
log_transfer
Data type: String
Transfer log file path. Default is: /var/log/storm/storm-globus-gridftp.log
redirect_lcmaps_log
Data type: Boolean
If true, redirect the LCMAPS log to the file specified by 'llgt_log_file'.
llgt_log_file
Data type: String
The LCMAPS log file used if 'redirect_lcmaps_log' is true.
lcmaps_debug_level
Data type: Integer
The LCMAPS logging level. Values from 0 (ERROR) to 5 (DEBUG). Default: 3 (INFO)
lcas_debug_level
Data type: Integer
The LCAS logging level. Values from 0 (ERROR) to 5 (DEBUG). Default: 3 (INFO)
load_storm_dsi_module
Data type: Boolean
Enable/Disable StoRM DSI module. Default: true (enabled)
storm::gridftp::config
StoRM GridFTP config class
Parameters
The following parameters are available in the storm::gridftp::config
class.
port
Data type: Any
Default value: $storm::gridftp::port
port_range
Data type: Any
Default value: $storm::gridftp::port_range
connections_max
Data type: Any
Default value: $storm::gridftp::connections_max
log_single
Data type: Any
Default value: $storm::gridftp::log_single
log_transfer
Data type: Any
Default value: $storm::gridftp::log_transfer
redirect_lcmaps_log
Data type: Any
Default value: $storm::gridftp::redirect_lcmaps_log
llgt_log_file
Data type: Any
Default value: $storm::gridftp::llgt_log_file
lcmaps_debug_level
Data type: Any
Default value: $storm::gridftp::lcmaps_debug_level
lcas_debug_level
Data type: Any
Default value: $storm::gridftp::lcas_debug_level
load_storm_dsi_module
Data type: Any
Default value: $storm::gridftp::load_storm_dsi_module
storm::gridftp::install
StoRM GridFTP install class
storm::gridftp::service
StoRM GridFTP service class
storm::repo
Choose which StoRM repository you want to intall and enable. Also a custom list of repository URL can be specified.
Examples
Install all the repositories and enable only nightly repo as follow:
class { 'storm::repo':
enabled => ['stable'],
}
Parameters
The following parameters are available in the storm::repo
class.
installed
Data type: Array[Enum['stable', 'beta', 'nightly']]
The list of repositories that have to be installed. Allowed values are stable
, beta
and nightly
. Optional.
enabled
Data type: Array[Enum['stable', 'beta', 'nightly']]
The list of repositories that have to be enabled. Allowed values are stable
, beta
and nightly
. Optional.
extra
Data type: Array[Storm::CustomRepo]
A list of repository that have to be created. Optional.
storm::users
Parameters
StoRM needs a 'storm' Unix user, member of an 'edguser' group. This class creates all the necessary users.
Examples
Example of usage
class { 'storm::users':
groups => {
'infosys' => {
gid => '996',
},
},
users => {
'edguser' => {
'comment' => 'Edguser user',
'groups' => [ edguser, infosys, storm, ],
'uid' => '995',
'gid' => '995',
},
'storm' => {
'comment' => 'StoRM user',
'groups' => [ storm, edguser, ],
'uid' => '991',
'gid' => '991',
},
}
}
Parameters
The following parameters are available in the storm::users
class.
groups
Data type: Accounts::Group::Hash
users
Data type: Accounts::User::Hash
storm::webdav
StoRM WebDAV puppet module
Examples
Basic usage
class { 'storm::webdav':
storage_areas => [
{
name => 'test.vo',
root_path => '/storage/test.vo',
access_points => ['/test.vo'],
vos => ['test.vo', 'test.vo.2'],
},
{
name => 'test.vo.2',
root_path => '/storage/test.vo.2',
access_points => ['/test.vo.2'],
vos => ['test.vo.2'],
authenticated_read_enabled => true,
anonymous_read_enabled => true,
vo_map_enabled => false,
},
],
hostnames => ['webdav.example.org', 'storm-webdav.example.org'],
}
Parameters
The following parameters are available in the storm::webdav
class.
manage_storage_areas
Data type: Boolean
Set to True if you want to manage storage areas configuration. Default: true.
storage_areas
Data type: Array[Storm::Webdav::StorageArea]
List of storage area's configuration. Ignored if storage_areas_directory is defined. Ignored if manage_storage_areas is false.
hostnames
Data type: Array[String]
Sets STORMWEBDAV_HOSTNAME(N) environment variables.
http_port
Data type: Integer
Sets STORM_WEBDAV_HTTP_PORT environment variable.
https_port
Data type: Integer
Sets STORM_WEBDAV_HTTPS_PORT environment variable.
trust_anchors_refresh_interval
Data type: Integer
Sets STORM_WEBDAV_TRUST_ANCHORS_REFRESH_INTERVAL environment variable.
max_concurrent_connections
Data type: Integer
Sets STORM_WEBDAV_MAX_CONNECTIONS environment variable.
max_queue_size
Data type: Integer
Sets STORM_WEBDAV_MAX_QUEUE_SIZE environment variable.
connector_max_idle_time
Data type: Integer
Sets STORM_WEBDAV_CONNECTOR_MAX_IDLE_TIME environment variable.
vo_map_files_enable
Data type: Boolean
Sets STORM_WEBDAV_VO_MAP_FILES_ENABLE environment variable.
vo_map_files_config_dir
Data type: String
Sets STORM_WEBDAV_VO_MAP_FILES_CONFIG_DIR environment variable.
vo_map_files_refresh_interval
Data type: Integer
Sets STORM_WEBDAV_VO_MAP_FILES_REFRESH_INTERVAL environment variable.
tpc_max_connections
Data type: Integer
Sets STORM_WEBDAV_TPC_MAX_CONNECTIONS environment variable.
tpc_verify_checksum
Data type: Boolean
Sets STORM_WEBDAV_TPC_VERIFY_CHECKSUM environment variable.
jvm_opts
Data type: String
Sets part of STORM_WEBDAV_JVM_OPTS environment variable.
authz_server_enable
Data type: Boolean
Sets STORM_WEBDAV_AUTHZ_SERVER_ENABLE environment variable.
authz_server_issuer
Data type: String
Sets STORM_WEBDAV_AUTHZ_SERVER_ISSUER environment variable.
authz_server_max_token_lifetime_sec
Data type: Integer
Sets STORM_WEBDAV_AUTHZ_SERVER_MAX_TOKEN_LIFETIME_SEC environment variable.
authz_server_secret
Data type: String
Sets STORM_WEBDAV_AUTHZ_SERVER_SECRET environment variable.
require_client_cert
Data type: Boolean
Sets STORM_WEBDAV_REQUIRE_CLIENT_CERT environment variable.
use_conscrypt
Data type: Boolean
Sets STORM_WEBDAV_USE_CONSCRYPT environment variable.
tpc_use_conscrypt
Data type: Boolean
Sets STORM_WEBDAV_TPC_USE_CONSCRYPT environment variable.
enable_http2
Data type: Boolean
Sets STORM_WEBDAV_ENABLE_HTTP2 environment variable.
debug
Data type: Boolean
Sets part of STORM_WEBDAV_JVM_OPTS environment variable. It enables remote debug.
debug_port
Data type: Integer
Sets part of STORM_WEBDAV_JVM_OPTS environment variable. It sets the remote debug port if remote debug is enabled.
debug_suspend
Data type: Boolean
Sets part of STORM_WEBDAV_JVM_OPTS environment variable. It sets debug suspend value in case remote debug is enabled.
storm_limit_nofile
Data type: Integer
Sets LimitNOFILE value.
storm::webdav::config
StoRM WebDAV config class
Parameters
The following parameters are available in the storm::webdav::config
class.
manage_storage_areas
Data type: Any
Default value: $storm::webdav::manage_storage_areas
storage_areas
Data type: Any
Default value: $storm::webdav::storage_areas
hostnames
Data type: Any
Default value: $storm::webdav::hostnames
http_port
Data type: Any
Default value: $storm::webdav::http_port
https_port
Data type: Any
Default value: $storm::webdav::https_port
trust_anchors_refresh_interval
Data type: Any
Default value: $storm::webdav::trust_anchors_refresh_interval
max_concurrent_connections
Data type: Any
Default value: $storm::webdav::max_concurrent_connections
max_queue_size
Data type: Any
Default value: $storm::webdav::max_queue_size
connector_max_idle_time
Data type: Any
Default value: $storm::webdav::connector_max_idle_time
vo_map_files_enable
Data type: Any
Default value: $storm::webdav::vo_map_files_enable
vo_map_files_config_dir
Data type: Any
Default value: $storm::webdav::vo_map_files_config_dir
vo_map_files_refresh_interval
Data type: Any
Default value: $storm::webdav::vo_map_files_refresh_interval
tpc_max_connections
Data type: Any
Default value: $storm::webdav::tpc_max_connections
tpc_verify_checksum
Data type: Any
Default value: $storm::webdav::tpc_verify_checksum
jvm_opts
Data type: Any
Default value: $storm::webdav::jvm_opts
authz_server_enable
Data type: Any
Default value: $storm::webdav::authz_server_enable
authz_server_issuer
Data type: Any
Default value: $storm::webdav::authz_server_issuer
authz_server_max_token_lifetime_sec
Data type: Any
Default value: $storm::webdav::authz_server_max_token_lifetime_sec
authz_server_secret
Data type: Any
Default value: $storm::webdav::authz_server_secret
require_client_cert
Data type: Any
Default value: $storm::webdav::require_client_cert
use_conscrypt
Data type: Any
Default value: $storm::webdav::use_conscrypt
tpc_use_conscrypt
Data type: Any
Default value: $storm::webdav::tpc_use_conscrypt
enable_http2
Data type: Any
Default value: $storm::webdav::enable_http2
debug
Data type: Any
Default value: $storm::webdav::debug
debug_port
Data type: Any
Default value: $storm::webdav::debug_port
debug_suspend
Data type: Any
Default value: $storm::webdav::debug_suspend
storm_limit_nofile
Data type: Any
Default value: $storm::webdav::storm_limit_nofile
storm::webdav::install
StoRM WebDAV install class
storm::webdav::service
StoRM WebDAV service class
Defined types
storm::backend::service_conf_file
Starting from Puppet module v2.0.0, site administrators can inject
one or more .conf files into /etc/systemd/system/storm-backend-server.service.d
directory.
Examples
class { 'storm::backend':
hostname => 'storm-backend.test.example',
# ...
}
storm::backend::service_conf_file { 'override.conf':
source => '/path/to/my/override.conf',
}
Parameters
The following parameters are available in the storm::backend::service_conf_file
defined type.
source
Data type: Any
The source of file resource. It can be an absolute path or a Puppet module relative path.
storm::backend::storage_site_report
by using this defined type.
Examples
class { 'storm::backend':
hostname => 'storm-backend.test.example',
# ...
}
storm::backend::storage_site_report { 'storage-site-report':
report_path => '/storage/info/report.json', # the internal storage area path
minute => '*/20', # set cron's minute
}
Parameters
The following parameters are available in the storm::backend::storage_site_report
defined type.
report_path
Data type: String
The full path of the generated report. Usually it points to a "info" storage area.
minute
Data type: String
The cron job's minute parameter. Refer to Resource Type cron.
Default value: '*/30'
storm::rootdir
StoRM main storage area root directory defined resource
Parameters
The following parameters are available in the storm::rootdir
defined type.
mode
Data type: String
Default value: '0755'
storm::sarootdir
StoRM Storage Area root directory defined resource
Parameters
The following parameters are available in the storm::sarootdir
defined type.
mode
Data type: String
Default value: '0750'
storm::webdav::application_file
Starting from Puppet module v2.0.0, the management of application.yml file has been removed from storm::webdav class. Site administrators can edit their own configuration files or use this defined type to inject one or more YAML files into the proper directory.
Examples
class { 'storm::webdav':
hostnames => ['storm-webdav.test.example', 'alias-for-storm-webdav.test.example'],
}
storm::webdav::application_file { 'application.yml':
source => '/path/to/my/application.yml',
}
storm::webdav::application_file { 'application-wlcg.yml':
source => '/path/to/my/application-wlcg.yml',
}
Parameters
The following parameters are available in the storm::webdav::application_file
defined type.
source
Data type: Any
The source of file resource. It can be an absolute path or a Puppet module relative path.
storm::webdav::storage_area_file
Storage Areas can be configured singularly by using this defined type. This strategy allows site administrators to keep their manifests unaware of the improvements on StoRM WebDAV code. For example, if a new property is added into Storage Area configuration files, you haven't to update your Puppet module and all the service configuration will continue working.
Examples
class { 'storm::webdav':
hostnames => ['storm-webdav.test.example', 'alias-for-storm-webdav.test.example'],
}
storm::webdav::storage_area_file { 'test.vo.properties':
source => '/path/to/my/test.vo.properties',
}
storm::webdav::storage_area_file { 'test.vo.2.properties':
source => '/path/to/my/test.vo.2.properties',
}
Parameters
The following parameters are available in the storm::webdav::storage_area_file
defined type.
source
Data type: Any
The source of file resource. It can be an absolute path or a Puppet module relative path.
Data types
Storm::Backend::Acl
The ACL type for storm-backend-server
Alias of Struct[{ group => String, permission => Enum['R', 'W', 'RW'], }]
Storm::Backend::AclMode
The AclMode type for storm-backend-server
Alias of Enum['AoT', 'JiT']
Storm::Backend::BalanceStrategy
The BalanceStrategy type for storm-backend-server
Alias of Enum['round-robin', 'smart-rr', 'random', 'weight']
Storm::Backend::Endpoint
The Endpoint type for storm-backend-server
Alias of Struct[{ schema => Enum['rfio','xroot','gsiftp','srm','http','https'], hostname => String, port => Integer, path => String, }]
Storm::Backend::FileSystem
The FileSystem type for storm-backend-server
Alias of Struct[{ type => Enum['ext3', 'gpfs'], driver => Enum['posixfs', 'gpfs', 'test'], space_system => Optional[Enum['MockSpaceSystem', 'GPFSSpaceSystem']], }]
Storm::Backend::FsDriver
The FsDriver type for storm-backend-server
Alias of Enum['posixfs', 'gpfs', 'test']
Storm::Backend::FsType
The FsType type for storm-backend-server
Alias of Enum['posixfs', 'gpfs', 'test']
Storm::Backend::Gsiftp
The Gsiftp type for storm-backend-server
Alias of Struct[{ pool => Storm::Backend::Pool, }]
Storm::Backend::GsiftpPoolMember
The GsiftpPoolMember type for storm-backend-server
Alias of Struct[{ hostname => String, port => Optional[Integer], weight => Optional[Integer], }]
Storm::Backend::Pool
The Pool type for storm-backend-server
Alias of Struct[{ balance_strategy => Optional[Enum['round-robin', 'smart-rr', 'random', 'weight']], members => Array[Struct[{ hostname => String, port => Optional[Integer], weigth => Optional[Integer], }]], }]
Storm::Backend::Quota
The Quota type for storm-backend-server
Alias of Struct[{ device => String, type => Enum['username', 'group', 'fileset'], value => String, }]
Storm::Backend::Rfio
The Rfio type for storm-backend-server
Alias of Struct[{ hostname => String, port => Optional[Integer], }]
Storm::Backend::SrmPoolMember
The SrmPoolMember type for storm-backend-server
Alias of Struct[{ hostname => String, port => Optional[Integer], }]
Storm::Backend::StorageArea
The storage area type for storm-backend-server
Alias of Struct[{ name => String, root_path => String, access_points => Array[String], vos => Array[String], fs_type => Optional[Storm::Backend::FsType], space_token => Optional[String], authz => Optional[String], storage_class => Optional[Storm::Backend::StorageClass], online_size => Integer, nearline_size => Optional[Integer], acl_mode => Optional[Storm::Backend::AclMode], default_acl_list => Optional[Array[Storm::Backend::Acl]], quota => Optional[Storm::Backend::Quota], dn_regex => Optional[String], anonymous_http_read => Optional[Boolean], transfer_protocols => Optional[Array[Storm::Backend::TransferProtocol]], rfio_hostname => Optional[String], rfio_port => Optional[Integer], xroot_hostname => Optional[String], xroot_port => Optional[Integer], gsiftp_pool_balance_strategy => Optional[Storm::Backend::BalanceStrategy], gsiftp_pool_members => Optional[Array[Storm::Backend::GsiftpPoolMember]], webdav_pool_members => Optional[Array[Storm::Backend::WebdavPoolMember]], }]
Storm::Backend::StorageClass
The StorageClass type for storm-backend-server
Alias of Enum['T0D1', 'T1D0', 'T1D1']
Storm::Backend::TransferProtocol
The TransferProtocol type for storm-backend-server
Alias of Enum['file', 'gsiftp', 'xroot', 'webdav']
Storm::Backend::Webdav
The WebDAV type for storm-backend-server
Alias of Struct[{ pool => Array[Struct[{ hostname => String, port => Optional[Integer], }]], }]
Storm::Backend::WebdavPoolMember
The WebdavPoolMember type for storm-backend-server
Alias of Struct[{ hostname => String, http_port => Optional[Integer], https_port => Optional[Integer], }]
Storm::Backend::Xroot
The Xroot type for storm-backend-server
Alias of Struct[{ hostname => String, port => Optional[Integer], }]
Storm::CustomRepo
The storage area type for storm-webdav
Alias of Struct[{ name => String, baseurl => String, }]
Storm::Webdav::StorageArea
The storage area type for storm-webdav.
Alias of Struct[{ name => String, root_path => String, access_points => Array[String], vos => Array[String], orgs => Optional[Array[String]], authenticated_read_enabled => Optional[Boolean], anonymous_read_enabled => Optional[Boolean], vo_map_enabled => Optional[Boolean], vo_map_grants_write_permission => Optional[Boolean], orgs_grant_read_permission => Optional[Boolean], orgs_grant_write_permission => Optional[Boolean], wlcg_scope_authz_enabled => Optional[Boolean], fine_grained_authz_enabled => Optional[Boolean], }]
Changelog
All notable changes to this project will be documented in this file.
[3.2.0]
- Added daemon reload on backend and webdav restart command
[3.1.1]
- Improved README. No changes on module.
[3.1.0]
- Added mode parameter to storm::rootdir and storm::sarootdir defined types
- Increased default value for wait_timeout in storm::db::override_options
[3.0.0]
- Converted to pdk project
- Removed storm::storage class
- Added storm::sarootdir defined type
- Use hiera YAML files for all default parameters
- Removed all params.pp files
[2.2.1] - 2020-11-09
- Fixed type into data file
[2.2.0] - 2020-11-09
- Moved default parameters into YAML data files
- Deleted params.pp files
- Added hiera.yaml
[2.1.0] - 2020-10-29
- Moved gridftp.conf into /etc/grid-security directory
[2.0.1] - 2020-10-19
- Fixed CHANGELOG
- Improved documentation.
[2.0.0] - 2020-10-19
- Added defined types for application-*.yml and storage area files used by WebDAV class.
- Removed direct support for application.yml template file.
- Added defined types for service conf files of Backend.
- Added defined type for storage site reporting.
- Added tests.
- Removed docker deploy image.
[1.1.1] - 2020-10-06
- Removed log directory management
[1.1.0] - 2020-10-05
- Removed storm::mapping class
[1.0.5] - 2020-10-02
- Added path-authz.db support to StoRM Backend
[1.0.0] - 2020-09-25
- Moved database creation and MySQL/MariaDB installation on a separated class storm::db
- Backend class only import SQL script of databases, only if database or table version not exists
- WebDAV class by default doesn't manage application.yml file. It can be optionally managed from a source or from variables.
- WebDAV class by default manage storage areas. A source directory or the array of storage areas can be provided.
- Mapping class also manages VOMS roles and multiple groups.
- Removed epel and umd repo from repo class
- Removed testca and testvos classes
[0.2.3] - 2020-05-25
Changed
- Allow enable/disable StoRM DSI module for gridftp
[0.2.1] - 2020-05-25
Changed
- Updated README.md
[0.2.0] - 2020-05-15
Added
- Support for StoRM Frontend service configuration
Changed
- Fixed ignored WebDAV HTTP2 and Conscrypt options
- Allow redirection of LCMAPS logging to a particular file
- Fixed conflict on storm user/group creation when the same node install WebDAV and Frontend services
[0.1.0] - 2019-10-09
Added
- Support for StoRM WebDAV service configuration
- Support for StoRM GridFTP server configuration
- Documentation at REFERENCE.md
- Documentation at https://italiangrid.github.io/storm-puppet-module
Dependencies
- puppetlabs/accounts (>= 6.1.0)
- puppetlabs/mysql (>= 10.4.0)
- puppetlabs-stdlib (>= 1.0.0)