gcoop-libre.apache
Apache 2.x
Eine Ansible-Rolle, die Apache 2.x auf RHEL/CentOS, Debian/Ubuntu, SLES und Solaris installiert.
Anforderungen
Die Rolle verwaltet nicht die Zertifikat- und Schlüsseldateien für Websites, die SSL/TLS verwenden.
Wenn Sie Apache mit PHP benötigen, können Sie die PHP-Pakete zur Variable apache_packages
hinzufügen. Alternativ können Sie eine andere Rolle verwenden, wie die Rolle geerlingguy.php
oder geerlingguy.apache-php-fpm
, wenn Sie PHP lieber als FPM anstelle eines Apache-Moduls verwenden.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
apache_enablerepo: ''
Das Repository, das beim Installieren von Apache verwendet werden soll (nur auf RHEL/CentOS-Systemen). Wenn Sie neuere Versionen von Apache als die im Betriebssystem verfügbaren möchten, verwenden Sie ein Repository wie EPEL.
apache_listen_ip: '*'
apache_listen_port: 80
apache_listen_port_ssl: 443
Die IP-Adresse und die Ports, auf denen Apache lauschen soll. Nützlich, wenn Sie einen anderen Dienst (wie einen Reverse Proxy) haben, der auf Port 80 oder 443 lauscht und die Standardwerte ändern müssen.
apache_keepalive: true
apache_keepalive_requests: 500
apache_keepalive_timeout: 5
Diese Eigenschaften aktivieren HTTP persistente Verbindungen, und die Timeout- und Maximalanforderungen können angepasst werden.
apache_prefork_server_limit: 256
apache_prefork_start_servers: 5
apache_prefork_min_spare_servers: 5
apache_prefork_max_spare_servers: 10
apache_prefork_max_clients: 256
apache_prefork_max_requests_per_child: 0
Die Konfiguration des MPM-Moduls des Servers. Diese Eigenschaften gelten für das MPM Prefork-Modul und das MPM Worker-Modul. Nur bei Apache 2.4 auf Debian können die MPM-Module mit unterschiedlichen Werten konfiguriert werden, da es separate Dateien hat.
apache_worker_server_limit: 16
apache_worker_start_servers: 3
apache_worker_min_spare_threads: 75
apache_worker_max_spare_threads: 250
apache_worker_max_clients: 400
apache_worker_max_requests_per_child: 0
apache_worker_thread_limit: 64
apache_worker_threads_per_child: 25
Die Konfiguration des MPM Worker-Moduls. Dies ist nur für Apache 2.4 auf Debian GNU/Linux verfügbar.
apache_event_server_limit: 16
apache_event_start_servers: 3
apache_event_min_spare_threads: 75
apache_event_max_spare_threads: 250
apache_event_max_clients: 400
apache_event_max_requests_per_child: 0
apache_event_thread_limit: 64
apache_event_threads_per_child: 25
Die Konfiguration des MPM Event-Moduls. Dies ist nur für Apache 2.4 auf Debian GNU/Linux verfügbar.
apache_remove_default_aliases: True
Entfernen Sie die Standardaliasnamen, die mit der Standardkonfiguration von Apache geliefert werden.
apache_base_dir: '/var/www'
Das Basiverzeichnis, in dem die Websites untergebracht werden. Dieser Wert wird zusammen mit den nächsten drei verwendet, um das Document Root für die virtuellen Hosts zu generieren, die kein explizites Document Root haben.
apache_web_subdir: 'web'
apache_ssl_subdir: 'ssl'
apache_private_subdir: 'private'
Das Unterverzeichnis für die HTTP-Webdateien, das für die HTTPS-Webdateien und das Unterverzeichnis für htpasswd-Dateien. Wenn ein virtueller Host kein Document Root hat, generiert die Rolle drei Verzeichnisse:
apache_base_dir/SITENAME/apache_web_subdir
apache_base_dir/SITENAME/apache_ssl_subdir
apache_base_dir/SITENAME/apache_private_subdir
apache_create_vhosts: true apache_vhosts_filename: 'vhosts.conf'
Wenn auf true gesetzt, wird eine globale vhosts-Konfigurationsdatei und eine Datei pro virtuellem Host, die von den Variablen dieser Rolle verwaltet wird (siehe unten), erstellt und im Apache-Konfigurationsordner abgelegt. Wenn auf false gesetzt, können Sie Ihre eigenen vhosts-Dateien in den Konfigurationsordner von Apache legen und die von dieser Rolle hinzugefügten (aber einfacheren) Dateien überspringen.
apache_remove_default_vhost: false
Auf Debian/Ubuntu ist ein Standardvirtualhost in der Apache-Konfiguration enthalten. Setzen Sie dies auf true
, um diese Standard-virtualhost-Konfigurationsdatei zu entfernen.
apache_global_vhost_settings: |
DirectoryIndex index.php index.html
# Fügen Sie andere globale Einstellungen in den folgenden Zeilen hinzu.
Sie können globale Apache-Konfigurationseinstellungen in der von der Rolle bereitgestellten vhosts-Datei (vorausgesetzt, apache_create_vhosts
ist true) mit dieser Variablen hinzufügen oder überschreiben. Standardmäßig wird nur die DirectoryIndex-Konfiguration festgelegt.
apache_global_vhost_access_log_format_combined: '%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"'
apache_global_vhost_access_log_format_proxy: '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"'
Mit diesen Eigenschaften können Sie das kombinierte Protokollformat und das Protokollformat anpassen, das verwendet wird, um die Anfragen zu protokollieren, die über einen Proxy gemacht werden.
apache_global_vhost_aliases:
- name: /images
dest: /var/www/images
Liste von Aliasnamen, die in vhost.conf hinzugefügt werden sollen. Diese stehen allen virtuellen Hosts zur Verfügung. apache_create_vhosts
sollte aktiviert sein.
apache_global_vhost_custom_errors:
- code: error-code
action: error-action
Anpassungen für die Fehlerseiten von Apache. Sie können die Werte von action
in der Apache-Dokumentation nachlesen.
apache_vhosts:
- servername: 'local.dev'
serveralias:
- 'alias1.local'
- 'alias2.local'
serveradmin: webmaster@localhost
documentroot: '/var/www/html'
enabled: true
separate_logs: true
separate_logs_proxy_format: true
custom_errors:
- code: error-code
action: error-action
frame_options: SAMEORIGIN
deflate: true
deflate_dont_vary: User-Agent
fileetag: true
aliases:
- name: alias-url
dest: alias-path
setenvif:
- attribute: 'X-Forwarded-For'
pattern: '(.*)'
var: 'ENV_VAR'
value: 'true'
redirect_to_https: false
allowoverride: 'All'
rewritebase: '/'
custom_rewrites:
- pattern: regex
substitution: text
flags: '[R=301,L]'
conditions:
- test_string: '%{HTTP_HOST}'
pattern: '^old\.site\.com$'
flags: '[NC]'
redirect_to_servername: True
exclude_from_redirect:
- 'valid.alias.com'
redirect_to_file: '/index.php'
include_htaccess: False
documentroot_extra_parameters: 'Benutzerdefinierte Document Root-Konfiguration'
restricted_access:
- path: '/secret'
regex: false
all: false
ips:
- '127.0.0.1'
- '192.168.0.1'
hosts:
- 'www.site.com'
env_variables:
- 'ENV_VAR'
htpasswd: '/.htpasswd'
extra_parameters: 'Benutzerdefinierte VHost-Konfiguration'
Fügen Sie ein Set von Eigenschaften pro virtuellem Host hinzu. Der einzige erforderliche ist servername
. Wenn kein Document Root vorhanden ist, wird er wie zuvor beschrieben generiert.
Alle Anfragen an einen ServerAlias werden mit einem 301-Code auf den ServerName umgeleitet, außer bei den Aliassen, die in der Eigenschaft exclude_from_redirect
angegeben sind.
Die Pfade innerhalb von restricted_access
sollten relativ zum Document Root sein. Wenn der virtuelle Host kein explizites Document Root hat, befindet sich die htpasswd-Datei im apache_private_subdir Verzeichnis.
Das |
kennzeichnet einen mehrzeiligen Block in YAML, sodass Zeilenumbrüche in der resultierenden Konfigurationsdateiausgabe erhalten bleiben.
apache_vhosts_ssl: []
Für SSL vhosts sind standardmäßig keine konfiguriert, Sie können sie jedoch im selben Muster wie apache_vhosts
hinzufügen, mit einigen zusätzlichen Direktiven:
apache_vhosts_ssl:
- servername: 'local.dev',
certificate_file: '/path/to/certificate.crt'
certificate_key_file: '/path/to/certificate.key'
certificate_chain_file: '/path/to/certificate_chain.crt'
sts: true
sts_max_age: '63072000'
sts_subdomains: true
redirect_to_http: false
Diese ersten drei Eigenschaften setzen die Pfade der Zertifikate. Die nächsten drei erlauben die Überschreibung der globalen STS-Konfiguration. Die letzte leitet alle Anfragen an den HTTP-Host um.
apache_vhosts_ordered: False
Diese Eigenschaft zwingt Apache, die virtuellen Hosts in der Reihenfolge zu laden, in der sie in den Listen apache_vhosts
und apache_vhosts_ssl
erscheinen. Andernfalls verarbeitet Apache die Konfigurationsdateien alphabetisch.
Es gibt andere SSL-Direktiven, die mit anderen SSL-bezogenen Rollenvariablen verwaltet werden können.
apache_ssl_protocol: 'All -SSLv2 -SSLv3'
apache_ssl_cipher_suite: 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'
Die SSL-Protokolle und Cipher-Suiten, die verwendet bzw. erlaubt sind, wenn Clients sichere Verbindungen zu Ihrem Server herstellen. Diese sind sichere und sinnvolle Standards, aber für maximale Sicherheit, Leistung und/oder Kompatibilität müssen Sie diese Einstellungen möglicherweise anpassen. Weitere Informationen finden Sie in Cipherli.st: Starke Ciphers für Apache, nginx und Lighttpd.
apache_frame_options: SAMEORIGIN
Diese Eigenschaft legt die Sicherheitsrichtlinie der Seiten fest, wenn sie innerhalb eines Frames oder IFrames geladen werden. Sie können die gültigen Optionen in diesem Wikipedia-Artikel überprüfen. Sie können hier auch False
oder no
verwenden, um das Setzen des Headers ganz zu überspringen. Diese globale Konfiguration kann von vhost zu vhost überschrieben werden.
apache_sts: true
apache_sts_max_age: '63072000'
apache_sts_subdomains: true
HTTP Strict Transport Security ist standardmäßig aktiviert, mit einem Maximalalter von 1 Jahr und die Subdomains sind enthalten. Diese globalen Konfigurationen können von vhost zu vhost überschrieben werden.
apache_mods_enabled:
- rewrite
- ssl
apache_mods_disabled: []
Diese Eigenschaften sind NUR für Debian und Ubuntu. Welche Apache-Module aktiviert oder deaktiviert werden sollen. Sehen Sie im Verzeichnis mods-available
im Apache-Konfigurationsverzeichnis (/etc/apache2/mods-available
standardmäßig) nach, um alle verfügbaren Module zu sehen.
apache_packages:
- [plattform-spezifisch]
Die Liste der zu installierenden Pakete. Dies ist standardmäßig eine Sammlung von plattform-spezifischen Paketen für RedHat- oder Debian-basierte Systeme (siehe vars/RedHat.yml
und vars/Debian.yml
für die Standardwerte).
apache_state: started
Setzen Sie den anfänglichen Status des Apache-Daemons, der beim Ausführen dieser Rolle durchgesetzt werden soll. Dies sollte in der Regel started
bleiben, aber Sie können es auf stopped
setzen, wenn Sie die Apache-Konfiguration während eines Playbook-Durchlaufs reparieren müssen oder wenn Sie nicht möchten, dass Apache zu diesem Zeitpunkt gestartet wird.
apache_ignore_missing_ssl_certificate: true
Wenn Sie SSL-vhosts nur erstellen möchten, wenn das Zertifikat des vhost vorhanden ist (z. B. bei Verwendung von Let’s Encrypt), setzen Sie apache_ignore_missing_ssl_certificate
auf false
. In diesem Fall müssen Sie möglicherweise Ihr Playbook mehr als einmal ausführen, damit alle vhosts konfiguriert sind (wenn ein anderer Teil des Playbooks die SSL-Zertifikate generiert).
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- gcoop-libre.apache
In vars/main.yml
:
apache_listen_port: 8080
apache_vhosts:
- servername: example.com
Lizenz
GPLv2
Autoreninformationen
Diese Rolle wurde 2016 von gcoop Cooperativa de Software Libre erstellt.
Apache 2.x for RHEL/CentOS, Debian/Ubuntu, SLES and Solaris
ansible-galaxy install gcoop-libre.apache