wcm_io_devops.apache

wcm_io_devops.apache

CI

Eine Ansible-Rolle, die Apache 2.x auf RHEL/CentOS, Debian/Ubuntu, SLES und Solaris installiert.

wcm.io Fork

wcm.io hat einen eigenen Fork erstellt, um Änderungen schneller in das originale geerlingguy.apache Repository zu integrieren.

Der wcm.io Fork fügt die folgenden Funktionen zum originalen Funktionsumfang hinzu:

Namensraum

Diese Rolle wird im Namensraum wcm-io-devops veröffentlicht.

Versionsverwaltung

Die Versionsnummern dieses Forks folgen den Versionen des geforkten Repositories.

Um die originale Version beizubehalten, werden die wcm.io Versionen eine vierte Versionsnummer hinzugefügt, die durch ein - getrennt ist, und mit jedem wcm.io Release erhöht wird, z.B. 3.0.0-1 und 3.0.0-2.

Anforderungen

Wenn Sie SSL/TLS verwenden, müssen Sie Ihre eigenen Zertifikats- und Schlüsseldateien bereitstellen. Sie können ein selbstsigniertes Zertifikat mit einem Befehl wie openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.key -out example.crt generieren.

Wenn Sie Apache mit PHP verwenden, empfehle ich die Verwendung der Rolle geerlingguy.php, um PHP zu installieren. Sie können entweder mod_php verwenden (indem Sie das richtige Paket, z.B. libapache2-mod-php5 für Ubuntu, zu php_packages hinzufügen) oder die Rolle geerlingguy.apache-php-fpm, um Apache über FPM mit PHP zu verbinden. Weitere Informationen finden Sie in der README-Datei dieser Rolle.

Rollenversionen

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

apache_enablerepo: ""

Das Repository, das bei der Installation von Apache verwendet werden soll (nur auf RHEL/CentOS-Systemen). Wenn Sie neuere Versionen von Apache als die in den Kernrepositories des Betriebssystems verfügbaren nutzen möchten, verwenden Sie ein Repository wie EPEL (das mit der Rolle geerlingguy.repo-epel installiert werden kann).

apache_listen_ip: "*"
apache_listen_port: 80
apache_listen_port_ssl: 443

Die IP-Adresse und Ports, auf denen Apache hören soll. Nützlich, wenn Sie einen anderen Dienst (wie einen Reverse-Proxy) haben, der auf Port 80 oder 443 hört und die Standardwerte ändern müssen.

apache_create_vhosts: true
apache_vhosts_filename: "vhosts.conf"
apache_vhosts_template: "vhosts.conf.j2"

Wenn auf true gesetzt, wird eine vhosts-Datei, die durch die Variablen dieser Rolle verwaltet wird (siehe unten), erstellt und im Apache-Konfigurationsordner abgelegt. Wenn auf false gesetzt, können Sie Ihre eigene vhosts-Datei in den Konfigurationsordner von Apache einfügen und die von dieser Rolle hinzugefügte, einfache (aber grundlegende) Version überspringen. Sie können auch die Vorlage überschreiben und einen Pfad zu Ihrer eigenen Vorlage festlegen, wenn Sie das Layout Ihrer VirtualHosts weiter anpassen müssen. Wenn apache_create_vhosts auf false gesetzt ist, wird die vhosts.conf während der Bereitstellung gelöscht.

apache_remove_default_vhost: false

Auf Debian/Ubuntu, RedHat/CentOS sind Standardvirtualhosts in der Apache-Konfiguration enthalten. Setzen Sie dies auf true, um diese Standardvirtualhost-Konfigurationsdatei zu entfernen.

apache_remove_default_vhost_ssl: false

Auf RedHat/CentOS-basierten Systemen ist ein Standardvirtualhost in der ssl.conf vorhanden. Setzen Sie dies auf true, um diesen Virtualhost aus der ssl.conf-Konfigurationsdatei zu entfernen.

apache_global_vhost_settings: |
  DirectoryIndex index.php index.html
  # Fügen Sie weitere globale Einstellungen in den folgenden Zeilen hinzu.

Sie können globale Apache-Konfigurationseinstellungen in der von der Rolle bereitgestellten vhosts-Datei hinzufügen oder überschreiben (vorausgesetzt apache_create_vhosts ist true) mit dieser Variablen. Standardmäßig wird nur die DirectoryIndex-Konfiguration gesetzt.

apache_vhosts:
  # Zusätzliche optionale Eigenschaften: 'serveradmin, serveralias, extra_parameters'.
  - servername: "local.dev"
    documentroot: "/var/www/html"

Fügen Sie ein Set von Eigenschaften pro VirtualHost hinzu, einschließlich servername (erforderlich), documentroot (erforderlich), allow_override (optional: standardmäßig der Wert von apache_allow_override), options (optional: standardmäßig der Wert von apache_options), serveradmin (optional), serveralias (optional) und extra_parameters (optional: hier können Sie beliebige zusätzliche Konfigurationszeilen hinzufügen).

Hier ist ein Beispiel, wie extra_parameters verwendet wird, um eine RewriteRule hinzuzufügen, die alle Anfragen auf die www.-Seite umleitet:

  - servername: "www.local.dev"
    serveralias: "local.dev"
    documentroot: "/var/www/html"
    extra_parameters: |
      RewriteCond %{HTTP_HOST} !^www\. [NC]
      RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Das | kennzeichnet einen mehrzeiligen Skalartblock in YAML, sodass Zeilenumbrüche in der resultierenden Konfigurationsdatei erhalten bleiben.

