BBlack has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/85120


Change subject: netmapper data sync stuff
......................................................................

netmapper data sync stuff

Change-Id: I1e95f9a348d2f7441963d0401a760b4f9e13ff5e
---
M manifests/role/cache.pp
A modules/varnish/files/netmapper_update.sh
A modules/varnish/manifests/netmapper_update.pp
3 files changed, 88 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/20/85120/1

diff --git a/manifests/role/cache.pp b/manifests/role/cache.pp
index f503e50..a9c3adf 100644
--- a/manifests/role/cache.pp
+++ b/manifests/role/cache.pp
@@ -955,6 +955,10 @@
 
                include varnish::monitoring::ganglia::vhtcpd
 
+               varnish::netmapper_update {
+                       "zero.json": url => 
"http://meta.wikimedia.org/w/api.php?action=zeroconfig";;
+               }
+
                varnish::instance { "mobile-backend":
                        name => "",
                        vcl => "mobile-backend",
diff --git a/modules/varnish/files/netmapper_update.sh 
b/modules/varnish/files/netmapper_update.sh
new file mode 100644
index 0000000..e310c24
--- /dev/null
+++ b/modules/varnish/files/netmapper_update.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+set -e
+set -o pipefail
+umask 022
+
+if [ $# -ne 2 ]; then
+       echo "Usage: $0 <filename> <URL>"
+       exit 99
+fi
+
+FN=$1
+URL=$2
+
+BASE_D='/var/netmapper'
+TEMP_D=`/bin/mktemp -dp "${BASE_D}"`
+TEMP_FN="${TEMP_D}/${FN}"
+FN_ABS="${BASE_D}/${FN}"
+
+function cleanup {
+       rm -f "$TEMP_FN"
+       rmdir "$TEMP_D"
+}
+trap cleanup EXIT
+
+wget -q --timeout 47 -O "$TEMP_FN" "$URL"
+
+# XXX After software is deployed:
+# /usr/bin/vnm_validate $TEMP_FN
+
+OLD_MD5=0
+NEW_MD5=`md5sum "$TEMP_FN" | cut -b 1-32`
+if [ -f "$FN_ABS" ]; then
+       OLD_MD5=`md5sum "$FN_ABS" | cut -b 1-32`
+fi
+
+if [ $OLD_MD5 != $NEW_MD5 ]; then
+       mv -f "$TEMP_FN" "$FN_ABS"
+fi
diff --git a/modules/varnish/manifests/netmapper_update.pp 
b/modules/varnish/manifests/netmapper_update.pp
new file mode 100644
index 0000000..5efeb1a
--- /dev/null
+++ b/modules/varnish/manifests/netmapper_update.pp
@@ -0,0 +1,46 @@
+class varnish::netmapper_update_common {
+
+       group { "netmap": ensure => present; }
+
+       user { "netmap":
+               home       => "/var/netmapper"
+               gid        => "netmap"
+               system     => true,
+               managehome => false,
+               shell      => "/bin/false",
+               require    => Group["netmap"]
+       }
+
+       file { "/var/netmapper":
+               owner   => "netmap",
+               group   => "netmap",
+               ensure  => directory,
+               require => User["netmap"],
+               mode    => 0755;
+       }
+
+       file { "/usr/share/varnish/netmapper_update.sh":
+               source => 
"puppet:///modules/${module_name}/netmapper_update.sh",
+               mode   => 0555;
+       }
+}
+
+define varnish::netmapper_update($url, $hour = "*", $minute = "*/10") {
+       require "varnish::netmapper_update_common";
+
+       $cmd = "/usr/share/varnish/netmapper_update.sh \"${name}\" \"${url}\"";
+
+       exec { "netmapper_update_${name}_initial":
+               user    => "netmap",
+               command => $cmd,
+               creates => "/var/netmapper/${name}",
+               before  => Class[varnish::instance];
+       }
+
+       cron { "netmapper_update_${name}":
+               user    => "netmap",
+               command => $cmd,
+               hour    => $hour,
+               minute  => $minute;
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/85120
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1e95f9a348d2f7441963d0401a760b4f9e13ff5e
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: BBlack <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to