Andrew Bogott has submitted this change and it was merged.

Change subject: Add a 'generic' module.
......................................................................


Add a 'generic' module.

This is a catch-all for bits of the old manifests/generic-definitions.pp
that had nowhere else to go.

Change-Id: I3a5ef3a200bf0d0722c99ab351ba0be98c1e9de1
---
M manifests/facilities.pp
M manifests/ganglia.pp
M manifests/generic-definitions.pp
M manifests/gerrit.pp
M manifests/lvs.pp
M manifests/mail.pp
M manifests/misc/bugzilla.pp
M manifests/misc/fundraising.pp
M manifests/misc/gitblit.pp
M manifests/misc/icinga.pp
M manifests/misc/install-server.pp
M manifests/misc/logging.pp
M manifests/misc/mwlib.pp
M manifests/misc/parsoid.pp
M manifests/misc/planet.pp
M manifests/misc/statistics.pp
M manifests/misc/wikibugs.pp
M manifests/misc/wikistats.pp
M manifests/nfs.pp
M manifests/openstack.pp
M manifests/role/otrs.pp
M manifests/search.pp
M modules/applicationserver/manifests/pybal_check.pp
M modules/base/manifests/platform.pp
M modules/contint/manifests/testswarm.pp
M modules/coredb_mysql/manifests/base.pp
M modules/deployment/manifests/deployment_server.pp
M modules/dynamicproxy/manifests/api.pp
M modules/ganglia_new/manifests/monitor/aggregator.pp
M modules/ganglia_new/manifests/monitor/service.pp
A modules/generic/README
R modules/generic/files/environment/umask-wikidev-profile-d.sh
R modules/generic/files/locales/local_int
R modules/generic/files/upstart/dynamicproxy-api.conf
R modules/generic/files/upstart/enable-rps.conf
R modules/generic/files/upstart/fcgi-thumb-handler.conf
R modules/generic/files/upstart/manage-nfs-volumes.conf
R modules/generic/files/upstart/manage-volumes.conf
R modules/generic/files/upstart/nfs-noidmap.conf
R modules/generic/files/upstart/rsync-images.conf
R modules/generic/files/upstart/twemproxy.conf
R modules/generic/files/upstart/varnishncsa.conf
A modules/generic/manifests/debconf/set.pp
A modules/generic/manifests/higher_min_free_kbytes.pp
A modules/generic/manifests/locales/international.pp
A modules/generic/manifests/systemuser.pp
A modules/generic/manifests/upstart_job.pp
A modules/generic/manifests/wikidev-umask.pp
M modules/jenkins/manifests/slave.pp
M modules/jenkins/manifests/user.pp
M modules/mediawiki/manifests/twemproxy.pp
M modules/mediawiki/manifests/users/l10nupdate.pp
M modules/mediawiki/manifests/users/mwdeploy.pp
M modules/mysql_multi_instance/manifests/init.pp
54 files changed, 151 insertions(+), 153 deletions(-)

Approvals:
  Andrew Bogott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/manifests/facilities.pp b/manifests/facilities.pp
