Documentation

    password

    Generate a random plaintext password and store it in a file at a given filepath.

    Parameters

    Parameter Required Type Values Description
    path yes string   Path to the file that stores/will store the password
    length no integer   The length of the generated password. [default: 20]
    chars no array   Character sets to use for password generation. [default: ['ascii_letters', 'digits', 'punctuation']]
    seed no string   A seed to initialize the random number generator for idempotent passwords

    Notes

    • If the file exists previously, it will retrieve its contents (behaves like reading a file).
    • Usage of /dev/null as a path generates a new random password each time without storing it.
    • The file must be readable by the user running the script, or the user must have sufficient privileges to create it.
    • Empty files cause the password to return as an empty string.

    Example

    - name: Generate or retrieve a password
      debug:
        msg: "Password: {{ password('/tmp/mypassword') }}"
    
    - name: Generate a short password with only letters
      debug:
        msg: "Simple password: {{ password('/tmp/simple', length=8, chars=['ascii_letters']) }}"
    
    - name: Generate a digits-only password
      debug:
        msg: "PIN: {{ password('/tmp/pin', length=4, chars=['digits']) }}"
    
    - name: Generate temporary password (not stored)
      debug:
        msg: "Temp password: {{ password('/dev/null', length=12) }}"
    
    - name: Generate idempotent password with seed
      debug:
        msg: "Seeded password: {{ password('/dev/null', seed='my-seed', length=16) }}"