wcm_io_devops.apache

wcm_io_devops.apache

CI

To rola Ansible, która instaluje Apache 2.x na RHEL/CentOS, Debian/Ubuntu, SLES i Solaris.

Fork wcm.io

wcm.io zaczął utrzymywać własną wersję, aby szybciej wprowadzać zmiany w oryginalnym repozytorium geerlingguy.apache.

Fork wcm.io dodaje następujące funkcje do oryginalnej funkcjonalności:

Przestrzeń nazw

Ta rola jest publikowana w przestrzeni nazw wcm-io-devops.

Wersjonowanie

Numery wersji tego forka będą podążać za wersjami repozytorium forked.

Aby zachować oryginalną wersję, wydania wcm.io dodadzą czwarty numer wersji oddzielony od pozostałych -, który będzie zwiększany przy każdym wydaniu wcm.io, np. 3.0.0-1 i 3.0.0-2.

Wymagania

Jeśli używasz SSL/TLS, będziesz musiał dostarczyć własne pliki certyfikatu i klucza. Możesz wygenerować własny certyfikat samopodpisany za pomocą polecenia openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.key -out example.crt.

Jeśli używasz Apache z PHP, zalecam użycie roli geerlingguy.php do zainstalowania PHP, a możesz używać mod_php (dodając odpowiedni pakiet, np. libapache2-mod-php5 dla Ubuntu, do php_packages), lub również użyć geerlingguy.apache-php-fpm, aby połączyć Apache z PHP za pośrednictwem FPM. Zapoznaj się z dokumentacją tej roli, aby uzyskać więcej informacji.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

apache_enablerepo: ""

Repozytorium do użycia przy instalacji Apache (używane tylko na systemach RHEL/CentOS). Jeśli chcesz nowsze wersje Apache niż dostępne w core repozytoriach systemu, użyj repozytorium takiego jak EPEL (które można zainstalować za pomocą roli geerlingguy.repo-epel).

apache_listen_ip: "*"
apache_listen_port: 80
apache_listen_port_ssl: 443

Adres IP i porty, na których Apache powinien nasłuchiwać. Przydatne, jeśli masz inną usługę (np. proxy odwrotne) nasłuchującą na porcie 80 lub 443 i musisz zmienić domyślne ustawienia.

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

Jeśli ustawione na true, plik vhosts zarządzany przez zmienne tej roli (zobacz poniżej) zostanie utworzony i umieszczony w folderze konfiguracyjnym Apache. Jeśli ustawione na false, możesz umieścić własny plik vhosts w folderze konfiguracyjnym Apache i pominąć wygodny (ale bardziej podstawowy) plik dodany przez tę rolę. Możesz również nadpisać szablon, którego chcesz użyć, i ustawić ścieżkę do własnego szablonu, jeśli musisz dalej dostosować układ swoich VirtualHosts. Jeśli apache_create_vhosts jest ustawione na false, vhosts.conf zostanie usunięty podczas przygotowywania.

apache_remove_default_vhost: false

Na Debianie/Ubuntu i RedHat/CentOS domyślne wirtualne hosty są dołączane do konfiguracji Apache. Ustaw to na true, aby usunąć ten domyślny plik konfiguracyjny wirtualnego hosta.

apache_remove_default_vhost_ssl: false

Na systemach opartych na RedHat/CentOS domyślny wirtualny host jest obecny w ssl.conf. Ustaw to na true, aby usunąć ten wirtualny host z pliku konfiguracyjnego ssl.conf.

apache_global_vhost_settings: |
  DirectoryIndex index.php index.html
  # Dodaj inne globalne ustawienia w kolejnych linijkach.

Możesz dodać lub nadpisać globalne ustawienia konfiguracyjne Apache w pliku vhosts dostarczonym przez rolę (zakładając, że apache_create_vhosts jest true), używając tej zmiennej. Domyślnie ustawia tylko konfigurację DirectoryIndex.

apache_vhosts:
  # Dodatkowe opcjonalne właściwości: 'serveradmin, serveralias, extra_parameters'.
  - servername: "local.dev"
    documentroot: "/var/www/html"

Dodaj zestaw właściwości dla każdego wirtualnego hosta, w tym servername (wymagane), documentroot (wymagane), allow_override (opcjonalne: domyślnie ustawia wartość apache_allow_override), options (opcjonalne: domyślnie ustawia wartość apache_options), serveradmin (opcjonalne), serveralias (opcjonalne) i extra_parameters (opcjonalne: możesz dodać dowolne dodatkowe linie konfiguracyjne).

Oto przykład użycia extra_parameters, aby dodać RewriteRule, aby przekierować wszystkie żądania do witryny www.:

  - 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]

