geerlingguy.htpasswd
Rôle Ansible : htpasswd
Un rôle Ansible qui installe htpasswd
et permet une configuration facile des fichiers et des identifiants d'authentification htpasswd
(utilisés pour l'authentification de base HTTP avec des serveurs web comme Apache et Nginx) sur des serveurs basés sur Linux.
Exigences
Aucune.
Variables du rôle
Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml
) :
htpasswd_nolog: true
Indique s'il faut afficher les identifiants htpasswd dans le journal d'Ansible. Doit rester true
sauf si vous effectuez un débogage.
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'
Une liste d'identifiants à générer (ou à supprimer) dans les fichiers respectifs définis par la clé path
pour chaque dictionnaire. Tous les paramètres sauf mode
sont requis (mode
par défaut à 'u+rw,g+r'
(0640
en octal)).
htpasswd_required_packages:
- apache2-utils
- python3-passlib
(Par défaut pour Debian). Vous pouvez remplacer les paquets installés en utilisant cette variable (par exemple, pour CentOS 7, vous pourriez changer python3-passlib
en python-passlib
).
Dépendances
Aucune.
Exemples de Playbooks
Exemple 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 avec authentification de base."
AuthUserFile /etc/apache-passwdfile
Require valid-user
</Directory>
pre_tasks:
- name: Mettre à jour le cache apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.apache
- geerlingguy.htpasswd
Exemple 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 avec authentification de base.";
auth_basic_user_file /etc/nginx/passwdfile;
}
pre_tasks:
- name: Mettre à jour le cache apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.nginx
- geerlingguy.htpasswd
License
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2018 par Jeff Geerling, auteur de Ansible for DevOps.
htpasswd installation and helper role for Linux servers.
ansible-galaxy install geerlingguy.htpasswd