damianlewis.apache
Rola Ansible: Apache
Instaluje i konfiguruje Apache.
Wymagania
Brak.
Zmienne Roli
Dostępne zmienne są wymienione poniżej, zobacz defaults/main.yml
dla wartości domyślnych.
apache_use_ppa: false
Aby użyć repozytorium PPA do instalacji Apache, ustaw zmienną apache_use_ppa
na true
.
apache_user: www
apache_group: www
Możesz zmienić użytkownika i grupę, pod którymi będzie działać Apache. Domyślnie Apache używa www-data
zarówno jako użytkownika, jak i grupy.
apache_timeout: '100'
apache_enable_keepalive: false
apache_max_keepalive_request: '200'
apache_keepalive_timeout: '300'
apache_enable_hostname_lookups: true
Niektóre z głównych dyrektyw konfiguracyjnych używanych przez Apache można nadpisać, ustawiając dowolną z powyższych zmiennych.
apache_log_path: /path/to/logs
apache_error_log_level: warn
Możesz skonfigurować rejestr błędów za pomocą zmiennej apache_error_log_level
. Poziom rejestru błędów może być jednym z następujących: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
lub emerg
. Domyślnie poziom rejestru błędów to warn
.
Możesz nadpisać domyślną lokalizację, gdzie przechowywane są pliki dziennika, ustawiając zmienną apache_log_path
. Domyślna lokalizacja to /var/log/apache2
.
apache_disable_default_site: true
Wyłącza domyślną stronę zainstalowaną z Apache.
apache_pid_file: logs/apache.pid
Domyślna wartość dyrektywy pid
to /var/run/apache2/apache2.pid
. Użyj zmiennej apache_pid_file
, aby to nadpisać.
apache_run_path: /var/run/apache2
apache_lock_path: /var/lock/apache2
Użyj zmiennych apache_run_path
i apache_lock_path
, aby nadpisać domyślne wartości używane do lokalizacji plików stanu tymczasowego. Domyślną wartością dla apache_run_path
jest /var/run/apache2
, a dla apache_lock_path
to /var/lock/apache2
.
apache_http_port: '8080'
apache_https_port: '44300'
Aby nadpisać domyślne porty używane dla HTTP i HTTPS, użyj zmiennych apache_http_port
i apache_https_port
.
apache_allow_additional_confs: false
Domyślnie Apache uwzględnia wszelkie pliki konfiguracyjne znalezione w folderach conf.d
lub conf-enabled
. Aby wykluczyć te dodatkowe konfiguracje, ustaw zmienną apache_allow_additional_confs
na false
.
apache_modules:
- name: headers
- name: rewrite
- name: ssl
state: absent
Użyj zmiennej apache_modules
, aby włączyć/wyłączyć moduły Apache. Atrybut name
jest wymagany i powinien być nazwą modułu do włączenia/wyłączenia. Domyślnie wszystkie wymienione moduły będą włączone. Aby wyłączyć moduł, dodaj atrybut state
z wartością absent
.
apache_sites:
- hostname: www.example.com
root: /var/www/html
alias: *.example.com
Użyj zmiennej apache_sites
, aby dodać i skonfigurować strony. Jedynymi wymaganymi atrybutami dla strony są hostname
i ścieżka do folderu root
. Można dodać opcjonalny serwer alias
.
apache_sites:
- hostname: example.com
root: /var/www/html
state: absent
Domyślnie strona jest tworzona, kiedy zostanie dodana do zmiennej apache_sites
. Użyj atrybutu state
z wartością absent
, aby wyłączyć/usunąć stronę.
apache_sites:
- hostname: example.com
root: /var/www/html
enable_http_to_https_redirect: true
Ustaw zmienną enable_http_to_https_redirect
, aby przekierować żądania HTTP do protokołu HTTPS. Upewnij się, że certyfikat SSL został skonfigurowany i że Apache jest skonfigurowany do używania SSL, jak opisano poniżej.
apache_sites:
- hostname: www.sub.example.com
root: /var/www/subdomain/sub
virtualhost_directives: |
ServerPath "/sub/"
RewriteEngine On
RewriteRule "^(/sub/.*)" "/var/www/subdomain$1"
Dodatkowe dyrektywy wirtualnego hosta można dodać przy użyciu atrybutu virtualhost_directives
.
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"'
Użyj atrybutu headers
, aby dodać nagłówki odpowiedzi serwera.
apache_sites:
- hostname: example.com
root: /var/www/html
directories:
- rule: '/var/www/html'
block: |
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
Dyrektywy katalogów można tworzyć, dodając je do atrybutu directories
. Określ rule
dla katalogu oraz dyrektywy do uwzględnienia w block
.
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
Dyrektywy FilesMatch można tworzyć, dodając je do atrybutu filesmatches
. Określ rule
dla wyrażenia regularnego oraz dyrektywy do uwzględnienia w block
.
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
Aby utworzyć osobne pliki dziennika dla poszczególnych stron, ustaw atrybuty enable_error_log
i enable_access_log
na true
. Użyj atrybutów error_log_level
i access_log_format
, aby skonfigurować logi. Poziom rejestru błędów może być jednym z następujących: trace8, ..., trace1, debug, info, notice, warn, error, crit, alert,
lub emerg
. Domyślnie poziom rejestru błędów to warn
. Aby użyć niestandardowego formatu logu dostępu, upewnij się, że niestandardowy format istnieje. Domyślnie format logu dostępu to 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
Aby używać HTTPS, upewnij się, że certyfikat SSL został zainstalowany na serwerze. Określ lokalizację certyfikatu, używając atrybutu ssl_certificate
, oraz lokalizację klucza prywatnego, używając atrybutu ssl_certificate_key
. Opcjonalnie można użyć pełnego certyfikatu łańcucha, ustawiając zmienną ssl_certificate_chain
.
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"'
Dodatkowe dyrektywy SSL i nagłówki można dodać, używając atrybutu https_server_directives
oraz https_headers
.
apache_sites:
- hostname: example.com
root: /var/www/html
server_directives: |
SSLStaplingCache shmcb:logs/stapling-cache(150000)
Dodatkowe dyrektywy serwera można dodać do pliku wirtualnego hosta, używając atrybutu server_directives
.
apache_sites:
- hostname: example.com
root: /var/www/html
ip_address: '*'
http_port: '80'
https_port: '443'
Domyślne wartości używane do konfiguracji strony przedstawiono powyżej. Dodaj dowolne z tych atrybutów do strony, aby nadpisać ich wartość.
Zależności
Brak.
Przykładowy Playbook
- hosts: server
become: yes
tasks:
- import_role:
name: damianlewis.apache
ansible-galaxy install damianlewis.apache