puppet-standalone-mashup/shared/additional-modules/varnish/manifests/init.pp
2012-05-08 15:10:26 -04:00

71 lines
1.8 KiB
Puppet

class varnish($version, $store_file_mb = 1024) {
$install_path = install_path($name, $version)
$config = config_path($name)
$share = share_path($name)
$data = data_path($name)
$sbin = sbin_path($name)
$bin_path = bin_path($name)
$bin = "${sbin}/${name}d"
$pid = pid_path($name)
$log = log_path($name)
$ncsa_bin = "${bin_path}/varnishncsa"
$ncsa_pid = pid_path('varnishncsa')
$ncsa_log = $log
$sysconfig_dir = "${config}/sysconfig"
$vcl_path = "${config}/default.vcl"
$override_config = "${sysconfig_dir}/${name}"
$store_file_path = "${data}/store"
$store_file_size = $store_file_mb * 1024 * 1024
$backend_port = '8080'
$assets_age = 86400
$no_ttl_time = "10m"
$healthy_grace_time = "1m"
$sick_grace_time = "24h"
$probe_interval = "3s"
build_and_install { $name:
version => $version,
source => "http://repo.varnish-cache.org/source/varnish-<%= scope.lookupvar('version') %>.tar.gz"
}
mkdir_p { [ $config, $log, $share, $sysconfig_dir, $data ]:
path => $base::path,
require => Build_and_install[$name]
}
file { $override_config:
ensure => present,
mode => 644,
content => template('varnish/defaults'),
require => Mkdir_p[$sysconfig_dir],
}
exec { 'create-store-file':
command => "dd if=/dev/zero of=${store_file_path} bs=${store_file_size} count=1",
timeout => 0,
unless => "test -f ${store_file_path}",
path => $base::path,
require => Mkdir_p[$data],
logoutput => true
}
$varnish_start = "service varnish start"
$varnish_stop = "service varnish stop"
god_init { $name:
start => $varnish_start,
stop => $varnish_stop,
restart => "${varnish_stop} && ${varnish_start}",
pid_file => $pid,
ensure => present,
require => Build_and_install[$name]
}
}