damianlewis.apache
Rol de Ansible: Apache
Instala y configura Apache.
Requisitos
Ninguno.
Variables del Rol
Las variables disponibles se enumeran a continuación, consulta defaults/main.yml para ver los valores predeterminados.
apache_use_ppa: false
Para usar el repositorio PPA para instalar Apache, establece la variable apache_use_ppa en true.
apache_user: www
apache_group: www
Puedes cambiar el usuario y el grupo bajo los cuales se ejecutará Apache. Por defecto, Apache usará www-data para ambos.
apache_timeout: '100'
apache_enable_keepalive: false
apache_max_keepalive_request: '200'
apache_keepalive_timeout: '300'
apache_enable_hostname_lookups: true
Algunas de las principales directivas de configuración utilizadas por Apache pueden ser sobrescritas configurando cualquiera de las variables anteriores.
apache_log_path: /path/to/logs
apache_error_log_level: warn
Puedes configurar el registro de errores utilizando la variable apache_error_log_level. El nivel de registro de errores puede ser uno de los siguientes: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert, o emerg. Por defecto, el nivel de registro de errores es warn.
Puedes sobrescribir la ubicación predeterminada donde se almacenan los archivos de registro configurando la variable apache_log_path. La ubicación predeterminada es /var/log/apache2.
apache_disable_default_site: true
Desactiva el sitio predeterminado que se instala con Apache.
apache_pid_file: logs/apache.pid
La configuración predeterminada de pid es /var/run/apache2/apache2.pid. Usa la variable apache_pid_file para sobrescribir esto.
apache_run_path: /var/run/apache2
apache_lock_path: /var/lock/apache2
Usa las variables apache_run_path y apache_lock_path para sobrescribir los valores predeterminados para las ubicaciones de archivos de estado temporales. La predeterminada para apache_run_path es /var/run/apache2 y para apache_lock_path es /var/lock/apache2.
apache_http_port: '8080'
apache_https_port: '44300'
Para sobrescribir los puertos predeterminados utilizados para HTTP y HTTPS, usa las variables apache_http_port y apache_https_port.
apache_allow_additional_confs: false
Por defecto, Apache incluirá cualquier archivo de configuración encontrado en la carpeta conf.d o conf-enabled. Para excluir estas configuraciones adicionales, establece la variable apache_allow_additional_confs en false.
apache_modules:
- name: headers
- name: rewrite
- name: ssl
state: absent
Usa la variable apache_modules para habilitar/deshabilitar módulos de Apache. El atributo name es obligatorio y debe ser el nombre del módulo a habilitar/deshabilitar. Por defecto, cualquier módulo listado estará habilitado. Para deshabilitar un módulo, añade el atributo state con un valor de absent.
apache_sites:
- hostname: www.example.com
root: /var/www/html
alias: *.example.com
Usa la variable apache_sites para añadir y configurar sitios. Los únicos atributos requeridos para un sitio son el hostname y la ruta a la carpeta root. Se puede agregar un alias de servidor opcional.
apache_sites:
- hostname: example.com
root: /var/www/html
state: absent
Por defecto, un sitio se crea al añadirlo a la variable apache_sites. Usa el atributo state con un valor de absent para deshabilitar/eliminar un sitio.
apache_sites:
- hostname: example.com
root: /var/www/html
enable_http_to_https_redirect: true
Establece la variable enable_http_to_https_redirect para redirigir solicitudes HTTP al protocolo HTTPS. Asegúrate de que se haya configurado un certificado SSL y que Apache esté configurado para usar SSL, como se detalla a continuación.
apache_sites:
- hostname: www.sub.example.com
root: /var/www/subdomain/sub
virtualhost_directives: |
ServerPath "/sub/"
RewriteEngine On
RewriteRule "^(/sub/.*)" "/var/www/subdomain$1"
Se pueden agregar directivas de host virtual adicionales utilizando el atributo virtualhost_directives.
apache_sites:
- hostname: example.com
root: /var/www/html
headers:
- 'X-Frame-Options "DENY"'
- 'X-Content-Type-Options "nosniff"'
- 'X-XSS-Protection "1; mode=block"'
Usa el atributo headers para añadir encabezados de respuesta del servidor.
apache_sites:
- hostname: example.com
root: /var/www/html
directories:
- rule: '/var/www/html'
block: |
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
Las directivas de directorio se pueden crear añadiéndolas al atributo directories. Especifica una rule para el directorio y las directivas que se incluirán en el block.
apache_sites:
- hostname: example.com
root: /var/www/html
filesmatches:
- rule: '.+\.ph(p[3457]?|t|tml)$'
block: |
SetHandler proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost
Las directivas FilesMatch se pueden crear añadiéndolas al atributo filesmatches. Especifica una rule para la expresión regular y las directivas que se incluirán en el block.
apache_sites:
- hostname: example.com
root: /var/www/html
enable_error_log: true
error_log_level: warn
enable_access_log: true
access_log_format: main
Para crear archivos de registro separados para sitios individuales, establece los atributos enable_error_log y enable_access_log en true. Usa los atributos error_log_level y access_log_format para configurar los registros. El nivel de registro de errores puede ser uno de los siguientes: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert, o emerg. Por defecto, el nivel de registro de errores es warn. Para usar un formato de registro de acceso personalizado, asegúrate de que el formato personalizado exista. Por defecto, el formato de registro de acceso es combined.
apache_sites:
- hostname: example.com
root: /var/www/html
ssl_certificate: /etc/ssl/example.com/certificate.crt
ssl_certificate_key: /etc/ssl/private/example.com.key
ssl_certificate_chain: /etc/ssl/example.com/fullchain.pem
Para usar HTTPS, asegúrate de que se ha instalado un certificado SSL en el servidor. Especifica la ubicación del certificado usando el atributo ssl_certificate y la ubicación de la clave privada usando el atributo ssl_certificate_key. Se puede usar un certificado de cadena completa opcional configurando la variable ssl_certificate_chain.
apache_sites:
- hostname: example.com
root: /var/www/html
https_virtualhost_directives: |
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
SSLUseStapling on
SSLCompression off
SSLSessionTickets off
https_headers:
- 'Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"'
Se pueden agregar directivas y encabezados adicionales de SSL utilizando los atributos https_server_directives y https_headers.
apache_sites:
- hostname: example.com
root: /var/www/html
server_directives: |
SSLStaplingCache shmcb:logs/stapling-cache(150000)
Se pueden agregar directivas de servidor adicionales al archivo del host virtual utilizando el atributo server_directives.
apache_sites:
- hostname: example.com
root: /var/www/html
ip_address: '*'
http_port: '80'
https_port: '443'
Los valores predeterminados utilizados para configurar un sitio se muestran arriba. Añade cualquiera de estos atributos al sitio para sobrescribir su valor.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: server
become: yes
tasks:
- import_role:
name: damianlewis.apache
ansible-galaxy install damianlewis.apache