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