On this page
htpasswd - manage user files for basic authentication
New in version 1.3.
Synopsis
- Add and remove username/password entries in a password file using htpasswd.
 - This is used by web servers such as Apache and Nginx for basic authentication.
 
Requirements (on host that executes module)
- passlib>=1.6
 
Options
| parameter | required | default | choices | comments | 
|---|---|---|---|---|
| create | 
      no | yes | 
       
  | 
      
        
        Used with  state=present. If specified, the file will be created if it does not already exist. If set to "no", will fail if the file does not exist
        | 
     
| crypt_scheme | 
      no | apr_md5_crypt | 
       
  | 
      
        
        Encryption scheme to be used. As well as the four choices listed here, you can also use any other hash supported by passlib, such as md5_crypt and sha256_crypt, which are linux passwd hashes. If you do so the password file will not be compatible with Apache or Nginx
         | 
     
| name | 
      yes | 
        
        User name to add or remove
        
       
        aliases: username
         | 
     ||
| password | 
      no | 
        
        Password associated with user.
        
       
        Must be specified if user does not exist yet.
         | 
     ||
| path | 
      yes | 
        
        Path to the file that contains the usernames and passwords
        
       
        aliases: dest, destfile
         | 
     ||
| state | 
      no | present | 
       
  | 
      
        
        Whether the user entry should be present or not
         | 
     
Examples
# Add a user to a password file and ensure permissions are set
- htpasswd:
    path: /etc/nginx/passwdfile
    name: janedoe
    password: '9s36?;fyNp'
    owner: root
    group: www-data
    mode: 0640
# Remove a user from a password file
- htpasswd:
    path: /etc/apache2/passwdfile
    name: foobar
    state: absent
# Add a user to a password file suitable for use by libpam-pwdfile
- htpasswd:
    path: /etc/mail/passwords
    name: alex
    password: oedu2eGh
    crypt_scheme: md5_crypt
  Notes
Note
- This module depends on the passlib Python library, which needs to be installed on all target systems.
 - On Debian, Ubuntu, or Fedora: install python-passlib.
 - On RHEL or CentOS: Enable EPEL, then install python-passlib.
 
Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/2.4/htpasswd_module.html