geerlingguy.htpasswd

Rôle Ansible : htpasswd

CI

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.

Installer
ansible-galaxy install geerlingguy.htpasswd
Licence
mit
Téléchargements
139.6k
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns