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.

Über das Projekt

Apache 2.x for RHEL/CentOS, Debian/Ubuntu, SLES and Solaris

Installieren
ansible-galaxy install gcoop-libre.apache
GitHub Repository
Lizenz
gpl-2.0
Downloads
320