geerlingguy.htpasswd

Ansible Rolle: htpasswd

CI

Eine Ansible Rolle, die htpasswd installiert und eine einfache Konfiguration der htpasswd-Authentifizierungsdateien und -anmeldeinformationen ermöglicht (verwendet für die HTTP-Basisauthentifizierung mit Webservern wie Apache und Nginx) auf Linux-basierten Servern.

Anforderungen

Keine.

Variablen der Rolle

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

htpasswd_nolog: true

Ob Anmeldeinformationen von htpasswd im Ansible-Protokoll angezeigt werden sollen. Sollte true bleiben, es sei denn, Sie debuggen etwas.

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'

Eine Liste von Anmeldeinformationen, die in den jeweiligen Dateien generiert (oder entfernt) werden sollen, die durch den path-Schlüssel für jedes Dictionary definiert sind. Alle Parameter außer mode sind erforderlich (mode hat standardmäßig 'u+rw,g+r' (0640 in oktal)).

htpasswd_required_packages:
  - apache2-utils
  - python3-passlib

(Standardwerte für Debian angezeigt). Sie können die installierten Pakete mit dieser Variable überschreiben (z.B. für CentOS 7 könnten Sie python3-passlib in python-passlib ändern).

Abhängigkeiten

Keine.

Beispiel-Playbooks

Apache-Beispiel

---
- 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 mit Basisauthentifizierung."
                  AuthUserFile /etc/apache-passwdfile
                  Require valid-user
              </Directory>

  pre_tasks:
    - name: Aktualisiere den apt-Cache.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.apache
    - geerlingguy.htpasswd

Nginx-Beispiel

---
- 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 mit Basisauthentifizierung.";
                  auth_basic_user_file /etc/nginx/passwdfile;
              }

  pre_tasks:
    - name: Aktualisiere den apt-Cache.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.nginx
    - geerlingguy.htpasswd

Lizenz

MIT / BSD

Autor Informationen

Diese Rolle wurde 2018 von Jeff Geerling erstellt, Autor von Ansible for DevOps.

Installieren
ansible-galaxy install geerlingguy.htpasswd
Lizenz
mit
Downloads
139.6k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns