From a0453bfd160697c3e4769165736dcfa0e0dbdfdb Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Mon, 30 Nov 2015 11:22:50 +0000 Subject: [PATCH] abusesa: Added analytics --- abusesa/manifests/analytics.pp | 79 ++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 abusesa/manifests/analytics.pp diff --git a/abusesa/manifests/analytics.pp b/abusesa/manifests/analytics.pp new file mode 100644 index 0000000..9646373 --- /dev/null +++ b/abusesa/manifests/analytics.pp @@ -0,0 +1,79 @@ +# Install AbuseSA Analytics. +# +# === Parameters +# +# $config: +# Source URL of optional config file. +# +# $webhosts: +# List of analytics virtual hosts. +# +class abusesa::analytics( + $config=undef, + $webhosts=undef, +) { + + if ! $abusesa_analytics_package { + if $::abusesa_analytics_package_latest { + $abusesa_analytics_package = $::abusesa_analytics_package_latest + } else { + fail('Must define $abusesa_analytics_package or $abusesa_analytics_package_latest') + } + } + + file { '/usr/local/src/abusesa-analytics.tar.gz': + ensure => present, + mode => '0644', + owner => 'root', + group => 'root', + source => "puppet:///files/packages/${abusesa_analytics_package}", + } + util::extract::tar { '/usr/local/src/abusesa-analytics': + ensure => latest, + strip => '1', + source => '/usr/local/src/abusesa-analytics.tar.gz', + require => File['/usr/local/src/abusesa-analytics.tar.gz'], + } + python::setup::install { '/usr/local/src/abusesa-analytics': + require => Util::Extract::Tar['/usr/local/src/abusesa-analytics'], + } + + $htdocs = $::operatingsystem ? { + 'ubuntu' => '/usr/local/share/analytics/htdocs', + default => '/usr/share/analytics/htdocs', + } + + if $config { + file { "${htdocs}/config.json": + ensure => present, + mode => '0644', + owner => 'root', + group => 'root', + source => $config, + require => Python::Setup::Install['/usr/local/src/abusesa-analytics'], + } + } + + if $webhosts { + abusesa::analytics::configwebhost { $webhosts: + htdocs => $htdocs, + } + } + +} + + +# Enable AbuseSA Analytics for virtual host. +# +define abusesa::analytics::configwebhost($htdocs) { + + if ! defined(Abusesa::Configwebhost[$name]) { + abusesa::configwebhost { $name: } + } + + file { "/srv/www/https/${name}/abusesa/analytics": + ensure => link, + target => $htdocs, + } + +}