I have an ansible task which creates a new user on ubuntu 12.04;
- name: Add deployment user
    action: user name=deployer password=mypassword
My solution is using lookup and generate password automatically.
---
- hosts: 'all'
  remote_user: root
  gather_facts: no
  vars:
    deploy_user: deploy
    deploy_password: "{{ lookup('password', '/tmp/password chars=ascii_letters') }}"
  tasks:
    - name: Create deploy user
      user:
        name: "{{ deploy_user }}"
        password: "{{ deploy_password | password_hash('sha512') }}"