Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: modules/statsclient/manifests/init.pp

Issue 11468051: Update stats processing (Closed)
Patch Set: Created Aug. 23, 2013, 1:58 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/statsclient/manifests/init.pp
===================================================================
new file mode 100644
--- /dev/null
+++ b/modules/statsclient/manifests/init.pp
@@ -0,0 +1,83 @@
+class statsclient (
+ $log_path,
+ $custom_sitescriptsini_source = [],
+ ) {
+
+ $sitescriptsini_source = flatten(['puppet:///modules/statsclient/sitescripts.ini', $custom_sitescriptsini_source])
+
+ user {'stats':
+ ensure => present,
+ home => '/home/stats',
+ managehome => true,
+ }
+
+ file {'/home/stats/.ssh':
+ ensure => directory,
+ owner => stats,
+ mode => 0600,
+ require => User['stats'],
+ }
+
+ file {'/home/stats/.ssh/authorized_keys':
+ ensure => present,
+ owner => stats,
+ mode => 0400,
+ source => 'puppet:///modules/private/stats-authorized_keys',
+ }
+
+ class {'ssh':
+ custom_configuration => 'Match User stats
+ AllowTcpForwarding no
+ X11Forwarding no
+ AllowAgentForwarding no
+ GatewayPorts no
+ ForceCommand cat /var/www/stats.json',
+ }
+
+ class {'sitescripts':
+ sitescriptsini_source => $sitescriptsini_source,
+ }
+
+ package {'python-geoip':}
+
+ package {'python-simplejson':}
+
+ package {'python-jinja2':}
Wladimir Palant 2013/08/23 14:01:38 The log processor doesn't really need Jinja2. Howe
Felix Dahlke 2013/08/28 14:43:32 Did you know that you can require multiple package
+
+ file {'/var/www/stats.json':
+ ensure => present,
+ owner => stats,
+ mode => 644,
+ }
+
+ file {'/opt/cron_geoipdb_update.sh':
+ ensure => file,
+ owner => root,
+ mode => 0750,
+ source => 'puppet:///modules/statsclient/cron_geoipdb_update.sh',
+ }
+
+ cron {'mirrorstats':
+ ensure => present,
+ require => [
+ User['stats'],
+ Package['python-geoip'],
+ Exec["fetch_sitescripts"]
+ ],
+ command => "gzip -cd ${log_path} | python -m sitescripts.stats.bin.logprocessor",
+ environment => ['MAILTO=admins@adblockplus.org', 'PYTHONPATH=/opt/sitescripts'],
+ user => stats,
+ hour => 0,
+ minute => 25,
+ }
+
+ cron {'geoipdb_update':
+ ensure => present,
+ require => File['/opt/cron_geoipdb_update.sh'],
+ command => '/opt/cron_geoipdb_update.sh',
+ user => root,
+ hour => 3,
+ minute => 15,
+ monthday => 3,
+ }
+}

Powered by Google App Engine
This is Rietveld