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