fuel-library/deployment/puppet/squid/manifests/params.pp
2013-03-11 11:45:50 +00:00

369 lines
10 KiB
Puppet

# Class: squid::params
#
# Sets internal variables and defaults for squid module
# This class is automatically loaded in all the classes that use the values set here
#
class squid::params (
$cache_size = 4096,
$cache_mem = 128,
)
{
## DEFAULTS FOR VARIABLES USERS CAN SET
# (Here are set the defaults, provide your custom variables externally)
# (The default used is in the line with '')
# Full hostname of squid server
$http_port = $squid_port ? {
'' => "3128",
default => "${squid_port}",
}
$http_port_options = $squid_port_options ? {
default => "${squid_port_options}"
}
$icp_port = $squid_icp_port ? {
'' => "3130",
default => "${squid_icp_port}",
}
$type_accelerator = $squid_type_accelerator ? {
'' => "on",
false => "on",
true => "off",
}
$cache_hostname = $squid_cache_hostname ? {
'' => "localhost",
default => "${squid_cache_hostname}",
}
$default_acls = $squid_default_acls ? {
'' => true,
default => "${squid_default_acls}",
}
$custom_acls = $squid_custom_acls ? {
'' => "",
default => $squid_custom_acls
}
$default_http_access = $squid_default_http_access ? {
'' => true,
default => "${squid_default_http_access}",
}
$custom_http_accesses = $squid_custom_http_accesses ? {
'' => "",
default => $squid_custom_http_accesses,
}
$auth_param = $squid_auth_param ? {
'' => "",
default => $squid_auth_param,
}
$cache_dir = $squid_cache_dir ? {
'' => "/var/spool/squid",
default => "${squid_cache_dir}",
}
$cache_dir_type = $squid_cache_dir_type ? {
'' => "ufs",
default => "${squid_cache_dir_type}",
}
$cache_parent = $squid_cache_parent ? {
default => "${squid_cache_parent}",
}
$cache_parent_port = $squid_cache_parent_port ? {
'' => "3128",
default => "${squid_cache_parent_port}"
}
$cache_parent_icp_port = $squid_cache_parent_icp_port ? {
'' => "3130",
default => "${squid_cache_parent_icp_port}",
}
$cache_parent_options = $squid_cache_parent_options ? {
'' => "proxy-only default",
default => "${squid_cache_parent_options}",
}
$cache_peers = $squid_cache_peers ? {
'' => "",
default => $squid_cache_peers
}
$cache_peers_port = $squid_cache_peers_port ? {
'' => "3128",
default => "${squid_cache_peers_port}",
}
$cache_peers_icp_port = $squid_cache_peers_icp_port ? {
'' => "3130",
default => "${squid_cache_peers_icp_port}",
}
$cache_peers_options = $squid_cache_peers_options ? {
'' => "proxy-only",
default => "${squid_cache_peers_options}",
}
$cache_log_dir = $squid_cache_log_dir ? {
'' => $operatingsystem ? {
ubuntu => "/var/log/squid3",
debian => "/var/log/squid3",
default => "/var/log/squid",
},
default => "${squid_cache_log_dir}",
}
$cache_log_rotate = $squid_cache_log_rotate ? {
'' => "0",
default => "${squid_cache_log_rotate}",
}
## MODULE INTERNAL VARIABLES
# (Modify to adapt to unsupported OSes)
$packagename = $operatingsystem ? {
solaris => "CSWsquid",
debian => "squid3",
ubuntu => "squid3",
default => "squid",
}
$servicename = $operatingsystem ? {
debian => "squid3",
ubuntu => "squid3",
default => "squid",
}
$processname = $operatingsystem ? {
debian => "squid3",
ubuntu => "squid3",
default => "squid",
}
$processuser = $operatingsystem ? {
debian => "proxy",
ubuntu => "proxy",
default => "squid",
}
$hasstatus = $operatingsystem ? {
debian => false,
ubuntu => false,
default => true,
}
$configfile = $operatingsystem ? {
freebsd => "/usr/local/etc/squid/squid.conf",
debian => "/etc/squid3/squid.conf",
ubuntu => "/etc/squid3/squid.conf",
default => "/etc/squid/squid.conf",
}
$configfile_mode = $operatingsystem ? {
debian => "600",
ubuntu => "600",
default => "640",
}
$configfile_owner = $operatingsystem ? {
default => "root",
}
$configfile_group = $operatingsystem ? {
debian => "root",
ubuntu => "root",
default => "squid",
}
$configdir = $operatingsystem ? {
freebsd => "/usr/local/etc/squid/",
default => "/etc/squid",
}
$initconfigfile = $operatingsystem ? {
debian => "/etc/default/squid",
ubuntu => "/etc/default/squid",
default => "/etc/sysconfig/squid",
}
# Used by monitor class
$pidfile = $operatingsystem ? {
default => "/var/run/squid.pid",
}
# Used by backup class
$datadir = $operatingsystem ? {
default => "/var/spool/squid",
}
# Used by backup class - Provide the file name, if there's no dedicated dir
$logdir = $operatingsystem ? {
default => "/var/log/squid",
}
# Used by monitor and firewall class
# If you need to define additional ports, call them $protocol1/$port1 and add the relevant
# parts in firewall.pp and monitor.pp
$protocol = "tcp"
$port = "${http_port}"
## DEFAULTS FOR MONITOR CLASS
# These are settings that influence the (optional) squid::monitor class
# You can define these variables or leave the defaults
# The apparently complex variables assignements below follow this logic:
# - If no user variable is set, a reasonable default is used
# - If the user has set a host-wide variable (ex: $monitor_target ) that one is set
# - The host-wide variable can be overriden by a module specific one (ex: $squid_monitor_target)
# How the monitor server refers to the monitor target
$monitor_target_real = $squid_monitor_target ? {
'' => $monitor_target ? {
'' => "${fqdn}",
default => $monitor_target,
},
default => "$squid_monitor_target",
}
# BaseUrl to access this host
$monitor_baseurl_real = $squid_monitor_baseurl ? {
'' => $monitor_baseurl ? {
'' => "http://${fqdn}",
default => $monitor_baseurl,
},
default => "${squid_monitor_baseurl}",
}
# Pattern to look for in the URL defined in squid::monitor class
$monitor_url_pattern = $squid_monitor_url_pattern ? {
'' => "OK",
default => "${squid_monitor_url_pattern}",
}
# If squid port monitoring is enabled
$monitor_port_enable = $squid_monitor_port ? {
'' => $monitor_port ? {
'' => true,
default => $monitor_port,
},
default => $squid_monitor_port,
}
# If squid url monitoring is enabled
$monitor_url_enable = $squid_monitor_url ? {
'' => $monitor_url ? {
'' => false,
default => $monitor_url,
},
default => $squid_monitor_url,
}
# If squid process monitoring is enabled
$monitor_process_enable = $squid_monitor_process ? {
'' => $monitor_process ? {
'' => true,
default => $monitor_process,
},
default => $squid_monitor_process,
}
# If squid plugin monitoring is enabled
$monitor_plugin_enable = $squid_monitor_plugin ? {
'' => $monitor_plugin ? {
'' => false,
default => $monitor_plugin,
},
default => $squid_monitor_plugin,
}
## DEFAULTS FOR BACKUP CLASS
# These are settings that influence the (optional) squid::backup class
# You can define these variables or leave the defaults
# How the backup server refers to the backup target
$backup_target_real = $squid_backup_target ? {
'' => $backup_target ? {
'' => "${fqdn}",
default => $backup_target,
},
default => "$squid_backup_target",
}
# Frequency of backups
$backup_frequency = $squid_backup_frequency ? {
'' => "daily",
default => "$squid_backup_frequency",
}
# If squid data have to be backed up
$backup_data_enable = $squid_backup_data ? {
'' => $backup_data ? {
'' => false,
default => $backup_data,
},
default => $squid_backup_data,
}
# If squid logs have to be backed up
$backup_log_enable = $squid_backup_log ? {
'' => $backup_log ? {
'' => true,
default => $backup_log,
},
default => $squid_backup_log,
}
## DEFAULTS FOR FIREWALL CLASS
# These are settings that influence the (optional) squid::firewall class
# You can define these variables or leave the defaults
# Source IPs that can access this service - Use iptables friendly format
$firewall_source_real = $squid_firewall_source ? {
'' => $firewall_source ? {
'' => "0.0.0.0/0",
default => $firewall_source,
},
default => "$squid_firewall_source",
}
# Destination IP to use for this host (Default facter's $ipaddress)
$firewall_destination_real = $squid_firewall_destination ? {
'' => $firewall_destination ? {
'' => "${ipaddress}",
default => $firewall_destination,
},
default => "$squid_firewall_destination",
}
## FILE SERVING SOURCE
# Sets the correct source for static files
# In order to provide files from different sources without modifying the module
# you can override the default source path setting the variable $base_source
# Ex: $base_source="puppet://ip.of.fileserver" or $base_source="puppet://$servername/myprojectmodule"
# What follows automatically manages the new source standard (with /modules/) from 0.25
case $base_source {
'': {
$general_base_source = $puppetversion ? {
/(^0.25)/ => "puppet:///modules",
/(^0.)/ => "puppet://$servername",
default => "puppet:///modules",
}
}
default: { $general_base_source=$base_source }
}
}