geerlingguy.htpasswd

Rola Ansible: htpasswd

CI

Rola Ansible, która instaluje htpasswd i umożliwia łatwą konfigurację plików uwierzytelniania htpasswd oraz danych uwierzytelniających (używanych do podstawowego uwierzytelniania HTTP w serwerach webowych, takich jak Apache i Nginx) na serwerach działających na systemach Linux.

Wymagania

Brak.

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

htpasswd_nolog: true

Określa, czy dane uwierzytelniające htpasswd mają być wyświetlane w logach Ansible. Powinno pozostawać na true, chyba że debugujesz coś.

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'

Lista danych uwierzytelniających, które mają być generowane (lub usuwane) w odpowiednich plikach określonych przez klucz path dla każdego wpisu. Wszystkie parametry z wyjątkiem mode są wymagane (domyślnie mode ustawione jest na 'u+rw,g+r' (0640 w systemie ósemkowym)).

htpasswd_required_packages:
  - apache2-utils
  - python3-passlib

(Przykłady dla systemu Debian). Możesz nadpisywać zainstalowane pakiety, używając tej zmiennej (np. dla CentOS 7, zmień python3-passlib na python-passlib).

Zależności

Brak.

Przykładowe Playbooki

Przykład dla 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 z podstawowym uwierzytelnianiem."
                  AuthUserFile /etc/apache-passwdfile
                  Require valid-user
              </Directory>

  pre_tasks:
    - name: Aktualizacja pamięci podręcznej apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.apache
    - geerlingguy.htpasswd

Przykład dla 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 z podstawowym uwierzytelnianiem.";
                  auth_basic_user_file /etc/nginx/passwdfile;
              }

  pre_tasks:
    - name: Aktualizacja pamięci podręcznej apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.nginx
    - geerlingguy.htpasswd

Licencja

MIT / BSD

Informacje o Autorze

Ta rola została stworzona w 2018 roku przez Jeffa Geerlinga, autora książki Ansible dla DevOps.

Zainstaluj
ansible-galaxy install geerlingguy.htpasswd
Licencja
mit
Pobrania
139.6k
Właściciel
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns