Faidon Liambotis has uploaded a new change for review.
https://gerrit.wikimedia.org/r/231144
Change subject: (WIP) Kill misc::limn & limn
......................................................................
(WIP) Kill misc::limn & limn
Unreferenced by the rest of the production puppet tree.
NOTE: If this is being used in Labs, this commit should be replaced by
one that deprecates the non-modularized misc::limn.
TODO: figure out if the rest of the limn references (e.g.
modules/statistics/manifests/limn/) are also unneeded.
Change-Id: I7018e0458eeb278c8c36bbed062521333c997685
---
D manifests/misc/limn.pp
D modules/limn/README.md
D modules/limn/manifests/init.pp
D modules/limn/manifests/instance.pp
D modules/limn/manifests/instance/proxy.pp
D modules/limn/templates/init-limn.conf.erb
D modules/limn/templates/static.vhost.erb
D modules/limn/templates/vhost-limn-proxy-wp-zero-gone.conf.erb
D modules/limn/templates/vhost-limn-proxy.conf.erb
9 files changed, 0 insertions(+), 448 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/44/231144/1
diff --git a/manifests/misc/limn.pp b/manifests/misc/limn.pp
deleted file mode 100644
index b0f9e84..0000000
--- a/manifests/misc/limn.pp
+++ /dev/null
@@ -1,66 +0,0 @@
-# == Define misc::limn::instance
-# Sets up a limn instance as well as a
-# limn instance proxy. This define
-# uses $::realm to infer an appropriate
-# default $server_name and $server_aliases.
-#
-# == Parameters:
-# $port - limn port
-# $server_name - ServerName for limn instance proxy. Default it to
infer from $name and $::realm.
-# $server_aliases - ServerAliases for limn instance proxy. Default is to
infer from $name and $::realm.
-# $environment - Node environment. Default: production
-# $base_directory - Limn install base directory. Default:
/usr/local/share/limn
-# $var_directory - Limn instance var directory. Limn datafiles live
here. Default: /var/lib/limn/$name
-# $proxy_site_template - Template for proxy Apache conf Default:
limn/vhost-limn-proxy.conf.erb.
-#
-# == Example
-# misc::limn::instance { 'reportcard': }
-#
-define misc::limn::instance(
- $port = 8081,
- $environment = 'production',
- $base_directory = '/usr/local/share/limn',
- $var_directory = "/var/lib/limn/${name}",
- $server_name = undef,
- $server_aliases = undef,
- $proxy_site_template = 'limn/vhost-limn-proxy.conf.erb')
-{
- ::limn::instance { $name:
- port => $port,
- environment => $environment,
- base_directory => $base_directory,
- var_directory => $var_directory,
- }
-
- # If $server_name was not specified,
- # Pick $name.wikimedia.org for production,
- # $name.wmflabs.org for labs,
- # and just $name for anything else.
- $servername = $server_name ? {
- undef => $::realm ? {
- 'production' => "${name}.wikimedia.org",
- 'labs' => "${name}.wmflabs.org",
- default => $name,
- },
- default => $server_name,
- }
-
- # If $server_aliases was not specified,
- # Pick ${name}.instance-proxy.wmflabs.org for labs,
- # and none for anything else.
- $serveraliases = $server_aliases ? {
- undef => $::realm ? {
- 'labs' => "${name}.instance-proxy.wmflabs.org",
- default => '',
- },
- default => $server_aliases,
- }
-
- limn::instance::proxy { $name:
- limn_port => $port,
- server_name => $servername,
- server_aliases => $serveraliases,
- require => ::Limn::Instance[$name],
- site_template => $proxy_site_template,
- }
-}
diff --git a/modules/limn/README.md b/modules/limn/README.md
deleted file mode 100644
index 7fe0178..0000000
--- a/modules/limn/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-[Limn][https://github.com/wikimedia/limn] puppet module.
-
-# Usage
-
-```puppet
-
-# Spawn up a limn instance called 'my-instance'.
-# Data files are expected to be at
-# /var/lib/limn/my-instance/data.
-limn::instance { "my-instance": }
-
-```
-
-Note that the limn class by default does not attempt to install a limn
-package. There is not currently a supported limn .deb package, so we
-recommend cloning the [limn repository][https://github.com/wikimedia/limn]
-directly into /usr/local/share/limn (or elsewhere if you set base_directory to
something non default on limn::instance). Or deploy limn to wherever you
-see fit.
-
-
-```limn::instance::proxy``` sets up an Apache VirtualHost reverse proxying on
port 80.
-
-## Example:
-
-```bash
-# Install Limn at /usr/local/share/limn
-sudo git clone https://github.com/wikimedia/limn.git /usr/local/share/limn
-```
-
-```puppet
-
-class role::analytics::reportcard {
- # spawn up a limn instance called 'reportcard'
- # using the defaults.
- limn::instance { 'reportcard': }
-
- # We want an Apache VirtualHost to proxy
- # 'reportcard.wmflabs.org' to the reportcard
- # limn instance.
- limn::instance::proxy { 'reportcard':
- server_name => 'reportcard.wmflabs.org',
- require => Limn::Instance['reportcard'],
- }
-}
-```
-
-# Requirements
-* Apache2 is installed and running. The service 'apache2' must be managed by
puppet somehow. You choose.
-* mod_rewrite, mod_proxy, and mod_proxy_http must be enabled:
-** ```a2enmod rewrite && a2enmod proxy && a2enmod proxy_http```
-** Or manage these via Puppet however you see fit.
-
-
-
diff --git a/modules/limn/manifests/init.pp b/modules/limn/manifests/init.pp
deleted file mode 100644
index d6abb7e..0000000
--- a/modules/limn/manifests/init.pp
+++ /dev/null
@@ -1,58 +0,0 @@
-# == Class limn
-# Sets up limn.
-# To spawn up a limn server instance, use the limn::instance define.
-#
-# NOTE: This does not install limn. You must do that youself.
-# When you use limn::instance, set $base_directory to the location
-# in which you installed limn.
-#
-# == Parameters
-# $var_directory - Default path to Limn var directory. This will also be
limn user's home directory. Default: /var/lib/limn
-# $log_directory - Default path to Limn server logs. Default: /var/log/limn
-#
-class limn(
- $var_directory = '/var/lib/limn',
- $log_directory = '/var/log/limn'
-){
- $user = 'limn'
- $group = 'limn'
-
- # Make sure nodejs is installed.
- require_package('nodejs')
-
- group { $group:
- ensure => present,
- system => true,
- }
-
- user { $user:
- ensure => present,
- gid => $group,
- home => $var_directory,
- managehome => false,
- system => true,
- require => Group[$group],
- }
-
- # Default limn containing data directory.
- # Instances default to storing data in
- # $var_directory/$name
- file { $var_directory:
- ensure => directory,
- owner => $user,
- group => $group,
- mode => '0755',
- require => [User[$user], Group[$group]],
- }
-
- # Default limn log directory.
- # Instances will log to
- # $log_directory/limn-$name.log
- file { $log_directory:
- ensure => directory,
- owner => $user,
- group => $group,
- mode => '0755',
- require => [User[$user], Group[$group]],
- }
-}
diff --git a/modules/limn/manifests/instance.pp
b/modules/limn/manifests/instance.pp
deleted file mode 100644
index 100a2cb..0000000
--- a/modules/limn/manifests/instance.pp
+++ /dev/null
@@ -1,92 +0,0 @@
-# == Define limn::instance
-# Starts up a Limn Server instance.
-#
-# == Parameters:
-# $port - Listen port for Limn instance. Default: 8081
-# $environment - Node environment. Default: production
-# $base_directory - Limn install base directory. Default:
/usr/local/share/limn
-# $var_directory - Limn instance var directory. Limn datafiles live here.
Default: /var/lib/limn/$name
-# $log_file - Limn instance log file. Default:
/var/log/limn/limn-$name.log
-# $ensure - present|absent. Default: present
-#
-define limn::instance (
- $port = '8081',
- $environment = 'production',
- $base_directory = '/usr/local/share/limn',
- $var_directory = "/var/lib/limn/${name}",
- $log_file = "/var/log/limn/limn-${name}.log",
- $ensure = 'present'
-){
- require limn
-
- validate_ensure($ensure)
-
- if !defined(File[$base_directory]) {
- file { $base_directory:
- ensure => directory,
- owner => $limn::user,
- group => $limn::group,
- mode => '0775',
- }
- }
-
- file { $var_directory:
- ensure => directory,
- owner => $limn::user,
- group => $limn::group,
- mode => '0775',
- }
-
- # The upstart init conf will start server.co
- # logging to this file.
- file { $log_file:
- ensure => file,
- owner => $limn::user,
- group => $limn::group,
- mode => '0775',
- }
-
- # symlink $base_directory/var/{css,js,vendor}
- # in $var_directory
- file { "${var_directory}/css":
- ensure => ensure_link($ensure),
- target => "${base_directory}/var/css",
- }
- file { "${var_directory}/js":
- ensure => ensure_link($ensure),
- target => "${base_directory}/var/js",
- }
- file { "${var_directory}/vendor":
- ensure => ensure_link($ensure),
- target => "${base_directory}/var/vendor",
- }
-
- # Install an upstart init file for this limn server instance.
- file { "/etc/init/limn-${name}.conf":
- ensure => $ensure,
- content => template('limn/init-limn.conf.erb'),
- owner => 'root',
- group => 'root',
- mode => '0444',
- require => [File[$var_directory], File[$log_file]],
- }
-
- # Symlink an /etc/init.d script to upstart-job
- # for SysV compatibility.
- $sysv_ensure = $ensure ? {
- present => link,
- default => absent,
- }
- file { "/etc/init.d/limn-${name}":
- ensure => $sysv_ensure,
- target => '/lib/init/upstart-job',
- require => File["/etc/init/limn-${name}.conf"],
- }
-
- # Start the service.
- service { "limn-${name}":
- ensure => ensure_service($ensure),
- provider => 'upstart',
- subscribe => File["/etc/init/limn-${name}.conf"],
- }
-}
diff --git a/modules/limn/manifests/instance/proxy.pp
b/modules/limn/manifests/instance/proxy.pp
deleted file mode 100644
index acdaf32..0000000
--- a/modules/limn/manifests/instance/proxy.pp
+++ /dev/null
@@ -1,39 +0,0 @@
-# == Define limn::instance::proxy
-# Sets up an apache mod_rewrite proxy for proxying to a Limn instance.
-# Static files in $document_root will be served by apache.
-#
-# NOTE: You must install apache yourself.
-# A Service and Package named 'apache2' must be defined.
-# You must also make sure mod_rewrite, mod_proxy, and mod_proxy_http
-# are enabled.
-#
-# == Parameters:
-# $port - Apache port to Listen on. Default: 80.
-# $limn_host - Hostname or IP of Limn instnace. Default: 127.0.0.1
-# $limn_port - Port of Limn instance. Default: 8081
-# $document_root - Path to Apache document root. This should be the
limn::instance $var_directory. Default: /usr/local/share/limn/var.
-# $server_name - Named VirtualHost. Default: "$name.$domain"
-# $server_aliases - Server name aliases. Default: none.
-# $site_template - Template for Apache conf. Default:
limn/vhost-limn-proxy.conf.erb.
-#
-define limn::instance::proxy (
- $port = '80',
- $limn_host = '127.0.0.1',
- $limn_port = '8081',
- $document_root = '/usr/local/share/limn/var',
- $server_name = "${name}.${::domain}",
- $server_aliases = '',
- $site_template = 'limn/vhost-limn-proxy.conf.erb',
-){
- # Configure the Apache Limn instance proxy VirtualHost.
- $priority = 10
- file { "${priority}-limn-${name}.conf":
- path => "/etc/apache2/sites-enabled/${priority}-limn-${name}.conf",
- content => template($site_template),
- owner => 'root',
- group => 'root',
- mode => '0444',
- require => Package['apache2'],
- notify => Service['apache2'],
- }
-}
diff --git a/modules/limn/templates/init-limn.conf.erb
b/modules/limn/templates/init-limn.conf.erb
deleted file mode 100644
index 861bb04..0000000
--- a/modules/limn/templates/init-limn.conf.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-# Note: This file is managed by Puppet.
-
-# Limn <%= @name %> Server Instance
-
-description "Limn <%= @name %> Server Instance"
-
-start on runlevel [2345]
-stop on starting rc RUNLEVEL=[016]
-
-respawn
-respawn limit 2 5
-
-umask 007
-
-kill timeout 300
-
-env NODE_ENV=<%= @environment %>
-env LIMN_PORT=<%= @port %>
-env LIMN_VARDIR=<%= @var_directory %>
-
-setuid <%= scope.lookupvar('limn::user') %>
-setgid <%= scope.lookupvar('limn::group') %>
-
-console output
-chdir <%= @base_directory %>
-exec ./node_modules/.bin/coco ./server/server.co >> <%= @log_file %> 2>&1
diff --git a/modules/limn/templates/static.vhost.erb
b/modules/limn/templates/static.vhost.erb
deleted file mode 100644
index 26b01f3..0000000
--- a/modules/limn/templates/static.vhost.erb
+++ /dev/null
@@ -1,20 +0,0 @@
-<VirtualHost *:80>
- ServerName edit-analysis.wmflabs.org
-
- DocumentRoot /var/lib/limn/static/limn-edit-data
- ServerAdmin [email protected]
-
- ErrorLog /var/log/apache2/error.edit-analysis.log
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
-
- CustomLog /var/log/apache2/access.edit-analysis.log combined
-
- RewriteEngine on
- # Redirect any non HTTPS request to HTTPS
- # This HTTP Header is set by Yuvi's proxy-dammit instance
- RewriteCond %{HTTP:X-Forwarded-Proto} !https
- RewriteCond %{REMOTE_ADDR}%{REQUEST_URI} !127\.0\.0\.1/server-status
- RewriteRule ^(.*)$ https://edit-analysis.wmflabs.org$1 [L,R]
-</VirtualHost>
diff --git a/modules/limn/templates/vhost-limn-proxy-wp-zero-gone.conf.erb
b/modules/limn/templates/vhost-limn-proxy-wp-zero-gone.conf.erb
deleted file mode 100644
index 9945ec2..0000000
--- a/modules/limn/templates/vhost-limn-proxy-wp-zero-gone.conf.erb
+++ /dev/null
@@ -1,66 +0,0 @@
-# This file is managed by Puppet
-<VirtualHost *:80>
- ServerName <%= @server_name %>
-<% if @server_aliases.is_a? Array -%>
-<% server_aliases.each do |name| %><%= " ServerAlias #{name}\n" %><% end %>
-<% elsif @server_aliases != '' -%>
-<%= " ServerAlias #{server_aliases}" %>
-<% end -%>
-
- DocumentRoot <%= @document_root %>
-
- LogLevel warn
- ErrorLog /var/log/apache2/<%= @name %>_error.log
- CustomLog /var/log/apache2/<%= @name %>_access.log combined
-
- ProxyRequests Off
- <Proxy *>
- Order allow,deny
- Allow from all
- </Proxy>
-
- # 410 - Gone for Wikipedia Zero
- ErrorDocument 410 "<html><head><title>410
Gone</title></head><body><h1>Gone</h1><p>This Wikipedia Zero dashboard is no
longer available. It has been replaced by a new system which requires a
username and password. Please contact your partner manager, or write to <a
href=\"mailto:[email protected]\">[email protected]</a> to
learn more.</p></body></html>"
-
- # Wikipedia Zero carrier redirects
- RewriteRule "[/_-]aircel[_-]" - [G]
- RewriteRule "[/_-]airtel[_-]" - [G]
- RewriteRule "[/_-]babilon[_-]" - [G]
- RewriteRule "[/_-]banglalink[_-]" - [G]
- RewriteRule "[/_-]beeline[_-]" - [G]
- RewriteRule "[/_-]celcom[_-]" - [G]
- RewriteRule "[/_-]dialog[_-]sri" - [G]
- RewriteRule "[/_-]digi[_-]malaysia" - [G]
- RewriteRule "[/_-]dtac[_-]thailand" - [G]
- RewriteRule "[/_-]g[_-]mobile[_-]mongolia" - [G]
- RewriteRule "[/_-]grameenphone[_-]" - [G]
- RewriteRule "[/_-]ipko[_-]kosovo" - [G]
- RewriteRule "[/_-]mobilink[_-]" - [G]
- RewriteRule "[/_-]mtn[_-]" - [G]
- RewriteRule "[/_-]ncell[_-]" - [G]
- RewriteRule "[/_-]orange[_-]" - [G]
- RewriteRule "[/_-]safaricom[_-]" - [G]
- RewriteRule "[/_-]saudi[_-]telecom" - [G]
- RewriteRule "[/_-]smart[_-]philippines" - [G]
- RewriteRule "[/_-]smart[_-]cambodia" - [G]
- RewriteRule "[/_-]sun[_-]philippines" - [G]
- RewriteRule "[/_-]tcell[_-]tajikistan" - [G]
- RewriteRule "[/_-]telenor[_-]" - [G]
- RewriteRule "[/_-]tigo[_-]ghana" - [G]
- RewriteRule "[/_-]timor[_-]telecom" - [G]
- RewriteRule "[/_-]t[_-]mobile[_-]" - [G]
- RewriteRule "[/_-]umniah[_-]" - [G]
- RewriteRule "[/_-]viva[_-]bahrain" - [G]
- RewriteRule "[/_-]xl[_-]axiata" - [G]
-
- # Wikipedia Zero generic redirects
- RewriteRule "[/_-]free[_-]mobile[_-]traffic" - [G]
- RewriteRule
"[/_-]mobile[_-]page[_-]requests[_-]as[_-]percent[_-]of[_-]country" - [G]
- RewriteRule "[_-]mobile[_-]wp[_-]views[_-]by[_-]country" - [G]
-
- # If the file does not exist, assume this is a dynamic
- # request and send it to the Limn instance.
- RewriteEngine On
- RewriteCond <%= @document_root %>/%{REQUEST_FILENAME} !-s
- RewriteRule "^(.*)" "http://<%= @limn_host %>:<%= @limn_port %>$1" [P]
-</VirtualHost>
diff --git a/modules/limn/templates/vhost-limn-proxy.conf.erb
b/modules/limn/templates/vhost-limn-proxy.conf.erb
deleted file mode 100644
index 7bf4d74..0000000
--- a/modules/limn/templates/vhost-limn-proxy.conf.erb
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is managed by Puppet
-<VirtualHost *:80>
- ServerName <%= @server_name %>
-<% if @server_aliases.is_a? Array -%>
-<% server_aliases.each do |name| %><%= " ServerAlias #{name}\n" %><% end %>
-<% elsif @server_aliases != '' -%>
-<%= " ServerAlias #{server_aliases}" %>
-<% end -%>
-
- DocumentRoot <%= @document_root %>
-
- LogLevel warn
- ErrorLog /var/log/apache2/<%= @name %>_error.log
- CustomLog /var/log/apache2/<%= @name %>_access.log combined
-
- ProxyRequests Off
- <Proxy *>
- Order allow,deny
- Allow from all
- </Proxy>
-
- # If the file does not exist, assume this is a dynamic
- # request and send it to the Limn instance.
- RewriteEngine On
- RewriteCond <%= @document_root %>/%{REQUEST_FILENAME} !-s
- RewriteRule "^(.*)" "http://<%= @limn_host %>:<%= @limn_port %>$1" [P]
-</VirtualHost>
--
To view, visit https://gerrit.wikimedia.org/r/231144
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7018e0458eeb278c8c36bbed062521333c997685
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Faidon Liambotis <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits