Ottomata has uploaded a new change for review. https://gerrit.wikimedia.org/r/49710
Change subject: Adding puppet Limn module. ...................................................................... Adding puppet Limn module. Change-Id: Idb71d214135faac6d3c381aef8fcb2536f54644e --- A modules/limn/README.md A modules/limn/manifests/init.pp A modules/limn/manifests/instance.pp A modules/limn/templates/limn.init.erb 4 files changed, 142 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/10/49710/1 diff --git a/modules/limn/README.md b/modules/limn/README.md new file mode 100644 index 0000000..da5d60a --- /dev/null +++ b/modules/limn/README.md @@ -0,0 +1,14 @@ +[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": + $port = 8081, +} + +``` diff --git a/modules/limn/manifests/init.pp b/modules/limn/manifests/init.pp new file mode 100644 index 0000000..91b0fc2 --- /dev/null +++ b/modules/limn/manifests/init.pp @@ -0,0 +1,31 @@ +# == Class limn +# Installs limn. +# To spawn up a limn server instance, use the limn::instance define. +class limn( + $var_directory = "/var/lib/limn" + $log_directory = "/var/log/limn" + $user = "limn" + $group = "limn" +) { + package { "limn": ensure => present } + + # Default limn containing data directory. + # Instances default to storing data in + # $var_directory/$name + file { $var_directory: + owner => $user, + group => $group, + mode => "0755", + ensure => "directory", + } + + # Default limn log directory. + # Instances will log to + # $log_directory/limn-$name.log + file { $log_directory: + owner => $user, + group => $group, + mode => "0755", + ensure => "directory", + } +} \ No newline at end of file diff --git a/modules/limn/manifests/instance.pp b/modules/limn/manifests/instance.pp new file mode 100644 index 0000000..7ce4ea8 --- /dev/null +++ b/modules/limn/manifests/instance.pp @@ -0,0 +1,71 @@ +# == Define limn::instance +# Starts up a Limn Server instance. +# +# == Parameters: +# $port - Listen port for Limn instance. Default: 8081 +# $environment - Node environment. Default: production +# $var_directory - Limn instance var directory. Default: /var/lib/limn/$name +# $log_file - Limn instance log file. Default: /var/log/lim/limn-$name.log +# $user - Limn instance will run as this user. Default: limn +# $group - Limn instance will run in this group. Default: limn +# $base_directory - Limn install base directory. Default: /usr/lib/limn +# $ensure - present|absent. Default: present +# +define limn::instance ( + $port = 8081, + $environment = "production", + $var_directory = "/var/lib/limn/${name}", + $log_file = "/var/log/limn/limn-${name}.log", + $user = "limn", + $group = "limn", + $base_directory = "/usr/lib/limn", + $ensure = "present", +) { + require limn + + file { $var_directory: + owner => $user, + group => $group, + mode => "0755", + ensure => "directory", + } + + # The upstart init conf will start server.co + # logging to this file. + file { $log_file: + owner => $user, + group => $group, + mode => "0755", + ensure => "file", + } + + # Install an upstart init file for this limn server instance. + file { "/etc/init/limn-${name}.conf": + content => template("limn/limn.init.erb"), + owner => "root", + group => "root", + mode => "0644", + ensure => $ensure, + require => [File[$var_directory], File[$log_file]], + } + + # Symlink an /etc/init.d script to upstart-job + # for SysV compatibility. + file { "/etc/init.d/limn-${name}": + target => "/lib/init/upstart-job", + ensure => $ensure ? { + present => "link", + default => "absent", + }, + require => File["/etc/init/limn-${name}.conf"], + } + + service { "limn-${name}": + ensure => $ensure ? { + present => "running", + default => "stopped", + }, + provider => "upstart", + subscribe => File["/etc/init/limn-${name}.conf"], + } +} \ No newline at end of file diff --git a/modules/limn/templates/limn.init.erb b/modules/limn/templates/limn.init.erb new file mode 100644 index 0000000..3400f66 --- /dev/null +++ b/modules/limn/templates/limn.init.erb @@ -0,0 +1,26 @@ +# 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 <%= user %> +setgid <%= group %> + +console output +chdir <%= base_directory %> +exec ./server/server.co >> <%= log_file %> -- To view, visit https://gerrit.wikimedia.org/r/49710 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idb71d214135faac6d3c381aef8fcb2536f54644e Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Ottomata <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