| oznacza wieloliniowy blok skalarno-wartosciowy w YAML, więc nowe linie są zachowane w wynikowym pliku konfiguracyjnym.

apache_vhosts_ssl: []

Domyślnie nie są konfigurowane żadne vhosts SSL, ale możesz je dodać, używając tego samego wzoru co apache_vhosts, z kilkoma dodatkowymi dyrektywami, jak w poniższym przykładzie:

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]

Inne dyrektywy SSL można zarządzać za pomocą innych zmiennych związanych z SSL w roli.

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

Protokół SSL i zestawy szyfrów, które są używane/zezwolone, gdy klienci łączą się z serwerem. To są bezpieczne i rozsądne domyślne ustawienia, ale dla maksymalnego bezpieczeństwa, wydajności i/lub kompatybilności, możesz potrzebować dostosować te ustawienia.

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

Domyślne wartości dla dyrektyw AllowOverride i Options dla katalogu documentroot każdego wirtualnego hosta. Wirtualny host może nadpisywać te wartości, określając allow_override lub options.

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

(TYLKO Debian/Ubuntu) Które moduły Apache mają być włączane lub wyłączane (będą one linkowane do odpowiedniej lokalizacji). Zobacz katalog mods-available wewnątrz katalogu konfiguracyjnego apache (/etc/apache2/mods-available domyślnie) dla wszystkich dostępnych modułów.

apache_packages:
  - [specyficzne dla platformy]

Lista pakietów do zainstalowania. Domyślnie jest to zestaw pakietów specyficznych dla platformy dla systemów RedHat lub opartych na Debianie (zobacz vars/RedHat.yml i vars/Debian.yml dla wartości domyślnych).

apache_state: started

Ustaw początkowy stan demona Apache, który ma być wymuszany podczas uruchamiania tej roli. Ogólnie rzecz biorąc, powinno to pozostać started, ale możesz ustawić to na stopped, jeśli musisz naprawić konfigurację Apache podczas uruchamiania playbooka lub w przeciwnym razie nie chcesz, aby Apache uruchomił się w momencie uruchamiania tej roli.

apache_packages_state: present

Jeśli włączyłeś dodatkowe repozytoria, takie jak ondrej/apache2, geerlingguy.repo-epel lub geerlingguy.repo-remi, możesz chcieć uzyskać łatwy sposób na aktualizację wersji. Możesz ustawić to na latest (połączone z apache_enablerepo na RHEL) i bezpośrednio zaktualizować do innej wersji Apache z innego repozytorium (zamiast odinstalować i ponownie zainstalować Apache).

apache_ignore_missing_ssl_certificate: true

Jeśli chcesz, aby SSL vhosts były tworzony tylko wtedy, gdy certyfikat vhosta jest obecny (np. podczas używania Let’s Encrypt), ustaw apache_ignore_missing_ssl_certificate na false. W takim przypadku być może będziesz musiał uruchomić playbook więcej niż raz, aby wszystkie vhosts były skonfigurowane (jeśli inna część playbooka generuje certyfikaty SSL).

#apache_rhel_custom_vhosts_path: /etc/httpd/vhosts.d

Na RHEL/CentOS, w niektórych przypadkach możesz chcieć używać niestandardowego katalogu dla plików swoich wirtualnych hostów zamiast /etc/httpd/conf.d. W takim przypadku użyj tej zmiennej.

Autoryzacja podstawowa oparta na .htaccess

Jeśli potrzebujesz wsparcia dla podstawowej autoryzacji, możesz to dodać poprzez niestandardowy szablon lub dodając extra_parameters do konfiguracji VirtualHost, oto jak:

extra_parameters: |
  <Directory "/var/www/password-protected-directory">
    Require valid-user
    AuthType Basic
    AuthName "Proszę się uwierzytelnić"
    AuthUserFile /var/www/password-protected-directory/.htpasswd
  </Directory>

Aby chronić hasłem wszystko wewnątrz dyrektywy VirtualHost, użyj bloku Location zamiast Directory:

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

Będziesz musiał wygenerować/wgrać swój plik .htpasswd w swoim własnym playbooku. Mogą istnieć inne role, które wspierają tę funkcjonalność w bardziej zintegrowany sposób.

Zależności

Brak.

Przykład Playbook

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

Wewnątrz vars/main.yml:

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

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible for DevOps.

Ten fork jest utrzymywany przez wcm.io.

O projekcie

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

Zainstaluj
ansible-galaxy install wcm_io_devops.apache
Licencja
mit
Pobrania
117.3k
Właściciel
Tools for Configuration Management and Deployment