damianlewis.apache
Rôle Ansible : Apache
Installe et configure Apache.
Exigences
Aucune.
Variables du rôle
Les variables disponibles sont listées ci-dessous, voir defaults/main.yml
pour les valeurs par défaut.
apache_use_ppa: false
Pour utiliser le dépôt PPA pour installer Apache, définissez la variable apache_use_ppa
à true
.
apache_user: www
apache_group: www
Vous pouvez changer l'utilisateur et le groupe sous lesquels Apache fonctionnera. Par défaut, Apache utilisera www-data
pour les deux.
apache_timeout: '100'
apache_enable_keepalive: false
apache_max_keepalive_request: '200'
apache_keepalive_timeout: '300'
apache_enable_hostname_lookups: true
Certaines des directives principales de configuration utilisées par Apache peuvent être remplacées en définissant l'une des variables ci-dessus.
apache_log_path: /path/to/logs
apache_error_log_level: warn
Vous pouvez configurer le journal des erreurs en utilisant la variable apache_error_log_level
. Le niveau de journalisation des erreurs peut être l'un des suivants : trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
ou emerg
. Par défaut, le niveau de journalisation des erreurs est warn
.
Vous pouvez remplacer l'emplacement par défaut où les fichiers journaux sont stockés en définissant la variable apache_log_path
. L'emplacement par défaut est /var/log/apache2
.
apache_disable_default_site: true
Désactive le site par défaut installé avec Apache.
apache_pid_file: logs/apache.pid
Le paramètre pid
par défaut est /var/run/apache2/apache2.pid
. Utilisez la variable apache_pid_file
pour remplacer cela.
apache_run_path: /var/run/apache2
apache_lock_path: /var/lock/apache2
Utilisez les variables apache_run_path
et apache_lock_path
pour remplacer les valeurs par défaut utilisées pour les emplacements des fichiers d'état temporaires. La valeur par défaut pour apache_run_path
est /var/run/apache2
et celle pour apache_lock_path
est /var/lock/apache2
.
apache_http_port: '8080'
apache_https_port: '44300'
Pour remplacer les ports par défaut utilisés pour HTTP et HTTPS, utilisez les variables apache_http_port
et apache_https_port
.
apache_allow_additional_confs: false
Par défaut, Apache inclura les fichiers de configuration trouvés dans les dossiers conf.d
ou conf-enabled
. Pour exclure ces configurations supplémentaires, définissez la variable apache_allow_additional_confs
à false
.
apache_modules:
- name: headers
- name: rewrite
- name: ssl
state: absent
Utilisez la variable apache_modules
pour activer/désactiver les modules d'Apache. L'attribut name
est requis et doit être le nom du module à activer/désactiver. Par défaut, tout module listé sera activé. Pour désactiver un module, ajoutez l'attribut state
avec une valeur de absent
.
apache_sites:
- hostname: www.example.com
root: /var/www/html
alias: *.example.com
Utilisez la variable apache_sites
pour ajouter et configurer des sites. Les seuls attributs requis pour un site sont le hostname
et le chemin vers le dossier root
. Un alias de serveur optionnel peut être ajouté.
apache_sites:
- hostname: example.com
root: /var/www/html
state: absent
Par défaut, un site est créé lorsqu'il est ajouté à la variable apache_sites
. Utilisez l'attribut state
avec une valeur de absent
pour désactiver/retirer un site.
apache_sites:
- hostname: example.com
root: /var/www/html
enable_http_to_https_redirect: true
Définissez la variable enable_http_to_https_redirect
pour rediriger les requêtes HTTP vers le protocole HTTPS. Assurez-vous qu'un certificat SSL a été configuré et qu'Apache est configuré pour utiliser SSL, comme détaillé ci-dessous.
apache_sites:
- hostname: www.sub.example.com
root: /var/www/subdomain/sub
virtualhost_directives: |
ServerPath "/sub/"
RewriteEngine On
RewriteRule "^(/sub/.*)" "/var/www/subdomain$1"
Des directives supplémentaires pour l'hôte virtuel peuvent être ajoutées en utilisant l'attribut 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"'
Utilisez l'attribut headers
pour ajouter des en-têtes de réponse du serveur.
apache_sites:
- hostname: example.com
root: /var/www/html
directories:
- rule: '/var/www/html'
block: |
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
Des directives de répertoire peuvent être créées en les ajoutant à l'attribut directories
. Spécifiez une rule
pour le répertoire et les directives à inclure dans le 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
Des directives FilesMatch peuvent être créées en les ajoutant à l'attribut filesmatches
. Spécifiez une rule
pour l'expression régulière et les directives à inclure dans le 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
Pour créer des fichiers journaux séparés pour des sites individuels, définissez les attributs enable_error_log
et enable_access_log
à true
. Utilisez les attributs error_log_level
et access_log_format
pour configurer les journaux. Le niveau de journalisation des erreurs peut être l'un des suivants : trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
ou emerg
. Par défaut, le niveau de journalisation des erreurs est warn
. Pour utiliser un format de journal d'accès personnalisé, assurez-vous que le format personnalisé existe. Par défaut, le format de journal d'accès est 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
Pour utiliser HTTPS, assurez-vous qu'un certificat SSL a été installé sur le serveur. Spécifiez l'emplacement du certificat avec l'attribut ssl_certificate
et l'emplacement de la clé privée avec l'attribut ssl_certificate_key
. Un certificat de chaîne complet optionnel peut être utilisé en définissant 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"'
Des directives et des en-têtes SSL supplémentaires peuvent être ajoutés en utilisant les attributs https_server_directives
et https_headers
.
apache_sites:
- hostname: example.com
root: /var/www/html
server_directives: |
SSLStaplingCache shmcb:logs/stapling-cache(150000)
Des directives de serveur supplémentaires peuvent être ajoutées au fichier d'hôte virtuel en utilisant l'attribut server_directives
.
apache_sites:
- hostname: example.com
root: /var/www/html
ip_address: '*'
http_port: '80'
https_port: '443'
Les valeurs par défaut utilisées pour configurer un site sont montrées ci-dessus. Ajoutez n'importe lequel de ces attributs au site pour remplacer sa valeur.
Dépendances
Aucune.
Exemple de Playbook
- hosts: server
become: yes
tasks:
- import_role:
name: damianlewis.apache
ansible-galaxy install damianlewis.apache