Commit Graph

72 Commits (636f7536099d38776e184c61400b104297b80bd5)

Author SHA1 Message Date
Stephen Fromm 62a4a68658 Abstract how to look up user password to be more flexible
This adds user_password() to abstract how the user's password is looked
up.  If spwd is not available, this will read the shadow file for the
user's shadow entry.  This will then facilitate idempotent password
changes on hosts without spwd.
12 years ago
Michael DeHaan baacde6c74 Add encoding lines to python modules such that they can take unicode options if they are fed them, since the
AnsibleModule stuff no longer base64 encodes for simplicity and speed reasons.
12 years ago
Michael DeHaan 4782bc1949 Port the file module over to the new common code infrastructure + cleanup some redundant imports since the module code already imports those things. 12 years ago
Mark Theunissen b7b44fbf93 Undefined variable error 13 years ago
Stephen Fromm 47cd5de2cc Update user module to use new shared module code 13 years ago
Michael DeHaan 3d4efc0504 Change the way we do with_items to make them happen next to each other in runner, which eliminates the problem of with_items and vars_files sometimes not playing nice with each other.
(Also a fix for the user module error handling when the user
is not present at the time of the return.  This can only really be caused by multiple ansible executions).
13 years ago
Jeremy Smitherman 53459e5609 Added yes/no to user options instead of False comparison for force and remove options for user module 13 years ago
Stephen Fromm 50039260e2 Minor fix to user module to further streamline setting 'changed' flag 13 years ago
Michael DeHaan a1f93baa68 Merge pull request #568 from sfromm/user
User modules fixes
13 years ago
Stephen Fromm 5adbe2453c Fixes to user module for better error handling
The user module now returns the output, both stdout and stderr, from
useradd, usermod, and userdel.  This should help debug cases why one of
those commands fail.  In addition, the user module will now call
fail_json() when the attempted command failed so as to properly
communicate a failure in a playbook.
13 years ago
Seth Vidal bbd42fcf36 modify user module so that password is NEVER logged before the command runs 13 years ago
Brad Olson 637e0d0df3 Remove call to undefined debug() in module 'user'.
I think when we stopped using stderr for debugging modules because
paramiko didn't like it, many modules used the idiom of defining
a debug function that used standard error. The def's and calls were
removed.

This looks like a stray debug() that didn't get removed and didn't
show up unless you alter a user's groups. If it's hit, 'user' fails
with a global undefined function error.
13 years ago
Stephen Fromm 67ee30f135 Apply logging of arguments to modules (issue #122)
The ohai and facter modules use /usr/bin/logger to log the fact that
they have been invoked.  I added 'import os' to the ping module
so that it could have the same syslog statements as the other modules.
I separated the condensed:
    shlex.split(open(argfile, 'r').read())
into two separate statements similar to the other modules.
13 years ago
Stephen Fromm 7d52ace295 Move import of spwd under a try block
Resolves issue #333.  If spwd is not available, the password will
be set regardless.
13 years ago
Brendan Beveridge 2f53b91697 remove now useless append check in user_mod 13 years ago
Brendan Beveridge 26b1bed22c Fixes issue #315
This adds some logic when usings groups possibly in combination with append

  if just specifying groups and the current groups do not match the list
     set groups
  if specifying groups with append and any group thats not in the current groups
     set groups with -a
13 years ago
Jeroen Hoekx 23c691bd30 Group order in user module should not matter.
Groups are not necessarily returned in the defined order, especially when the user already existed before ansible started managing the system.
13 years ago
Daniel Néri 0c4c3422f3 Add 'system' option for user and group modules
Creates system accounts/groups; corresponds to the '-r' option for {user,group}add.

The option is only honored when users/groups are added, not when modified.
13 years ago
Michael DeHaan 31f6cd6408 Because paramiko using a pty can't distinguish stderr and stdout, remove handling that
treated -D as a way to show stderr, and make sure modules don't include things on stderr.
Update docs and test module script to come into line.
13 years ago
Stephen Fromm cf6bfba2f8 Update user module to support supplementary group membership
This adds two options to the user module: groups and append.  groups is
a comma-delimited list of supplementary groups a user should belong to.
If a user is currently a member of a group not listed in groups, the
user will be removed from it.  To change this behavior, use append=yes.
This will append the user to the list of supplementary groups and *not*
remove the user from unlisted groups.
13 years ago
Stephen Fromm e44bf9e19c Update user module to support group name
This changes the gid option to group.  One may provide a primary group
as either a gid or a name.  The module will then check to verify that
the group already exists.  If the group does not already exist, the
module will fail.
13 years ago
Stephen Fromm e60dc41473 Add user module to create, modify, and delete user accounts
This relies on useradd, usermod, and userdel utilities on the system.
The argument name is required; if state is not provided, present is
assumed.  Other options supported for creating or modifying an existing
account:  uid, gid, comment, home, shell, and password.  If managing the
password, it must already be encrypted.  When creating an account, you
can also provide the argument createhome to control whether the home
directory is created.  Arguments supported for deleting an account are:
force (remove account even if user is logged in) and remove (remove home
directory).
13 years ago