htpasswd

Ansible Роль: htpasswd

CI

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.

Установить
ansible-galaxy install geerlingguy/ansible-role-htpasswd
Лицензия
mit
Загрузки
120936
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns