Rush has submitted this change and it was merged.

Change subject: make scap::target use the scap3 package provider
......................................................................


make scap::target use the scap3 package provider

This also updates eventbus to pass manage_user=>false
Refs T113072

Bug: T127215

Change-Id: I223a9fff2d48a3372ca14e56ae94087a6530f9ee
---
M modules/role/manifests/eventbus/eventbus.pp
M modules/scap/manifests/target.pp
2 files changed, 38 insertions(+), 55 deletions(-)

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



diff --git a/modules/role/manifests/eventbus/eventbus.pp 
b/modules/role/manifests/eventbus/eventbus.pp
index 9f2fe93..e7146c2 100644
--- a/modules/role/manifests/eventbus/eventbus.pp
+++ b/modules/role/manifests/eventbus/eventbus.pp
@@ -22,6 +22,7 @@
         public_key_source => 
"puppet:///modules/eventlogging/deployment/eventlogging_rsa.pub.${::realm}",
         deploy_path       => $eventlogging_path,
         service_name      => 'eventlogging-service-eventbus',
+        manage_user       => false,
     }
 
     file { '/etc/eventbus':
diff --git a/modules/scap/manifests/target.pp b/modules/scap/manifests/target.pp
index 477e77a..5f1b696 100644
--- a/modules/scap/manifests/target.pp
+++ b/modules/scap/manifests/target.pp
@@ -3,12 +3,7 @@
 # Sets up a scap3 target for a deployment repository.
 # This will include ths scap package and ferm fules,
 # ensure that the $deploy_user has proper sudo rules
-# and public key installed, and that the $deploy_path
-# is set up with proper permissions.
-#
-# NOTE: This define will not manage $deploy_user for you.  You must
-# ensure that this is done somewhere else in puppet first, e.g.
-#   user { 'my_deploy_user': ... }
+# and public key installed.
 #
 # == Params
 # [*deploy_user*]
@@ -22,9 +17,13 @@
 #   service name that should be allowed to be restarted via sudo by
 #   deploy_user.  Default: undef.
 #
-# [*deploy_path*]
-#   Path at which scap3 will deploy.
-#   Default: /srv/deployment/$title
+# [*package_name*]
+#   the name of the scap3 deployment package Default: $title
+#
+# [*manage_user*]
+#   Specify whether to create a User resource for the $deploy_user.
+#   This should be set to false if you have defined the user elsewhere.
+#   Default: true
 #
 # Usage:
 #
@@ -36,25 +35,48 @@
 #   scap::target { 'eventlogging/eventlogging':
 #       deploy_user => 'eventlogging',
 #       public_key_source => 
"puppet:///modules/eventlogging/deployment/eventlogging_rsa.pub.${::realm}",
-#       deploy_path => '/srv/i/am/special/eventlogging/eventlogging'
 #   }
 #
 define scap::target(
     $deploy_user,
     $public_key_source,
     $service_name = undef,
-    $deploy_path = "/srv/deployment/${title}",
+    $package_name = $title,
+    $manage_user = true,
 ) {
-    User[$deploy_user] -> Scap::Target[$title]
-
     # Include scap3 package and ssh ferm rules.
     include scap
     include scap::ferm
 
+    if $manage_user {
+        user { $deploy_user:
+            ensure     => present,
+            shell      => '/bin/bash',
+            home       => '/var/lib/scap',
+            system     => true,
+            managehome => true,
+        }
+    } else {
+        User[$deploy_user] -> Scap::Target[$title]
+    }
+
+    package { $package_name:
+        install_options => [{ owner => $deploy_user}],
+        provider => 'scap3',
+        require  => [Package['scap'], User[$deploy_user]],
+    }
+
+    if !defined(Ssh::Userkey[$deploy_user]) {
+        ssh::userkey { $deploy_user:
+            source => $public_key_source,
+        }
+    }
+
     # Allow deploy user user to sudo -u $user, and to sudo /usr/sbin/service
     # if $service_name is defined.
-    # sudo -u $user is currently needed by scap3.  TODO: Remove this
-    # when it is no longer needed.
+    #
+    # NOTE: sudo -u $user is currently needed by scap3.
+    # TODO: Remove this when it is no longer needed.
     $privileges = $service_name ? {
         undef   => [
             "ALL=(${deploy_user}) NOPASSWD: ALL",
@@ -71,44 +93,4 @@
         }
     }
 
-    if !defined(Ssh::Userkey[$deploy_user]) {
-        ssh::userkey { $deploy_user:
-            source => $public_key_source,
-        }
-    }
-
-    # $parent_dir needs to be writable by deploy user in order
-    # for scap to be able to create the -cache directories it needs.
-    # This in case you are deploying a repository with
-    # a '/' in the name, e.g. eventlogging/eventlogging.  This makes
-    # sure that /srv/deployment/eventlogging is writable by
-    # scap.
-    #
-    # TODO: if scap3 -cache directory location becomes configurable,
-    # change this.
-    # (dirname() stdlib puppet function not available???)
-    #
-    # NOTE:  We have to manage the parent directory this way,
-    # instead of the scap3 -cache directory directly, to account
-    # for the case where a scap3 git_repo is somethign like
-    # repo/repo/deploy.  We don't know how deep the hierarchy goes,
-    # but we do know that we will need to be able to write to
-    # repo/repo as well as repo/repo/deploy.
-    $parent_dir = inline_template('<%= File.dirname(@deploy_path) %>')
-    if !defined(File[$parent_dir]) {
-        file { $parent_dir:
-            ensure => 'directory',
-            owner  => $deploy_user,
-            mode   => '0775',
-        }
-    }
-
-    file { $deploy_path:
-        # scap3 will symlink during deployments.
-        ensure  => 'present',
-        owner   => $deploy_user,
-        mode    => '0775',
-        # Set permissions recursively.
-        recurse => true,
-    }
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I223a9fff2d48a3372ca14e56ae94087a6530f9ee
Gerrit-PatchSet: 14
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: 20after4 <[email protected]>
Gerrit-Reviewer: 20after4 <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: ArielGlenn <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: Rush <[email protected]>
Gerrit-Reviewer: Thcipriani <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to