Ori.livneh has submitted this change and it was merged.

Change subject: redis: Make redis::instance use base::service_unit
......................................................................


redis: Make redis::instance use base::service_unit

- So we get a different systemd service for each redis instance
  rather than a 'instance' of the same systemd service
- Makes it easier to add upstart support in a followup commit

Bug: T118704
Change-Id: I15c1aeeb41f2bb6b2af5d8916380febc5908c450
---
D modules/redis/files/[email protected]
M modules/redis/manifests/init.pp
M modules/redis/manifests/instance.pp
A modules/redis/templates/initscripts/redis-instance.systemd.erb
4 files changed, 18 insertions(+), 32 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/redis/files/[email protected] 
b/modules/redis/files/[email protected]
deleted file mode 100644
index d30ad7e..0000000
--- a/modules/redis/files/[email protected]
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Advanced key-value store
-After=network.target
-
-[Service]
-Type=forking
-ExecStart=/usr/bin/redis-server /etc/redis/%i.conf
-Restart=always
-User=redis
-Group=redis
diff --git a/modules/redis/manifests/init.pp b/modules/redis/manifests/init.pp
index 45478ad..c7f2049 100644
--- a/modules/redis/manifests/init.pp
+++ b/modules/redis/manifests/init.pp
@@ -11,17 +11,4 @@
         group => 'redis',
         mode  => '0755',
     }
-
-    # Hosts that use systemd are able to manage multiple redis
-    # instances. Individual instances are managed by interpolating
-    # the instance name in a systemd unit template file.
-    # See <http://0pointer.de/blog/projects/instances.html>.
-    if $::initsystem == 'systemd' {
-        file { '/lib/systemd/system/[email protected]':
-            source => 'puppet:///modules/redis/[email protected]',
-            owner  => 'root',
-            group  => 'root',
-            mode   => '0444',
-        } -> Redis::Instance <|  |>
-    }
 }
diff --git a/modules/redis/manifests/instance.pp 
b/modules/redis/manifests/instance.pp
index e05f845..cf62bc3 100644
--- a/modules/redis/manifests/instance.pp
+++ b/modules/redis/manifests/instance.pp
@@ -77,14 +77,10 @@
         mode    => '0444',
     }
 
-    file { 
"/etc/systemd/system/multi-user.target.wants/redis-instance@${instance_name}.service":
-        ensure => ensure_link($ensure),
-        target => '/lib/systemd/system/[email protected]',
-    }
-
-    service { "redis-instance@${instance_name}":
-        ensure    => ensure_service($ensure),
-        provider  => 'systemd',
-        subscribe => File["/etc/redis/${instance_name}.conf"],
+    base::service_unit { "redis-instance-${instance_name}":
+        ensure        => $ensure,
+        template_name => 'redis-instance',
+        systemd       => true,
+        subscribe     => File["/etc/redis/${instance_name}.conf"],
     }
 }
diff --git a/modules/redis/templates/initscripts/redis-instance.systemd.erb 
b/modules/redis/templates/initscripts/redis-instance.systemd.erb
new file mode 100644
index 0000000..cdacdf7
--- /dev/null
+++ b/modules/redis/templates/initscripts/redis-instance.systemd.erb
@@ -0,0 +1,13 @@
+[Unit]
+Description=Advanced key-value store
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/redis-server /etc/redis/<%= @instance_name %>.conf
+Restart=always
+User=redis
+Group=redis
+
+[Install]
+WantedBy=multi-user.target

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I15c1aeeb41f2bb6b2af5d8916380febc5908c450
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to