apache_vhosts_ssl: []

Keine SSL-Vhosts sind standardmäßig konfiguriert, aber Sie können sie mit demselben Muster wie apache_vhosts hinzufügen, mit einigen zusätzlichen Direktiven, wie im folgenden Beispiel:

apache_vhosts_ssl:
  - servername: "local.dev"
    documentroot: "/var/www/html"
    certificate_file: "/home/vagrant/example.crt"
    certificate_key_file: "/home/vagrant/example.key"
    certificate_chain_file: "/path/to/certificate_chain.crt"
    extra_parameters: |
      RewriteCond %{HTTP_HOST} !^www\. [NC]
      RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Andere SSL-Direktiven können mit anderen ssl-spezifischen Rollenversionen verwaltet werden.

apache_ssl_protocol: "Alle -SSLv2 -SSLv3"
apache_ssl_cipher_suite: "AES256+EECDH:AES256+EDH"

Die SSL-Protokolle und Chiffren, die verwendet/erlaubt sind, wenn Clients sichere Verbindungen zu Ihrem Server herstellen. Diese sind sichere, sinnvolle Standardwerte, aber um maximale Sicherheit, Leistung und/oder Kompatibilität zu gewährleisten, müssen Sie diese Einstellungen möglicherweise anpassen.

apache_allow_override: "Alle"
apache_options: "-Indexes +FollowSymLinks"

Die Standardwerte für die Direktiven AllowOverride und Options für das documentroot Verzeichnis jedes vhosts. Ein vhost kann diese Werte überschreiben, indem er allow_override oder options angibt.

apache_mods_enabled:
  - rewrite.load
  - ssl.load
apache_mods_disabled: []

(NUR Debian/Ubuntu) Welche Apache-Module aktiviert oder deaktiviert werden sollen (diese werden an den entsprechenden Ort verlinkt). Siehe das Verzeichnis mods-available im Apache-Konfigurationsverzeichnis (/etc/apache2/mods-available standardmäßig) für alle verfügbaren Module.

apache_packages:
  - [plattform-spezifisch]

Die Liste der zu installierenden Pakete. Dies ist standardmäßig eine Menge plattform-spezifischer Pakete 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 durch diese Rolle durchgesetzt wird. Dies sollte im Allgemeinen auf started bleiben, Sie können es jedoch auf stopped setzen, wenn Sie die Apache-Konfiguration während eines Playbook-Laufs reparieren müssen oder Apache zu dem Zeitpunkt, an dem diese Rolle ausgeführt wird, nicht gestartet sein soll.

apache_packages_state: present

Wenn Sie zusätzliche Repositories wie ondrej/apache2, geerlingguy.repo-epel oder geerlingguy.repo-remi aktiviert haben, möchten Sie möglicherweise eine einfache Möglichkeit, Versionen zu aktualisieren. Sie können dies auf latest setzen (zusammen mit apache_enablerepo auf RHEL) und direkt auf eine andere Apache-Version aus einem anderen Repository aktualisieren (statt Apache zu deinstallieren und neu zu installieren).

apache_ignore_missing_ssl_certificate: true

Wenn Sie SSL-vhosts nur erstellen möchten, wenn das vhost-Zertifikat vorhanden ist (z.B. bei der Verwendung von Let’s Encrypt), setzen Sie apache_ignore_missing_ssl_certificate auf false. Wenn Sie dies tun, müssen Sie möglicherweise Ihr Playbook mehrmals ausführen, damit alle vhosts konfiguriert sind (wenn ein anderer Teil des Playbooks die SSL-Zertifikate generiert).

#apache_rhel_custom_vhosts_path: /etc/httpd/vhosts.d

Auf RHEL/CentOS möchten Sie in manchen Fällen möglicherweise ein benutzerdefiniertes Verzeichnis für Ihre VirtualHost-Dateien anstelle von /etc/httpd/conf.d verwenden. Verwenden Sie dann diese Variable.

.htaccess-basierte Basisautorisierung

Wenn Sie Unterstützung für die Basisautorisierung benötigen, können Sie dies entweder über eine benutzerdefinierte Vorlage hinzufügen oder extra_parameters zu einer VirtualHost-Konfiguration hinzufügen, wie folgt:

extra_parameters: |
  <Directory "/var/www/password-protected-directory">
    Require valid-user
    AuthType Basic
    AuthName "Bitte authentifizieren"
    AuthUserFile /var/www/password-protected-directory/.htpasswd
  </Directory>

Um alles innerhalb einer VirtualHost-Direktive passwortgeschützt zu machen, verwenden Sie den Location-Block anstelle des Directory-Blocks:

<Location "/">
  Require valid-user
  ....
</Location>

Sie müssten Ihre eigene .htpasswd-Datei in Ihrem eigenen Playbook generieren/hochladen. Es gibt möglicherweise andere Rollen, die diese Funktionalität auf eine integrierte Weise unterstützen.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: webservers
  vars_files:
    - vars/main.yml
  roles:
    - { role: wcm_io_devops.apache }

In vars/main.yml:

apache_listen_port: 8080
apache_vhosts:
  - {servername: "example.com", documentroot: "/var/www/vhosts/example_com"}

Lizenz

MIT / BSD

Autor-Informationen

Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible for DevOps.

Dieser Fork wird von wcm.io gepflegt.

Über das Projekt

Apache 2.x for Linux. (fork of geerlingguy.apache)

Installieren
ansible-galaxy install wcm_io_devops.apache
Lizenz
mit
Downloads
117.3k
Besitzer
Tools for Configuration Management and Deployment