damianlewis.apache
Ansible Rolle: Apache
Installiert und konfiguriert Apache.
Anforderungen
Keine.
Rollenvariablen
Verfügbare Variablen sind unten aufgelistet. Siehe defaults/main.yml
für die Standardwerte.
apache_use_ppa: false
Um das PPA-Repository zur Installation von Apache zu verwenden, setzen Sie die Variable apache_use_ppa
auf true
.
apache_user: www
apache_group: www
Sie können den Benutzer und die Gruppe ändern, unter denen Apache laufen soll. Standardmäßig verwendet Apache www-data
für Benutzer und Gruppe.
apache_timeout: '100'
apache_enable_keepalive: false
apache_max_keepalive_request: '200'
apache_keepalive_timeout: '300'
apache_enable_hostname_lookups: true
Einige der Hauptkonfigurationsanweisungen von Apache können überschrieben werden, indem Sie eine der oben genannten Variablen setzen.
apache_log_path: /path/to/logs
apache_error_log_level: warn
Sie können das Fehlerprotokoll mit der Variable apache_error_log_level
konfigurieren. Der Fehlerprotokolllevel kann einer der folgenden Werte sein: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
oder emerg
. Standardmäßig ist der Fehlerprotokolllevel warn
.
Sie können den Standardort, an dem Protokolldateien gespeichert werden, ändern, indem Sie die Variable apache_log_path
setzen. Der Standardort ist /var/log/apache2
.
apache_disable_default_site: true
Deaktiviert die standardmäßig mit Apache installierte Website.
apache_pid_file: logs/apache.pid
Die Standard-PID-Direktive ist auf /var/run/apache2/apache2.pid
eingestellt. Verwenden Sie die Variable apache_pid_file
, um dies zu überschreiben.
apache_run_path: /var/run/apache2
apache_lock_path: /var/lock/apache2
Verwenden Sie die Variablen apache_run_path
und apache_lock_path
, um die Standardwerte für die temporären Statusdateispeicherorte zu überschreiben. Standardmäßig ist apache_run_path
auf /var/run/apache2
und apache_lock_path
auf /var/lock/apache2
eingestellt.
apache_http_port: '8080'
apache_https_port: '44300'
Um die Standardports für HTTP und HTTPS zu überschreiben, verwenden Sie die Variablen apache_http_port
und apache_https_port
.
apache_allow_additional_confs: false
Standardmäßig schließt Apache alle Konfigurationsdateien in den Ordnern conf.d
oder conf-enabled
ein. Um diese zusätzlichen Konfigurationen auszuschließen, setzen Sie die Variable apache_allow_additional_confs
auf false
.
apache_modules:
- name: headers
- name: rewrite
- name: ssl
state: absent
Verwenden Sie die Variable apache_modules
, um Apache-Module ein- oder auszuschalten. Das Attribut name
ist erforderlich und sollte der Name des Moduls sein, das ein- oder ausgeschaltet werden soll. Standardmäßig wird jedes aufgelistete Modul aktiviert. Fügen Sie das Attribut state
mit dem Wert absent
hinzu, um ein Modul zu deaktivieren.
apache_sites:
- hostname: www.example.com
root: /var/www/html
alias: *.example.com
Verwenden Sie die Variable apache_sites
, um Websites hinzuzufügen und zu konfigurieren. Die einzigen erforderlichen Attribute für eine Website sind hostname
und der Pfad zum root
-Ordner. Ein optionales Serveralias kann hinzugefügt werden.
apache_sites:
- hostname: example.com
root: /var/www/html
state: absent
Standardmäßig wird eine Website erstellt, wenn sie zur Variable apache_sites
hinzugefügt wird. Verwenden Sie das Attribut state
mit dem Wert absent
, um eine Website zu deaktivieren oder zu entfernen.
apache_sites:
- hostname: example.com
root: /var/www/html
enable_http_to_https_redirect: true
Setzen Sie die Variable enable_http_to_https_redirect
, um HTTP-Anfragen auf das HTTPS-Protokoll umzuleiten. Stellen Sie sicher, dass ein SSL-Zertifikat eingerichtet wurde und dass Apache für die Verwendung von SSL konfiguriert ist, wie unten beschrieben.
apache_sites:
- hostname: www.sub.example.com
root: /var/www/subdomain/sub
virtualhost_directives: |
ServerPath "/sub/"
RewriteEngine On
RewriteRule "^(/sub/.*)" "/var/www/subdomain$1"
Zusätzliche Direktiven für den virtuellen Host können mit dem Attribut virtualhost_directives
hinzugefügt werden.
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"'
Verwenden Sie das Attribut headers
, um Serverantwort-Header hinzuzufügen.
apache_sites:
- hostname: example.com
root: /var/www/html
directories:
- rule: '/var/www/html'
block: |
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
Verzeichnis-Direktiven können erstellt werden, indem sie dem Attribut directories
hinzugefügt werden. Geben Sie eine rule
für das Verzeichnis und die Direktiven an, die im block
enthalten sein sollen.
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
FilesMatch-Direktiven können erstellt werden, indem sie dem Attribut filesmatches
hinzugefügt werden. Geben Sie eine rule
für den regulären Ausdruck und die Direktiven an, die im block
enthalten sein sollen.
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
Um separate Protokolldateien für einzelne Websites zu erstellen, setzen Sie die Attribute enable_error_log
und enable_access_log
auf true
. Verwenden Sie die Attribute error_log_level
und access_log_format
, um die Protokolle zu konfigurieren. Der Fehlerprotokolllevel kann einer der folgenden Werte sein: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
oder emerg
. Standardmäßig ist der Fehlerprotokolllevel warn
. Um ein benutzerdefiniertes Zugangprotokollformat zu verwenden, stellen Sie sicher, dass das benutzerdefinierte Format vorhanden ist. Standardmäßig ist das Zugangprotokollformat 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
Um HTTPS zu verwenden, stellen Sie sicher, dass ein SSL-Zertifikat auf dem Server installiert ist. Geben Sie den Speicherort des Zertifikats mit dem Attribut ssl_certificate
und den Speicherort des privaten Schlüssels mit dem Attribut ssl_certificate_key
an. Ein optionales vollständiges Kettenzertifikat kann durch Setzen der Variable ssl_certificate_chain
verwendet werden.
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"'
Zusätzliche SSL-Direktiven und Header können mit den Attributen https_server_directives
und https_headers
hinzugefügt werden.
apache_sites:
- hostname: example.com
root: /var/www/html
server_directives: |
SSLStaplingCache shmcb:logs/stapling-cache(150000)
Zusätzliche Server-Direktiven können mit dem Attribut server_directives
zur Konfigurationsdatei des virtuellen Hosts hinzugefügt werden.
apache_sites:
- hostname: example.com
root: /var/www/html
ip_address: '*'
http_port: '80'
https_port: '443'
Die oben gezeigten Standardwerte zur Konfiguration einer Website können durch Hinzufügen von Attributen überschrieben werden.
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: server
become: yes
tasks:
- import_role:
name: damianlewis.apache
ansible-galaxy install damianlewis.apache