diff --git a/examples/playbooks/user_commands.yml b/examples/playbooks/user_commands.yml index 1217f63ea2..4d66dd392a 100644 --- a/examples/playbooks/user_commands.yml +++ b/examples/playbooks/user_commands.yml @@ -15,11 +15,9 @@ - name: test basic user account creation action: user name=tset comment=TsetUser gid=100 shell=/sbin/nologin createhome=no - - name: test user account modification - action: user name=tset comment=NyetUser + # the following is just a simple example of how you don't have to include + # the 'name' element for each task - - name: test user account password change - action: user name=tset password=$password - - - name: test user account modification - action: user name=tset state=absent + - action: user name=tset comment=NyetUser + - action: user name=tset password=$password + - action: user name=tset state=absent diff --git a/lib/ansible/playbook.py b/lib/ansible/playbook.py index 5b994d7ac8..3e024f6267 100755 --- a/lib/ansible/playbook.py +++ b/lib/ansible/playbook.py @@ -336,8 +336,12 @@ class PlayBook(object): host_list = self._prune_failed_hosts(host_list) # load the module name and parameters from the task entry - name = task['name'] # FIXME: error if not set - action = task['action'] # FIXME: error if not set + name = task.get('name', None) + action = task.get('action', None) + if action is None: + raise errors.AnsibleError("action is required for each item in tasks") + if name is None: + name = action only_if = task.get('only_if', 'True') async_seconds = int(task.get('async', 0)) # not async by default async_poll_interval = int(task.get('poll', 10)) # default poll = 10 seconds