f07105ad24
Add the log_name_per_daemon parameter to the all class so that this parameter can be customized via the simplified definition. Change-Id: I34989778f607db869d7acd1787682f5a8c97be5b
251 lines
8.7 KiB
Puppet
251 lines
8.7 KiB
Puppet
#
|
|
# configures all storage types
|
|
# on the same node
|
|
#
|
|
# [*storage_local_net_ip*] ip address that the swift servers should
|
|
# bind to. Required
|
|
#
|
|
# [*devices*] The path where the managed volumes can be found.
|
|
# This assumes that all servers use the same path.
|
|
# Optional. Defaults to /srv/node/
|
|
#
|
|
# [*object_port*] Port where object storage server should be hosted.
|
|
# Optional. Defaults to 6000.
|
|
#
|
|
# [*container_port*] Port where the container storage server should be hosted.
|
|
# Optional. Defaults to 6001.
|
|
#
|
|
# [*account_port*] Port where the account storage server should be hosted.
|
|
# Optional. Defaults to 6002.
|
|
#
|
|
# [*object_pipeline*]
|
|
# (optional) Specify the object pipeline
|
|
# Defaults to undef
|
|
#
|
|
# [*container_pipeline*]
|
|
# (optional) Specify the container pipeline
|
|
# Defaults to undef
|
|
#
|
|
# [*account_pipeline*]
|
|
# (optional) Specify the account pipeline
|
|
# Defaults to undef
|
|
#
|
|
# [*mount_check*]
|
|
# (optional) Whether or not check if the devices are mounted
|
|
# to prevent accidentally writing to the root device
|
|
# Defaults to true.
|
|
#
|
|
# [*log_facility*]
|
|
# (optional) Syslog log facility
|
|
# Defaults to 'LOG_LOCAL2'
|
|
#
|
|
# [*log_level*]
|
|
# (optional) Log level.
|
|
# Defaults to 'INFO'.
|
|
#
|
|
# [*log_name_per_daemon*]
|
|
# (optional) Set log_name according differently for each daemon
|
|
# For example: container-replicator, contaier-sharder, etc.
|
|
# Defaults to false.
|
|
#
|
|
# [*log_udp_host*]
|
|
# (optional) If not set, the UDP receiver for syslog is disabled.
|
|
# Defaults to undef.
|
|
#
|
|
# [*log_udp_port*]
|
|
# (optional) Port value for UDP receiver, if enabled.
|
|
# Defaults to undef.
|
|
#
|
|
# [*log_requests*]
|
|
# (optional) Whether or not log every request. reduces logging output if false,
|
|
# good for seeing errors if true
|
|
# Defaults to true.
|
|
#
|
|
# [*max_connections*]
|
|
# (optional) maximum number of simultaneous connections allowed for rsync.
|
|
# Defaults to 25.
|
|
#
|
|
# [*hosts_allow*]
|
|
# (optional) List of patterns allowed to connect to this module
|
|
# Defaults to undef.
|
|
#
|
|
# [*hosts_deny*]
|
|
# (optional) List of patterns not allowed to connect to this module
|
|
# Defaults to undef.
|
|
#
|
|
# [*incoming_chmod*] Incoming chmod to set in the rsync server.
|
|
# Optional. Defaults to 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
|
|
# This mask translates to 0755 for directories and 0644 for files.
|
|
#
|
|
# [*outgoing_chmod*] Outgoing chmod to set in the rsync server.
|
|
# Optional. Defaults to 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
|
|
# This mask translates to 0755 for directories and 0644 for files.
|
|
#
|
|
# [*statsd_enabled*]
|
|
# (optional) Should statsd configuration items be writen out to config files
|
|
# Defaults to false.
|
|
#
|
|
# [*log_statsd_host*]
|
|
# (optional) statsd host to send data to.
|
|
# Defaults to 'localhost'
|
|
#
|
|
# [*log_statsd_port*]
|
|
# (optional) statsd port to send data to.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*log_statsd_default_sample_rate*]
|
|
# (optional) Default sample rate for data. This should be a number between 0
|
|
# and 1. According to the documentation this should be set to 1 and the
|
|
# sample rate factor should be adjusted.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*log_statsd_sample_rate_factor*]
|
|
# (optional) sample rate factor for data.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*log_statsd_metric_prefix*]
|
|
# (optional) Prefix for data being sent to statsd.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*account_server_workers*]
|
|
# (optional) Number of account server workers.
|
|
# Defaults to $facts['os_workers'].
|
|
#
|
|
# [*container_server_workers*]
|
|
# (optional) Number of container server workers.
|
|
# Defaults to $facts['os_workers'].
|
|
#
|
|
# [*object_server_workers*]
|
|
# (optional) Number of account server workers.
|
|
# Defaults to $facts['os_workers'].
|
|
#
|
|
# [*object_server_mb_per_sync*]
|
|
# (optional) Number of MB allocated for the cache.
|
|
# Defaults to 512, which is the swift default value.
|
|
#
|
|
# [*rsync_timeout*]
|
|
# (optional) Max duration of a partition rsync.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*rsync_bwlimit*]
|
|
# (optional) Bandwidth limit for rsync in kB/s. 0 means unlimited.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*splice*]
|
|
# (optional) Use splice for zero-copy object GETs. This requires Linux Kernel
|
|
# version 3.0 or greater.
|
|
# Default to $facts['os_service_default'].
|
|
#
|
|
# [*rsync_use_xinetd*]
|
|
# (optional) Override whether to use xinetd to manage rsync service
|
|
# Defaults to swift::params::xinetd_available
|
|
#
|
|
class swift::storage::all(
|
|
$storage_local_net_ip,
|
|
$devices = '/srv/node',
|
|
$object_port = 6000,
|
|
$container_port = 6001,
|
|
$account_port = 6002,
|
|
$object_pipeline = undef,
|
|
$container_pipeline = undef,
|
|
$account_pipeline = undef,
|
|
$mount_check = true,
|
|
$log_facility = 'LOG_LOCAL2',
|
|
$log_level = 'INFO',
|
|
Boolean $log_name_per_daemon = false,
|
|
$log_udp_host = undef,
|
|
$log_udp_port = undef,
|
|
$log_requests = true,
|
|
$max_connections = 25,
|
|
$hosts_allow = undef,
|
|
$hosts_deny = undef,
|
|
$incoming_chmod = 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r',
|
|
$outgoing_chmod = 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r',
|
|
$statsd_enabled = false,
|
|
$log_statsd_host = 'localhost',
|
|
$log_statsd_port = $facts['os_service_default'],
|
|
$log_statsd_default_sample_rate = $facts['os_service_default'],
|
|
$log_statsd_sample_rate_factor = $facts['os_service_default'],
|
|
$log_statsd_metric_prefix = $facts['os_service_default'],
|
|
$account_server_workers = $facts['os_workers'],
|
|
$container_server_workers = $facts['os_workers'],
|
|
$object_server_workers = $facts['os_workers'],
|
|
$object_server_mb_per_sync = $facts['os_service_default'],
|
|
$rsync_timeout = $facts['os_service_default'],
|
|
$rsync_bwlimit = $facts['os_service_default'],
|
|
$splice = false,
|
|
$rsync_use_xinetd = $::swift::params::xinetd_available,
|
|
) inherits swift::params {
|
|
|
|
include swift::deps
|
|
|
|
if ("${$object_port}" == '6000') {
|
|
warning("The default port for the object storage server has changed \
|
|
from 6000 to 6200 and will be changed in a later release")
|
|
}
|
|
|
|
if ("${container_port}" == '6001') {
|
|
warning("The default port for the container storage server has changed \
|
|
from 6001 to 6201 and will be changed in a later release")
|
|
}
|
|
|
|
if ("${$account_port}" == '6002') {
|
|
warning("The default port for the account storage server has changed \
|
|
from 6002 to 6202 and will be changed in a later release")
|
|
}
|
|
|
|
if $rsync_use_xinetd and ! $::swift::params::xinetd_available {
|
|
fail('xinetd is not available in this distro')
|
|
}
|
|
|
|
class { 'swift::storage':
|
|
storage_local_net_ip => $storage_local_net_ip,
|
|
rsync_use_xinetd => $rsync_use_xinetd,
|
|
}
|
|
|
|
Swift::Storage::Server {
|
|
devices => $devices,
|
|
storage_local_net_ip => $storage_local_net_ip,
|
|
mount_check => $mount_check,
|
|
log_level => $log_level,
|
|
log_name_per_daemon => $log_name_per_daemon,
|
|
log_facility => $log_facility,
|
|
log_udp_host => $log_udp_host,
|
|
log_udp_port => $log_udp_port,
|
|
log_requests => $log_requests,
|
|
statsd_enabled => $statsd_enabled,
|
|
log_statsd_host => $log_statsd_host,
|
|
log_statsd_port => $log_statsd_port,
|
|
log_statsd_default_sample_rate => $log_statsd_default_sample_rate,
|
|
log_statsd_sample_rate_factor => $log_statsd_sample_rate_factor,
|
|
log_statsd_metric_prefix => $log_statsd_metric_prefix,
|
|
max_connections => $max_connections,
|
|
hosts_allow => $hosts_allow,
|
|
hosts_deny => $hosts_deny,
|
|
incoming_chmod => $incoming_chmod,
|
|
outgoing_chmod => $outgoing_chmod,
|
|
}
|
|
|
|
swift::storage::server { "${account_port}":
|
|
type => 'account',
|
|
pipeline => $account_pipeline,
|
|
workers => $account_server_workers,
|
|
}
|
|
|
|
swift::storage::server { "${container_port}":
|
|
type => 'container',
|
|
pipeline => $container_pipeline,
|
|
workers => $container_server_workers,
|
|
}
|
|
|
|
swift::storage::server { "${object_port}":
|
|
type => 'object',
|
|
pipeline => $object_pipeline,
|
|
workers => $object_server_workers,
|
|
splice => $splice,
|
|
object_server_mb_per_sync => $object_server_mb_per_sync,
|
|
rsync_timeout => $rsync_timeout,
|
|
rsync_bwlimit => $rsync_bwlimit,
|
|
}
|
|
}
|