geerlingguy.htpasswd

Rol de Ansible: htpasswd

CI

Una Rol de Ansible que instala htpasswd y permite una fácil configuración de archivos y credenciales de autenticación htpasswd (usado para autenticación básica HTTP con servidores web como Apache y Nginx) en servidores basados en Linux.

Requisitos

Ninguno.

Variables de Rol

Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

htpasswd_nolog: true

Si mostrar las credenciales de htpasswd en la salida de registro de Ansible. Debe permanecer en true a menos que estés depurando algo.

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'

Una lista de credenciales que se generarán (o eliminarán) en los archivos respectivos definidos por la clave path para cada diccionario. Todos los parámetros excepto mode son obligatorios (mode por defecto es 'u+rw,g+r' (0640 en octal)).

htpasswd_required_packages:
  - apache2-utils
  - python3-passlib

(Mostrados los valores predeterminados de Debian). Puedes reemplazar los paquetes instalados usando esta variable (por ejemplo, para CentOS 7, podrías cambiar python3-passlib a python-passlib).

Dependencias

Ninguna.

Ejemplos de Playbooks

Ejemplo 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 con autenticación básica."
                  AuthUserFile /etc/apache-passwdfile
                  Require valid-user
              </Directory>

  pre_tasks:
    - name: Actualizar caché de apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.apache
    - geerlingguy.htpasswd

Ejemplo 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 con autenticación básica.";
                  auth_basic_user_file /etc/nginx/passwdfile;
              }

  pre_tasks:
    - name: Actualizar caché de apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.nginx
    - geerlingguy.htpasswd

Licencia

MIT / BSD

Información del Autor

Este rol fue creado en 2018 por Jeff Geerling, autor de Ansible for DevOps.

Instalar
ansible-galaxy install geerlingguy.htpasswd
Licencia
mit
Descargas
139.6k
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns