Last active
January 4, 2016 06:09
-
-
Save 0x46616c6b/8579706 to your computer and use it in GitHub Desktop.
Some work on skeleton support for ansibles user module
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: library/system/user | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- library/system/user (revision ff8eb5f4540d4649978f227dd432a1a2b5bd2512) | |
+++ library/system/user (revision ) | |
@@ -72,6 +72,10 @@ | |
required: false | |
description: | |
- Optionally set the user's home directory. | |
+ skeleton: | |
+ required: false | |
+ description: | |
+ - Optionally set a home skeleton directory. Requires createhome option! | |
password: | |
required: false | |
description: | |
@@ -231,6 +235,7 @@ | |
self.force = module.params['force'] | |
self.remove = module.params['remove'] | |
self.createhome = module.params['createhome'] | |
+ self.skeleton = module.params['skeleton'] | |
self.system = module.params['system'] | |
self.login_class = module.params['login_class'] | |
self.append = module.params['append'] | |
@@ -304,6 +309,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
else: | |
cmd.append('-M') | |
@@ -566,10 +575,14 @@ | |
def create_homedir(self, path): | |
if not os.path.exists(path): | |
- # use /etc/skel if possible | |
- if os.path.exists('/etc/skel'): | |
+ if self.skeleton is not None: | |
+ skeleton = self.skeleton | |
+ else: | |
+ skeleton = '/etc/skel' | |
+ | |
+ if os.path.exists(skeleton): | |
try: | |
- shutil.copytree('/etc/skel', path, symlinks=True) | |
+ shutil.copytree(skeleton, path, symlinks=True) | |
except OSError, e: | |
self.module.exit_json(failed=True, msg="%s" % e) | |
else: | |
@@ -657,6 +670,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
+ | |
if self.shell is not None: | |
cmd.append('-s') | |
cmd.append(self.shell) | |
@@ -831,6 +848,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
+ | |
cmd.append(self.name) | |
return self.execute_command(cmd) | |
@@ -997,6 +1018,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
+ | |
cmd.append(self.name) | |
return self.execute_command(cmd) | |
@@ -1148,6 +1173,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
+ | |
cmd.append(self.name) | |
if self.module.check_mode: | |
@@ -1318,6 +1347,10 @@ | |
if self.createhome: | |
cmd.append('-m') | |
+ if self.skeleton is not None: | |
+ cmd.append('-k') | |
+ cmd.append(self.skeleton) | |
+ | |
cmd.append(self.name) | |
(rc, out, err) = self.execute_command(cmd) | |
@@ -1439,6 +1472,7 @@ | |
remove=dict(default='no', type='bool'), | |
# following options are specific to useradd | |
createhome=dict(default='yes', type='bool'), | |
+ skeleton=dict(default=None, type='str'), | |
system=dict(default='no', type='bool'), | |
# following options are specific to usermod | |
append=dict(default='no', type='bool'), |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment