diff --git a/manifests/init.pp b/manifests/init.pp index 77287d7..4c95870 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,282 +1,278 @@ # This class installs redis # # @example Default install # include redis # # @example Slave Node # class { '::redis': # bind => '10.0.1.2', # slaveof => '10.0.1.1 6379', # } # # @example Binding on multiple interfaces # class { 'redis': # bind => ['127.0.0.1', '10.0.0.1', '10.1.0.1'], # } # # @example Binding on all interfaces # class { 'redis': # bind => [], # } # # @param [String] activerehashing Enable/disable active rehashing. # @param [String] aof_load_truncated Enable/disable loading truncated AOF file # @param [String] aof_rewrite_incremental_fsync Enable/disable fsync for AOF file # @param [String] appendfilename The name of the append only file # @param appendfsync Adjust fsync mode. Default: `everysec` # @param [String] appendonly Enable/disable appendonly mode. # @param [String] auto_aof_rewrite_min_size Adjust minimum size for auto-aof-rewrite. # @param [String] auto_aof_rewrite_percentage Adjust percentatge for auto-aof-rewrite. # @param bind Configure which IP address(es) to listen on. To bind on all interfaces, use an empty array. # @param config_dir Directory containing the configuration files. # @param config_dir_mode Adjust mode for directory containing configuration files. # @param [String] config_file_orig The location and name of a config file that provides the source # @param [String] config_file Adjust main configuration file. # @param config_file_mode Adjust permissions for configuration files. # @param [String] config_group Adjust filesystem group for config files. # @param [String] config_owner Adjust filesystem owner for config files. # @param [String] conf_template Define which template to use. # @param [String] daemonize Have Redis run as a daemon. # @param default_install Configure a default install of redis. # @param [String] databases Set the number of databases. # @param [String] dbfilename The filename where to dump the DB # @param [String] extra_config_file Description # @param [String] hash_max_ziplist_entries Set max ziplist entries for hashes. # @param [String] hash_max_ziplist_value Set max ziplist values for hashes. # @param [String] hll_sparse_max_bytes HyperLogLog sparse representation bytes limit # @param [String] hz Set redis background tasks frequency # @param [String] latency_monitor_threshold Latency monitoring threshold in milliseconds # @param [String] list_max_ziplist_entries Set max ziplist entries for lists. # @param [String] list_max_ziplist_value Set max ziplist values for lists. # @param log_dir Specify directory where to write log entries. # @param log_dir_mode Adjust mode for directory containing log files. # @param log_file Specify file where to write log entries. # @param [String] log_level Specify the server verbosity level. # @param manage_repo Enable/disable upstream repository configuration. # @param manage_package Enable/disable management of package # @param [String] managed_by_cluster_manager Choose if redis will be managed by a cluster manager such as pacemaker or rgmanager # @param [String] masterauth If the master is password protected (using the "requirepass" configuration # @param [String] maxclients Set the max number of connected clients at the same time. # @param [String] maxmemory Don't use more memory than the specified amount of bytes. # @param [String] maxmemory_policy How Redis will select what to remove when maxmemory is reached. # @param [String] maxmemory_samples Select as well the sample size to check. # @param [String] min_slaves_max_lag The lag in seconds # @param [String] min_slaves_to_write Minimum number of slaves to be in "online" state # @param [String] no_appendfsync_on_rewrite If you have latency problems turn this to 'true'. Otherwise leave it as # @param [String] notify_keyspace_events Which events to notify Pub/Sub clients about events happening # @param [String] notify_service You may disable service reloads when config files change if you # @param [String] package_ensure Default action for package. # @param [String] package_name Upstream package name. # @param [String] pid_file Where to store the pid. # @param port Configure which port to listen on. # @param [String] protected_mode Whether protected mode is enabled or not. Only applicable when no bind is set. # @param [String] ppa_repo Specify upstream (Ubuntu) PPA entry. # @param [String] rdbcompression Enable/disable compression of string objects using LZF when dumping. # @param [String] repl_backlog_size The replication backlog size # @param [String] repl_backlog_ttl The number of seconds to elapse before freeing backlog buffer # @param [String] repl_disable_tcp_nodelay Enable/disable TCP_NODELAY on the slave socket after SYNC # @param [Integer] repl_ping_slave_period Slaves send PINGs to server in a predefined interval. It's possible # @param [String] repl_timeout Set the replication timeout for: # @param [String] requirepass Require clients to issue AUTH before processing any # other commands. # @param [String] save_db_to_disk Set if save db to disk. # @param [String] save_db_to_disk_interval save the dataset every N seconds if there are at least M changes in the dataset # @param service_manage Specify if the service should be part of the catalog. # @param [String] service_enable Enable/disable daemon at boot. # @param [String] service_ensure Specify if the server should be running. # @param [String] service_group Specify which group to run as. # @param [String] service_hasrestart Does the init script support restart? # @param [String] service_hasstatus Does the init script support status? # @param [String] service_name Specify the service name for Init or Systemd. # @param [String] service_provider Specify the service provider to use # @param [String] service_user Specify which user to run as. # @param [String] set_max_intset_entries The following configuration setting sets the limit in the size of the # set in order to use this special memory saving encoding. # Default: 512 # @param [String] slave_priority The priority number for slave promotion by Sentinel # @param [String] slave_read_only You can configure a slave instance to accept writes or not. # @param [String] slave_serve_stale_data When a slave loses its connection with the master, or when the replication # is still in progress, the slave can act in two different ways: # 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will # still reply to client requests, possibly with out of date data, or the # data set may just be empty if this is the first synchronization. # # 2) if slave-serve-stale-data is set to 'no' the slave will reply with # an error "SYNC with master in progress" to all the kind of commands # but to INFO and SLAVEOF. # # Default: true # # @param [String] slaveof Use slaveof to make a Redis instance a copy of another Redis server. # @param [String] slowlog_log_slower_than Tells Redis what is the execution time, in microseconds, to exceed # in order for the command to get logged. # Default: 10000 # # @param [String] slowlog_max_len Tells Redis what is the length to exceed in order for the command # to get logged. # Default: 1024 # # @param [String] stop_writes_on_bgsave_error If false then Redis will continue to work as usual even if there # are problems with disk, permissions, and so forth. # Default: true # # @param [String] syslog_enabled Enable/disable logging to the system logger. # @param [String] syslog_facility Specify the syslog facility. # Must be USER or between LOCAL0-LOCAL7. # Default: undef # # @param [String] tcp_backlog Sets the TCP backlog # @param [String] tcp_keepalive TCP keepalive. # @param [String] timeout Close the connection after a client is idle for N seconds (0 to disable). # @param [String] ulimit Limit the use of system-wide resources. # @param [String] unixsocket Define unix socket path # @param [String] unixsocketperm Define unix socket file permissions # @param workdir The DB will be written inside this directory, with the filename specified # above using the 'dbfilename' configuration directive. # Default: /var/lib/redis/ # @param workdir_mode Adjust mode for data directory. # @param [String] zset_max_ziplist_entries Set max entries for sorted sets. # @param [String] zset_max_ziplist_value Set max values for sorted sets. # @param cluster_enabled Enables redis 3.0 cluster functionality # @param [String] cluster_config_file Config file for saving cluster nodes configuration. This file is never touched by humans. # Only set if cluster_enabled is true # Default: nodes.conf # @param [String] cluster_node_timeout Node timeout # Only set if cluster_enabled is true # Default: 5000 # @param [Integer] cluster_slave_validity_factor Control variable to disable promoting slave in case of disconnection from master # Only set if cluster_enabled is true # Default: 0 # @param [Boolean] cluster_require_full_coverage If false Redis Cluster will server queries even if requests about a subset of keys can be processed # Only set if cluster_enabled is true # Default: true # @param [Integer] cluster_migration_barrier Minimum number of slaves master will remain connected with, for another slave to migrate to a master which is no longer covered by any slave # Only set if cluster_enabled is true # Default: 1 class redis ( $activerehashing = $redis::params::activerehashing, $aof_load_truncated = $redis::params::aof_load_truncated, $aof_rewrite_incremental_fsync = $redis::params::aof_rewrite_incremental_fsync, $appendfilename = $redis::params::appendfilename, Enum['no', 'always', 'everysec'] $appendfsync = $redis::params::appendfsync, $appendonly = $redis::params::appendonly, $auto_aof_rewrite_min_size = $redis::params::auto_aof_rewrite_min_size, $auto_aof_rewrite_percentage = $redis::params::auto_aof_rewrite_percentage, Variant[Stdlib::IP::Address, Array[Stdlib::IP::Address]] $bind = $redis::params::bind, $output_buffer_limit_slave = $redis::params::output_buffer_limit_slave, $output_buffer_limit_pubsub = $redis::params::output_buffer_limit_pubsub, $conf_template = $redis::params::conf_template, Stdlib::Absolutepath $config_dir = $redis::params::config_dir, Stdlib::Filemode $config_dir_mode = $redis::params::config_dir_mode, $config_file = $redis::params::config_file, Stdlib::Filemode $config_file_mode = $redis::params::config_file_mode, $config_file_orig = $redis::params::config_file_orig, $config_group = $redis::params::config_group, $config_owner = $redis::params::config_owner, $daemonize = $redis::params::daemonize, $databases = $redis::params::databases, Boolean $default_install = $redis::params::default_install, $dbfilename = $redis::params::dbfilename, $extra_config_file = $redis::params::extra_config_file, $hash_max_ziplist_entries = $redis::params::hash_max_ziplist_entries, $hash_max_ziplist_value = $redis::params::hash_max_ziplist_value, $hll_sparse_max_bytes = $redis::params::hll_sparse_max_bytes, $hz = $redis::params::hz, $latency_monitor_threshold = $redis::params::latency_monitor_threshold, $list_max_ziplist_entries = $redis::params::list_max_ziplist_entries, $list_max_ziplist_value = $redis::params::list_max_ziplist_value, Stdlib::Absolutepath $log_dir = $redis::params::log_dir, Stdlib::Filemode $log_dir_mode = $redis::params::log_dir_mode, Stdlib::Absolutepath $log_file = $redis::params::log_file, $log_level = $redis::params::log_level, Boolean $manage_service_file = $redis::params::manage_service_file, Boolean $manage_package = $redis::params::manage_package, Boolean $manage_repo = $redis::params::manage_repo, $masterauth = $redis::params::masterauth, $maxclients = $redis::params::maxclients, $maxmemory = $redis::params::maxmemory, $maxmemory_policy = $redis::params::maxmemory_policy, $maxmemory_samples = $redis::params::maxmemory_samples, $min_slaves_max_lag = $redis::params::min_slaves_max_lag, $min_slaves_to_write = $redis::params::min_slaves_to_write, $no_appendfsync_on_rewrite = $redis::params::no_appendfsync_on_rewrite, $notify_keyspace_events = $redis::params::notify_keyspace_events, $notify_service = $redis::params::notify_service, $managed_by_cluster_manager = $redis::params::managed_by_cluster_manager, $package_ensure = $redis::params::package_ensure, $package_name = $redis::params::package_name, $pid_file = $redis::params::pid_file, Stdlib::Port $port = $redis::params::port, $protected_mode = $redis::params::protected_mode, $ppa_repo = $redis::params::ppa_repo, $rdbcompression = $redis::params::rdbcompression, $repl_backlog_size = $redis::params::repl_backlog_size, $repl_backlog_ttl = $redis::params::repl_backlog_ttl, $repl_disable_tcp_nodelay = $redis::params::repl_disable_tcp_nodelay, Integer[1] $repl_ping_slave_period = $redis::params::repl_ping_slave_period, $repl_timeout = $redis::params::repl_timeout, $requirepass = $redis::params::requirepass, $save_db_to_disk = $redis::params::save_db_to_disk, $save_db_to_disk_interval = $redis::params::save_db_to_disk_interval, $service_enable = $redis::params::service_enable, $service_ensure = $redis::params::service_ensure, $service_group = $redis::params::service_group, $service_hasrestart = $redis::params::service_hasrestart, $service_hasstatus = $redis::params::service_hasstatus, Boolean $service_manage = $redis::params::service_manage, $service_name = $redis::params::service_name, $service_provider = $redis::params::service_provider, $service_user = $redis::params::service_user, $set_max_intset_entries = $redis::params::set_max_intset_entries, $slave_priority = $redis::params::slave_priority, $slave_read_only = $redis::params::slave_read_only, $slave_serve_stale_data = $redis::params::slave_serve_stale_data, $slaveof = $redis::params::slaveof, $slowlog_log_slower_than = $redis::params::slowlog_log_slower_than, $slowlog_max_len = $redis::params::slowlog_max_len, $stop_writes_on_bgsave_error = $redis::params::stop_writes_on_bgsave_error, $syslog_enabled = $redis::params::syslog_enabled, $syslog_facility = $redis::params::syslog_facility, $tcp_backlog = $redis::params::tcp_backlog, $tcp_keepalive = $redis::params::tcp_keepalive, $timeout = $redis::params::timeout, $unixsocket = $redis::params::unixsocket, $unixsocketperm = $redis::params::unixsocketperm, $ulimit = $redis::params::ulimit, Stdlib::Absolutepath $workdir = $redis::params::workdir, Stdlib::Filemode $workdir_mode = $redis::params::workdir_mode, $zset_max_ziplist_entries = $redis::params::zset_max_ziplist_entries, $zset_max_ziplist_value = $redis::params::zset_max_ziplist_value, Boolean $cluster_enabled = $redis::params::cluster_enabled, $cluster_config_file = $redis::params::cluster_config_file, $cluster_node_timeout = $redis::params::cluster_node_timeout, Integer[0] $cluster_slave_validity_factor = $redis::params::cluster_slave_validity_factor, Boolean $cluster_require_full_coverage = $redis::params::cluster_require_full_coverage, Integer[0] $cluster_migration_barrier = $redis::params::cluster_migration_barrier ) inherits redis::params { contain redis::preinstall contain redis::install contain redis::config contain redis::service Class['redis::preinstall'] -> Class['redis::install'] -> Class['redis::config'] if $redis::notify_service { Class['redis::config'] ~> Class['redis::service'] } - if $::puppetversion and versioncmp($::puppetversion, '4.0.0') < 0 { - warning("Puppet 3 is EOL as of 01/01/2017, The 3.X.X releases of the module are the last that will support Puppet 3\nFor more information, see https://github.com/arioch/puppet-redis#puppet-3-support") - } - exec { 'systemd-reload-redis': command => 'systemctl daemon-reload', refreshonly => true, path => '/bin:/usr/bin:/usr/local/bin', } }