geerlingguy.htpasswd
Rol de Ansible: htpasswd
Una Rol de Ansible que instala htpasswd
y permite una fácil configuración de archivos y credenciales de autenticación htpasswd
(usado para autenticación básica HTTP con servidores web como Apache y Nginx) en servidores basados en Linux.
Requisitos
Ninguno.
Variables de Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
htpasswd_nolog: true
Si mostrar las credenciales de htpasswd en la salida de registro de Ansible. Debe permanecer en true
a menos que estés depurando algo.
htpasswd_credentials:
- path: /etc/nginx/passwdfile
name: johndoe
password: 'supersecure'
owner: root
group: www-data
mode: 'u+rw,g+r'
- path: /etc/apache2/passwdfile
name: janedoe
password: 'supersecure'
owner: root
group: www-data
mode: 'u+rw,g+r'
Una lista de credenciales que se generarán (o eliminarán) en los archivos respectivos definidos por la clave path
para cada diccionario. Todos los parámetros excepto mode
son obligatorios (mode
por defecto es 'u+rw,g+r'
(0640
en octal)).
htpasswd_required_packages:
- apache2-utils
- python3-passlib
(Mostrados los valores predeterminados de Debian). Puedes reemplazar los paquetes instalados usando esta variable (por ejemplo, para CentOS 7, podrías cambiar python3-passlib
a python-passlib
).
Dependencias
Ninguna.
Ejemplos de Playbooks
Ejemplo Apache
---
- hosts: apache-server
vars:
htpasswd_credentials:
- path: /etc/apache-passwdfile
name: johndoe
password: 'supersecure'
owner: root
group: apache
mode: 'u+rw,g+r'
apache_remove_default_vhost: True
apache_vhosts:
- listen: "80"
servername: "htpassword.test"
documentroot: "/var/www/html"
extra_parameters: |
<Directory "/var/www/html">
AuthType Basic
AuthName "Apache con autenticación básica."
AuthUserFile /etc/apache-passwdfile
Require valid-user
</Directory>
pre_tasks:
- name: Actualizar caché de apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.apache
- geerlingguy.htpasswd
Ejemplo Nginx
---
- hosts: nginx-server
vars:
htpasswd_credentials:
- path: /etc/nginx/passwdfile
name: johndoe
password: 'supersecure'
owner: root
group: www-data
mode: 'u+rw,g+r'
nginx_remove_default_vhost: True
nginx_vhosts:
- listen: "80"
server_name: "htpassword.test"
root: "/var/www/html"
index: "index.html index.html index.nginx-debian.html"
filename: "htpassword.test.conf"
extra_parameters: |
location / {
auth_basic "Nginx con autenticación básica.";
auth_basic_user_file /etc/nginx/passwdfile;
}
pre_tasks:
- name: Actualizar caché de apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.nginx
- geerlingguy.htpasswd
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2018 por Jeff Geerling, autor de Ansible for DevOps.
htpasswd installation and helper role for Linux servers.
ansible-galaxy install geerlingguy.htpasswd