index 5205eab..14e485b 100644
--- a/manifests/facilities.pp
+++ b/manifests/facilities.pp
@@ -118,7 +118,7 @@
 class facilities::dc-cam-transcoder {
        system::role { "misc::dc-cam-transcoder": description => "Data center 
camera transcoder" }
 
-       systemuser { video: name => "video", home => "/var/lib/video" }
+       generic::systemuser { video: name => "video", home => "/var/lib/video" }
 
        package { "vlc-nox":
                ensure => latest;
diff --git a/manifests/ganglia.pp b/manifests/ganglia.pp
index 0cd601f..10d6fed 100644
--- a/manifests/ganglia.pp
+++ b/manifests/ganglia.pp
@@ -242,7 +242,7 @@
                 ensure      => running;
         }
 
-        systemuser { gmetric: name => "gmetric", home => "/home/gmetric", 
shell => "/bin/sh" }
+        generic::systemuser { gmetric: name => "gmetric", home => 
"/home/gmetric", shell => "/bin/sh" }
     }
 
     # Class for setting up the collector (gmetad)
diff --git a/manifests/generic-definitions.pp b/manifests/generic-definitions.pp
index 2e8a7fd..23b3590 100644
--- a/manifests/generic-definitions.pp
+++ b/manifests/generic-definitions.pp
@@ -2,33 +2,6 @@
 #
 # File that contains generally useful definitions, e.g. for creating system 
users
 
-# Creates a system username with associated group, random uid/gid, and 
/bin/false as shell
-define systemuser($name, $home=undef, $managehome=true, $shell="/bin/false", 
$groups=undef, $default_group=$name, $ensure=present) {
-       # FIXME: deprecate $name parameter in favor of just using $title
-
-       if $default_group == $name {
-               group { $default_group:
-                       name => $default_group,
-                       ensure => present;
-               }
-       }
-
-       user { $name:
-               require => Group[$default_group],
-               name => $name,
-               gid => $default_group,
-               home => $home ? {
-                       undef => "/var/lib/${name}",
-                       default => $home
-               },
-               managehome => $managehome,
-               shell => $shell,
-               groups => $groups,
-               system => true,
-               ensure => $ensure;
-       }
-}
-
 # Enables a certain Apache 2 site
 define apache_site($name, $prefix="", $ensure="link") {
        file { "/etc/apache2/sites-enabled/${prefix}${name}":
@@ -102,30 +75,6 @@
 
 }
 
-# Create a symlink in /etc/init.d/ to a generic upstart init script
-define upstart_job($install="false", $start="false") {
-       # Create symlink
-       file { "/etc/init.d/${title}":
-               ensure => "/lib/init/upstart-job";
-       }
-
-       if $install == "true" {
-               file { "/etc/init/${title}.conf":
-                       source => "puppet:///files/upstart/${title}.conf"
-               }
-       }
-
-       if $start == "true" {
-               exec { "start $title":
-                       require => File["/etc/init/${title}.conf"],
-                       subscribe => File["/etc/init/${title}.conf"],
-                       refreshonly => true,
-                       command => "start ${title}",
-                       path => "/bin:/sbin:/usr/bin:/usr/sbin"
-               }
-       }
-}
-
 class generic::packages::ant18 {
 
   if ($::lsbdistcodename == "lucid") {
@@ -146,68 +95,5 @@
        } else {
                # Ubuntu post Lucid ship by default with ant 1.8 or later
                package { ["ant"]: ensure => installed; }
-       }
-}
-
-# this installs a bunch of international locales, f.e. for "planet" on singer
-class generic::locales::international {
-
-       package { 'locales':
-               ensure => latest;
-       }
-
-       file { "/var/lib/locales/supported.d/local":
-               source => "puppet:///files/locales/local_int",
-               owner => "root",
-               group => "root",
-               mode => 0444;
-       }
-
-       exec { "/usr/sbin/locale-gen":
-               subscribe => File["/var/lib/locales/supported.d/local"],
-               refreshonly => true,
-               require => File["/var/lib/locales/supported.d/local"];
-       }
-}
-
-# Definition: generic::debconf::set
-# Changes a debconf value
-#
-# Parameters:
-# - $title
-#              Debconf setting, e.g. mailman/used_languages
-# - $value
-#              The value $title should be set to
-define generic::debconf::set($value) {
-       exec { "debconf-communicate set $title":
-               path => "/usr/bin:/usr/sbin:/bin:/sbin",
-               command => "echo set ${title} \"${value}\" | 
debconf-communicate",
-               unless => "test \"$(echo get ${title} | debconf-communicate)\" 
= \"0 ${value}\""
-       }
-}
-
-class generic::wikidev-umask {
-
-       # set umask to 0002 for wikidev users, per RT-804
-       file {
-               "/etc/profile.d/umask-wikidev.sh":
-                       ensure => present,
-                       owner => root,
-                       group => root,
-                       mode => 0444,
-                       source => 
"puppet:///files/environment/umask-wikidev-profile-d.sh";
-       }
-}
-
-
-class generic::higher_min_free_kbytes {
-       # Set a high min_free_kbytes watermark.
-       # See https://wikitech.wikimedia.org/wiki/Dataset1001#Feb_8_2012
-       # FIXME: Is this setting appropriate to the nodes on which it is 
applied? Is
-       # the value optimal? Investigate.
-       sysctl::parameters { 'higher_min_free_kbytes':
-               values => {
-                       'vm.min_free_kbytes' => 1024 * 256,
-               },
        }
 }
diff --git a/manifests/gerrit.pp b/manifests/gerrit.pp
index 63d6cf2..7238d58 100644
--- a/manifests/gerrit.pp
+++ b/manifests/gerrit.pp
@@ -318,7 +318,7 @@
 # Setup the `gerritslave` account on any host that wants to receive
 # replication. See role::gerrit::production::replicationdest
 class gerrit::replicationdest( $sshkey, $extra_groups = undef, $slaveuser = 
"gerritslave" ) {
-  systemuser { $slaveuser:
+  generic::systemuser { $slaveuser:
     name => $slaveuser,
     groups => $extra_groups,
     shell => "/bin/bash";
diff --git a/manifests/lvs.pp b/manifests/lvs.pp
index 4cfe345..381853d 100644
--- a/manifests/lvs.pp
+++ b/manifests/lvs.pp
@@ -938,7 +938,7 @@
                },
        }
 
-       upstart_job { "enable-rps": install => "true", start => "true" }
+       generic::upstart_job { "enable-rps": install => "true", start => "true" 
}
 }
 
 # Supporting the PyBal RunCommand monitor
diff --git a/manifests/mail.pp b/manifests/mail.pp
index eb46188..10d8102 100644
--- a/manifests/mail.pp
+++ b/manifests/mail.pp
@@ -267,7 +267,7 @@
 # /usr/share/doc/clamav-base/README.Debian.gz
 class clamav {
 
-       systemuser { "clamav":
+       generic::systemuser { "clamav":
                name => "clamav",
                groups => "Debian-exim", # needed for exim integration
        }
@@ -316,7 +316,7 @@
        # this seems broken, especially since /var/spamd is unused
        # and spamd's homedir is created as /var/lib/spamd
        if ( $spamd_user == "spamd" ) {
-               systemuser { "spamd": name => "spamd" }
+               generic::systemuser { "spamd": name => "spamd" }
                file { "/var/spamd":
                        require => Systemuser[spamd],
                        ensure => directory,
diff --git a/manifests/misc/bugzilla.pp b/manifests/misc/bugzilla.pp
index e818478..222a665 100644
--- a/manifests/misc/bugzilla.pp
+++ b/manifests/misc/bugzilla.pp
@@ -68,7 +68,7 @@
 
 class misc::bugzilla::report {
 
-    systemuser { 'bzreporter': name => 'reporter', home => '/home/reporter', 
groups => [ 'reporter' ] }
+    generic::systemuser { 'bzreporter': name => 'reporter', home => 
'/home/reporter', groups => [ 'reporter' ] }
 
     require passwords::bugzilla
 
diff --git a/manifests/misc/fundraising.pp b/manifests/misc/fundraising.pp
index f2b71ea..d3a0ccd 100644
--- a/manifests/misc/fundraising.pp
+++ b/manifests/misc/fundraising.pp
@@ -307,7 +307,7 @@
 
 class misc::fundraising::backup::backupmover_user {
 
-       systemuser { backupmover: name => 'backupmover', home => 
'/var/lib/backupmover', shell => '/bin/sh' }
+       generic::systemuser { backupmover: name => 'backupmover', home => 
'/var/lib/backupmover', shell => '/bin/sh' }
 
        ssh_authorized_key {
                'backupmover/root@boron':
diff --git a/manifests/misc/gitblit.pp b/manifests/misc/gitblit.pp
index a053a03..06f4847 100644
--- a/manifests/misc/gitblit.pp
+++ b/manifests/misc/gitblit.pp
@@ -11,7 +11,7 @@
 
        include webserver::apache
 
-       systemuser { $user: name => $user }
+       generic::systemuser { $user: name => $user }
 
        file {
                "/etc/apache2/sites-available/git.wikimedia.org":
diff --git a/manifests/misc/icinga.pp b/manifests/misc/icinga.pp
index 40372fb..9606d06 100644
--- a/manifests/misc/icinga.pp
+++ b/manifests/misc/icinga.pp
@@ -812,7 +812,7 @@
   }
 
   # snmp tarp stuff
-  systemuser { 'snmptt': name => 'snmptt', home => '/var/spool/snmptt', groups 
=> [ 'snmptt', 'nagios' ] }
+  generic::systemuser { 'snmptt': name => 'snmptt', home => 
'/var/spool/snmptt', groups => [ 'snmptt', 'nagios' ] }
 
   package { 'snmpd':
     ensure => latest;
diff --git a/manifests/misc/install-server.pp b/manifests/misc/install-server.pp
index 24b3e1e..eea0fe4 100644
--- a/manifests/misc/install-server.pp
+++ b/manifests/misc/install-server.pp
@@ -170,7 +170,7 @@
         }
 
         # System user and group for mirroring
-        systemuser { 'mirror': name => 'mirror', home => '/var/lib/mirror' }
+        generic::systemuser { 'mirror': name => 'mirror', home => 
'/var/lib/mirror' }
 
         # Mirror update cron entry
         cron { 'update-ubuntu-mirror':
diff --git a/manifests/misc/logging.pp b/manifests/misc/logging.pp
index 2a97491..c720a01 100644
--- a/manifests/misc/logging.pp
+++ b/manifests/misc/logging.pp
@@ -62,7 +62,7 @@
 
        # Configure and start the upstart job for
        # luanching the socat multicast relay daemon.
-       # Note: Not using upstart_job define here since
+       # Note: Not using generic::upstart_job define here since
        # it doesn't support using ERb templates.
 
        if $multicast {
diff --git a/manifests/misc/mwlib.pp b/manifests/misc/mwlib.pp
index 8049b81..abd99c0 100644
--- a/manifests/misc/mwlib.pp
+++ b/manifests/misc/mwlib.pp
@@ -13,5 +13,5 @@
 }
 
 class misc::mwlib::users {
-       systemuser { "pp": name => "pp", home => "/opt/pp", shell => 
"/bin/bash" }
+       generic::systemuser { "pp": name => "pp", home => "/opt/pp", shell => 
"/bin/bash" }
 }
diff --git a/manifests/misc/parsoid.pp b/manifests/misc/parsoid.pp
index 046ef2c..fa247a1 100644
--- a/manifests/misc/parsoid.pp
+++ b/manifests/misc/parsoid.pp
@@ -31,7 +31,7 @@
                        mode => 0555;
        }
 
-       systemuser {
+       generic::systemuser {
                parsoid:
                        name => "parsoid",
                        default_group => "parsoid",
diff --git a/manifests/misc/planet.pp b/manifests/misc/planet.pp
index ef9d646..e48c3b7 100644
--- a/manifests/misc/planet.pp
+++ b/manifests/misc/planet.pp
@@ -9,7 +9,7 @@
         ensure => latest;
     }
 
-    systemuser { 'planet': name => 'planet', home => '/var/lib/planet', groups 
=> [ 'planet' ] }
+    generic::systemuser { 'planet': name => 'planet', home => 
'/var/lib/planet', groups => [ 'planet' ] }
 
     File {
         owner => 'planet',
diff --git a/manifests/misc/statistics.pp b/manifests/misc/statistics.pp
index fc9b7a3..a478e87 100644
--- a/manifests/misc/statistics.pp
+++ b/manifests/misc/statistics.pp
@@ -43,7 +43,7 @@
     $username = "stats"
     $homedir  = "/var/lib/$username"
 
-    systemuser { $username:
+    generic::systemuser { $username:
         name   => $username,
         home   => $homedir,
         groups => "wikidev",
diff --git a/manifests/misc/wikibugs.pp b/manifests/misc/wikibugs.pp
index c86b436..554d890 100644
--- a/manifests/misc/wikibugs.pp
+++ b/manifests/misc/wikibugs.pp
@@ -32,7 +32,7 @@
   include misc::ircecho
   include misc::irc::wikibugs::packages
 
-  systemuser { 'wikibugs': name => 'wikibugs' }
+  generic::systemuser { 'wikibugs': name => 'wikibugs' }
 
   File {
     owner   => 'wikibugs',
diff --git a/manifests/misc/wikistats.pp b/manifests/misc/wikistats.pp
index 6e08834..cde1a09 100644
--- a/manifests/misc/wikistats.pp
+++ b/manifests/misc/wikistats.pp
@@ -4,7 +4,7 @@
 class misc::wikistats {
 
        system::role { 'misc::wikistats': description => 'wikistats host' }
-       systemuser { wikistats: name => 'wikistats', home => 
'/usr/lib/wikistats', groups => [ 'wikistats' ] }
+       generic::systemuser { wikistats: name => 'wikistats', home => 
'/usr/lib/wikistats', groups => [ 'wikistats' ] }
 }
 
        # the web UI part (output)
diff --git a/manifests/nfs.pp b/manifests/nfs.pp
index f717330..28ab971 100644
--- a/manifests/nfs.pp
+++ b/manifests/nfs.pp
@@ -161,7 +161,7 @@
                        }
                } # /production
                'labs': {
-                       systemuser { 'wikipediauser':
+                       generic::systemuser { 'wikipediauser':
                                name => 'wikipedia',
                                home => '/home/wikipedia'
                        }
diff --git a/manifests/openstack.pp b/manifests/openstack.pp
index e14edfb..6bac80a 100644
--- a/manifests/openstack.pp
+++ b/manifests/openstack.pp
@@ -214,7 +214,7 @@
                        mode => 0755;
        }
 
-       upstart_job{ "manage-volumes":
+       generic::upstart_job{ "manage-volumes":
                require => Package["glusterfs-server"],
                install => "true";
        }
@@ -227,7 +227,7 @@
 }
 
 class openstack::project-nfs-storage-service {
-       upstart_job{ "manage-nfs-volumes":
+       generic::upstart_job{ "manage-nfs-volumes":
                install => "true";
        }
 
@@ -241,7 +241,7 @@
                        'ALL = NOPASSWD: /bin/rmdir /srv/*',
                        'ALL = NOPASSWD: /usr/local/sbin/sync-exports' ]
        sudo_user { [ "nfsmanager" ]: privileges => $sudo_privs, require => 
Systemuser["nfsmanager"] }
-       systemuser { "nfsmanager": name => "nfsmanager", home => 
"/var/lib/nfsmanager", shell => "/bin/bash" }
+       generic::systemuser { "nfsmanager": name => "nfsmanager", home => 
"/var/lib/nfsmanager", shell => "/bin/bash" }
 }
 
 class openstack::project-storage {
@@ -256,7 +256,7 @@
                ensure => present;
        }
 
-       systemuser { "glustermanager": name => "glustermanager", home => 
"/var/lib/glustermanager", shell => "/bin/bash" }
+       generic::systemuser { "glustermanager": name => "glustermanager", home 
=> "/var/lib/glustermanager", shell => "/bin/bash" }
        ssh_authorized_key {
                "glustermanager":
                        ensure  => present,
diff --git a/manifests/role/otrs.pp b/manifests/role/otrs.pp
index 4635e73..0581466 100644
--- a/manifests/role/otrs.pp
+++ b/manifests/role/otrs.pp
@@ -10,7 +10,7 @@
         webserver::apache,
         nrpe
 
-    systemuser { 'otrs':
+    generic::systemuser { 'otrs':
         name => 'otrs',
         home => '/var/lib/otrs',
         groups => 'www-data',
diff --git a/manifests/search.pp b/manifests/search.pp
index c610378..ea445be 100644
--- a/manifests/search.pp
+++ b/manifests/search.pp
@@ -133,7 +133,7 @@
 
        class users {
                include groups::search
-               systemuser { "lsearch": name => "lsearch", default_group => 
"search"}
+               generic::systemuser { "lsearch": name => "lsearch", 
default_group => "search"}
        }
 
        class indexer {
diff --git a/modules/applicationserver/manifests/pybal_check.pp 
b/modules/applicationserver/manifests/pybal_check.pp
index 0ab7734..634ca0f 100644
--- a/modules/applicationserver/manifests/pybal_check.pp
+++ b/modules/applicationserver/manifests/pybal_check.pp
@@ -3,7 +3,7 @@
        $authorized_key = 'command="uptime; touch /var/tmp/pybal-check.stamp" 
ssh-rsa 
AAAAB3NzaC1yc2EAAAABIwAAAQEAwyiL/ImTNOjoP/8k1UFQRM9pcspHp3yIsH/8TYXH/HJ1rQVjMleq6IQ6ZwAXhKfw/v1xV28SbkctB8pISZoR4rcCqOIN+osXkCB419JydCEb5abPS4mB5Gkn2bZAF43DGr5kaW+HYIsgtZ+QEC+nS4j3NA/Bjb7lAbHUtHVuC6BCOaZfGf+Q2FO4Z6xC7zc/1ngaDgvrXYzyCvXzTAQmcZH0d2/GoS1DQoLdLzqu66aZK1dmn9TAHV4a3R4gp7El7OzVHqDp1E6y0sopd+qKNAw/3GgXC91XJ3XO22h+ZnVovIpIS01CJ6GiBig/55Xrh//9Wuw5GFQuCptYbPQr4Q==
 root@lvs4'
 
        # Create pybal-check user account       
-       systemuser { "pybal-check": name => "pybal-check", home => 
"/var/lib/pybal-check", shell => "/bin/sh" }
+       generic::systemuser { "pybal-check": name => "pybal-check", home => 
"/var/lib/pybal-check", shell => "/bin/sh" }
 
        file {
                "/var/lib/pybal-check/.ssh":
diff --git a/modules/base/manifests/platform.pp 
b/modules/base/manifests/platform.pp
index 2d8dcb4..b1d3db6 100644
--- a/modules/base/manifests/platform.pp
+++ b/modules/base/manifests/platform.pp
@@ -50,7 +50,7 @@
             mode    => '0444',
             content => $console_upstart_file;
         }
-        upstart_job { $lom_serial_port: require => 
File["/etc/init/${lom_serial_port}.conf"] }
+        generic::upstart_job { $lom_serial_port: require => 
File["/etc/init/${lom_serial_port}.conf"] }
     }
 }
 
diff --git a/modules/contint/manifests/testswarm.pp 
b/modules/contint/manifests/testswarm.pp
index 1e007c5..fc21ade 100644
--- a/modules/contint/manifests/testswarm.pp
+++ b/modules/contint/manifests/testswarm.pp
@@ -7,7 +7,7 @@
 class contint::testswarm {
 
   # Create a user to run the cronjob with
-  systemuser { 'testswarm':
+  generic::systemuser { 'testswarm':
     name   => 'testswarm',
     home   => '/var/lib/testswarm',
     shell  => '/bin/false',
diff --git a/modules/coredb_mysql/manifests/base.pp 
b/modules/coredb_mysql/manifests/base.pp
index f19b679..387619b 100644
--- a/modules/coredb_mysql/manifests/base.pp
+++ b/modules/coredb_mysql/manifests/base.pp
@@ -2,7 +2,7 @@
 class coredb_mysql::base {
     require coredb_mysql::packages
 
-    systemuser { 'mysql':
+    generic::systemuser { 'mysql':
         name  => 'mysql',
         shell => '/bin/sh',
         home  => '/home/mysql',
diff --git a/modules/deployment/manifests/deployment_server.pp 
b/modules/deployment/manifests/deployment_server.pp
index 1b1fec6..e4667bd 100644
--- a/modules/deployment/manifests/deployment_server.pp
+++ b/modules/deployment/manifests/deployment_server.pp
@@ -119,7 +119,7 @@
       value   => 'sartoris',
       replace => true;
   }
-  systemuser {
+  generic::systemuser {
     'sartoris': name => 'sartoris', shell => '/bin/false', home => 
'/nonexistent', groups => $deployer_groups
   }
 }
diff --git a/modules/dynamicproxy/manifests/api.pp 
b/modules/dynamicproxy/manifests/api.pp
index d0bc8c4..bc07dc6 100644
--- a/modules/dynamicproxy/manifests/api.pp
+++ b/modules/dynamicproxy/manifests/api.pp
@@ -9,7 +9,7 @@
         require => Package['python-flask'],
     }
 
-    upstart_job{ 'dynamicproxy-api':
+    generic::upstart_job{ 'dynamicproxy-api':
         require => Package['python-invisible-unicorn', 
'python-flask-sqlalchemy', 'redis', 'python-flask'],
         install => 'true',
         start   => 'true'
diff --git a/modules/ganglia_new/manifests/monitor/aggregator.pp 
b/modules/ganglia_new/manifests/monitor/aggregator.pp
index d69adf8..4d4cd10 100644
--- a/modules/ganglia_new/manifests/monitor/aggregator.pp
+++ b/modules/ganglia_new/manifests/monitor/aggregator.pp
@@ -18,7 +18,7 @@
                        mode => 0444;
        }
 
-       upstart_job { "ganglia-monitor-aggregator-instance": }
+       generic::upstart_job { "ganglia-monitor-aggregator-instance": }
 
        define site_instances() {
                # Instantiate aggregators for all clusters for this site 
($title)
diff --git a/modules/ganglia_new/manifests/monitor/service.pp 
b/modules/ganglia_new/manifests/monitor/service.pp
index efc57d6..8159539 100644
--- a/modules/ganglia_new/manifests/monitor/service.pp
+++ b/modules/ganglia_new/manifests/monitor/service.pp
@@ -6,7 +6,7 @@
                mode => 0444
        }
 
-       upstart_job { "ganglia-monitor": }
+       generic::upstart_job { "ganglia-monitor": }
 
        service { "ganglia-monitor":
                require => File["/etc/init/ganglia-monitor.conf"],
diff --git a/modules/generic/README b/modules/generic/README
new file mode 100644
index 0000000..498c45f
--- /dev/null
+++ b/modules/generic/README
@@ -0,0 +1,5 @@
+This is an OK place for one-off classes that are used only at WMF.
+
+Still, it's kind of a hack to have a 'generic' module, so please try your
+best to fit your class into another better-organized module before dumping
+it here.
diff --git a/files/environment/umask-wikidev-profile-d.sh 
b/modules/generic/files/environment/umask-wikidev-profile-d.sh
similarity index 100%
rename from files/environment/umask-wikidev-profile-d.sh
rename to modules/generic/files/environment/umask-wikidev-profile-d.sh
diff --git a/files/locales/local_int b/modules/generic/files/locales/local_int
similarity index 100%
rename from files/locales/local_int
rename to modules/generic/files/locales/local_int
diff --git a/files/upstart/dynamicproxy-api.conf 
b/modules/generic/files/upstart/dynamicproxy-api.conf
similarity index 100%
rename from files/upstart/dynamicproxy-api.conf
rename to modules/generic/files/upstart/dynamicproxy-api.conf
diff --git a/files/upstart/enable-rps.conf 
b/modules/generic/files/upstart/enable-rps.conf
similarity index 100%
rename from files/upstart/enable-rps.conf
rename to modules/generic/files/upstart/enable-rps.conf
diff --git a/files/upstart/fcgi-thumb-handler.conf 
b/modules/generic/files/upstart/fcgi-thumb-handler.conf
similarity index 100%
rename from files/upstart/fcgi-thumb-handler.conf
rename to modules/generic/files/upstart/fcgi-thumb-handler.conf
diff --git a/files/upstart/manage-nfs-volumes.conf 
b/modules/generic/files/upstart/manage-nfs-volumes.conf
similarity index 100%
rename from files/upstart/manage-nfs-volumes.conf
rename to modules/generic/files/upstart/manage-nfs-volumes.conf
diff --git a/files/upstart/manage-volumes.conf 
b/modules/generic/files/upstart/manage-volumes.conf
similarity index 100%
rename from files/upstart/manage-volumes.conf
rename to modules/generic/files/upstart/manage-volumes.conf
diff --git a/files/upstart/nfs-noidmap.conf 
b/modules/generic/files/upstart/nfs-noidmap.conf
similarity index 100%
rename from files/upstart/nfs-noidmap.conf
rename to modules/generic/files/upstart/nfs-noidmap.conf
diff --git a/files/upstart/rsync-images.conf 
b/modules/generic/files/upstart/rsync-images.conf
similarity index 100%
rename from files/upstart/rsync-images.conf
rename to modules/generic/files/upstart/rsync-images.conf
diff --git a/files/upstart/twemproxy.conf 
b/modules/generic/files/upstart/twemproxy.conf
similarity index 100%
rename from files/upstart/twemproxy.conf
rename to modules/generic/files/upstart/twemproxy.conf
diff --git a/files/upstart/varnishncsa.conf 
b/modules/generic/files/upstart/varnishncsa.conf
similarity index 100%
rename from files/upstart/varnishncsa.conf
rename to modules/generic/files/upstart/varnishncsa.conf
diff --git a/modules/generic/manifests/debconf/set.pp 
b/modules/generic/manifests/debconf/set.pp
new file mode 100644
index 0000000..5004408
--- /dev/null
+++ b/modules/generic/manifests/debconf/set.pp
@@ -0,0 +1,15 @@
+# Definition: generic::debconf::set
+# Changes a debconf value
+#
+# Parameters:
+# - $title
+#              Debconf setting, e.g. mailman/used_languages
+# - $value
+#              The value $title should be set to
+define generic::debconf::set($value) {
+       exec { "debconf-communicate set $title":
+               path => "/usr/bin:/usr/sbin:/bin:/sbin",
+               command => "echo set ${title} \"${value}\" | 
debconf-communicate",
+               unless => "test \"$(echo get ${title} | debconf-communicate)\" 
= \"0 ${value}\""
+       }
+}
diff --git a/modules/generic/manifests/higher_min_free_kbytes.pp 
b/modules/generic/manifests/higher_min_free_kbytes.pp
new file mode 100644
index 0000000..c26968d
--- /dev/null
+++ b/modules/generic/manifests/higher_min_free_kbytes.pp
@@ -0,0 +1,11 @@
+class generic::higher_min_free_kbytes {
+       # Set a high min_free_kbytes watermark.
+       # See https://wikitech.wikimedia.org/wiki/Dataset1001#Feb_8_2012
+       # FIXME: Is this setting appropriate to the nodes on which it is 
applied? Is
+       # the value optimal? Investigate.
+       sysctl::parameters { 'higher_min_free_kbytes':
+               values => {
+                       'vm.min_free_kbytes' => 1024 * 256,
+               },
+       }
+}
diff --git a/modules/generic/manifests/locales/international.pp 
b/modules/generic/manifests/locales/international.pp
new file mode 100644
index 0000000..54ab949
--- /dev/null
+++ b/modules/generic/manifests/locales/international.pp
@@ -0,0 +1,20 @@
+# this installs a bunch of international locales, f.e. for "planet" on singer
+class generic::locales::international {
+
+       package { 'locales':
+               ensure => latest;
+       }
+
+       file { "/var/lib/locales/supported.d/local":
+               source => "puppet:///modules/generic/locales/local_int",
+               owner => "root",
+               group => "root",
+               mode => 0444;
+       }
+
+       exec { "/usr/sbin/locale-gen":
+               subscribe => File["/var/lib/locales/supported.d/local"],
+               refreshonly => true,
+               require => File["/var/lib/locales/supported.d/local"];
+       }
+}
diff --git a/modules/generic/manifests/systemuser.pp 
b/modules/generic/manifests/systemuser.pp
new file mode 100644
index 0000000..a9761b9
--- /dev/null
+++ b/modules/generic/manifests/systemuser.pp
@@ -0,0 +1,26 @@
+# Creates a system username with associated group, random uid/gid, and 
/bin/false as shell
+define generic::systemuser($name, $home=undef, $managehome=true, 
$shell="/bin/false", $groups=undef, $default_group=$name, $ensure=present) {
+       # FIXME: deprecate $name parameter in favor of just using $title
+
+       if $default_group == $name {
+               group { $default_group:
+                       name => $default_group,
+                       ensure => present;
+               }
+       }
+
+       user { $name:
+               require => Group[$default_group],
+               name => $name,
+               gid => $default_group,
+               home => $home ? {
+                       undef => "/var/lib/${name}",
+                       default => $home
+               },
+               managehome => $managehome,
+               shell => $shell,
+               groups => $groups,
+               system => true,
+               ensure => $ensure;
+       }
+}
diff --git a/modules/generic/manifests/upstart_job.pp 
b/modules/generic/manifests/upstart_job.pp
new file mode 100644
index 0000000..a2e5b46
--- /dev/null
+++ b/modules/generic/manifests/upstart_job.pp
@@ -0,0 +1,23 @@
+# Create a symlink in /etc/init.d/ to a generic upstart init script
+define generic::upstart_job($install="false", $start="false") {
+       # Create symlink
+       file { "/etc/init.d/${title}":
+               ensure => "/lib/init/upstart-job";
+       }
+
+       if $install == "true" {
+               file { "/etc/init/${title}.conf":
+                       source => 
"puppet:///modules/generic/upstart/${title}.conf"
+               }
+       }
+
+       if $start == "true" {
+               exec { "start $title":
+                       require => File["/etc/init/${title}.conf"],
+                       subscribe => File["/etc/init/${title}.conf"],
+                       refreshonly => true,
+                       command => "start ${title}",
+                       path => "/bin:/sbin:/usr/bin:/usr/sbin"
+               }
+       }
+}
diff --git a/modules/generic/manifests/wikidev-umask.pp 
b/modules/generic/manifests/wikidev-umask.pp
new file mode 100644
index 0000000..0c1d9e7
--- /dev/null
+++ b/modules/generic/manifests/wikidev-umask.pp
@@ -0,0 +1,12 @@
+class generic::wikidev-umask {
+
+       # set umask to 0002 for wikidev users, per RT-804
+       file {
+               "/etc/profile.d/umask-wikidev.sh":
+                       ensure => present,
+                       owner => root,
+                       group => root,
+                       mode => 0444,
+                       source => 
"puppet:///modules/generic/environment/umask-wikidev-profile-d.sh";
+       }
+}
diff --git a/modules/jenkins/manifests/slave.pp 
b/modules/jenkins/manifests/slave.pp
index 0612824..e23d2e9 100644
--- a/modules/jenkins/manifests/slave.pp
+++ b/modules/jenkins/manifests/slave.pp
@@ -10,7 +10,7 @@
 
   include jenkins::slave::requisites
 
-  systemuser { $user:
+  generic::systemuser { $user:
     ensure     => present,
     name       => $user,
     shell      => '/bin/bash',
diff --git a/modules/jenkins/manifests/user.pp 
b/modules/jenkins/manifests/user.pp
index 486c601..f2f4877 100644
--- a/modules/jenkins/manifests/user.pp
+++ b/modules/jenkins/manifests/user.pp
@@ -2,7 +2,7 @@
 
   include jenkins::group
 
-  # We do not use systemuser{} since we would like to keep
+  # We do not use generic::systemuser{} since we would like to keep
   # the group definition in the jenkins module.
   user { 'jenkins':
     name       => 'jenkins',
diff --git a/modules/mediawiki/manifests/twemproxy.pp 
b/modules/mediawiki/manifests/twemproxy.pp
index 0bb15f8..4dadcd3 100644
--- a/modules/mediawiki/manifests/twemproxy.pp
+++ b/modules/mediawiki/manifests/twemproxy.pp
@@ -3,7 +3,7 @@
     ensure => latest;
   }
 
-  upstart_job { "twemproxy": install => "true", start => "true" }
+  generic::upstart_job { "twemproxy": install => "true", start => "true" }
 
   service { twemproxy:
     require => [ Package[twemproxy], Upstart_job[twemproxy] ],
diff --git a/modules/mediawiki/manifests/users/l10nupdate.pp 
b/modules/mediawiki/manifests/users/l10nupdate.pp
index f724369..af0447a 100644
--- a/modules/mediawiki/manifests/users/l10nupdate.pp
+++ b/modules/mediawiki/manifests/users/l10nupdate.pp
@@ -5,7 +5,7 @@
 
        require groups::l10nupdate
 
-       systemuser { 'l10nupdate': name => 'l10nupdate', home => 
'/home/l10nupdate', default_group => 10002, shell => '/bin/bash' }
+       generic::systemuser { 'l10nupdate': name => 'l10nupdate', home => 
'/home/l10nupdate', default_group => 10002, shell => '/bin/bash' }
 
        file {
                "/home/l10nupdate/.ssh":
diff --git a/modules/mediawiki/manifests/users/mwdeploy.pp 
b/modules/mediawiki/manifests/users/mwdeploy.pp
index c32a50a..6b9f204 100644
--- a/modules/mediawiki/manifests/users/mwdeploy.pp
+++ b/modules/mediawiki/manifests/users/mwdeploy.pp
@@ -1,5 +1,5 @@
 # mediawiki base mw deploy user
 class mediawiki::users::mwdeploy {
        ## mwdeploy user
-       systemuser { 'mwdeploy': name => 'mwdeploy' }
+       generic::systemuser { 'mwdeploy': name => 'mwdeploy' }
 }
diff --git a/modules/mysql_multi_instance/manifests/init.pp 
b/modules/mysql_multi_instance/manifests/init.pp
index d2a6bcc..717ba33 100644
--- a/modules/mysql_multi_instance/manifests/init.pp
+++ b/modules/mysql_multi_instance/manifests/init.pp
@@ -23,7 +23,7 @@
     ensure => latest,
   }
 
-  systemuser {
+  generic::systemuser {
     "mysql": name => "mysql", shell => "/bin/sh", home => "/home/mysql"
   }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I3a5ef3a200bf0d0722c99ab351ba0be98c1e9de1
Gerrit-PatchSet: 4
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Mark Bergsma <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to