htpasswd
Ansible Роль: htpasswd
Ansible роль, которая устанавливает htpasswd
и позволяет легко настраивать файлы аутентификации htpasswd
и учетные данные (используются для базовой HTTP аутентификации с веб-серверами, такими как Apache и Nginx) на серверах на основе Linux.
Требования
Нет.
Переменные роли
Доступные переменные перечислены ниже, вместе с их значениями по умолчанию (см. defaults/main.yml
):
htpasswd_nolog: true
Показывать ли учетные данные htpasswd в логах Ansible. Должно оставаться true
, если вы не отлаживаете что-то.
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'
Список учетных данных, которые будут сгенерированы (или удалены) в соответствующих файлах, определенных в ключе path
для каждого словаря. Все параметры, кроме mode
, обязательны (mode
по умолчанию равен 'u+rw,g+r'
(0640
в восьмеричной системе)).
htpasswd_required_packages:
- apache2-utils
- python3-passlib
(отображаются значения по умолчанию для Debian). Вы можете переопределить установленные пакеты с помощью этой переменной (например, для CentOS 7 вы можете заменить python3-passlib
на python-passlib
).
Зависимости
Нет.
Примеры Плейбуков
Пример 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 с базовой аутентификацией."
AuthUserFile /etc/apache-passwdfile
Require valid-user
</Directory>
pre_tasks:
- name: Обновить кеш apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.apache
- geerlingguy.htpasswd
Пример 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 с базовой аутентификацией.";
auth_basic_user_file /etc/nginx/passwdfile;
}
pre_tasks:
- name: Обновить кеш apt.
apt: update_cache=yes cache_valid_time=600
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.nginx
- geerlingguy.htpasswd
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2018 году Джеффом Гирлингом, автором Ansible для DevOps.
htpasswd installation and helper role for Linux servers.
ansible-galaxy install geerlingguy/ansible-role-htpasswd