pgporada.httpd

Przegląd: ansible-role-httpd

Ta rola skonfiguruje httpd (Apache), ustawi wirtualne hosty, które zdefiniowałeś, oraz ustawi zasady przekierowania. Konfiguruję swoje wirtualne hosty w sposób, którego nauczyli mnie doświadczeni administratorzy, gdy pracowałem w centrum danych. Do tej pory kontynuuję tę metodę w swojej karierze. To ustawienie ma swoje zasady. Możesz się z tym nie zgadzać.


Definicje zmiennych

Użyj tego, jeśli uruchamiasz httpd za load balancerem, takim jak ELB lub HaProxy. Jeśli prawda, skopiuje plik customer_logger.conf do /etc/httpd/conf.d/. Logger klienta otrzyma nagłówek x-forwarded source IP.

httpd_is_behind_loadbalancer: false

Ustawia domyślny katalog główny dokumentów w /etc/httpd/conf/httpd.conf. Zwykle należy to nadpisać dla vagranta, w przeciwnym razie pozostaw to w spokoju.

httpd_conf_docrootdir: /var/www/domains

Ustaw porty, na których httpd będzie nasłuchiwać.

httpd_conf_port: 80
httpd_conf_port_ssl: 443

Włącz lub wyłącz dyrektywę keepalive w httpd. Typ logiczny dla ansible. Dokumentacja

httpd_conf_keepalive_enable: true

Moduł przetwarzania wielu procesów do obsługi żądań. Dokumentacja

httpd_conf_mpm: prefork # Inne ważne opcje to 'event' i 'worker'

Użyj mod_headers, aby ustawić httponly i secure na wszystkich ciasteczkach. To ma swoje implikacje. Typ logiczny, domyślnie false. Dokumentacja

httpd_conf_securecookies: false

Przykładowy Playbook

---
- hosts: localhost
  connection: local
  become: true
  become_method: sudo

  vars:
    httpd_vhosts_enabled:
      - url: jenkins.philporada.com
        enable_ssl_vhost: false
        #path_to_ssl_ca: /path/to/ca.pem
        #path_to_ssl_cert: /path/to/cert.pem
        #path_to_ssl_key: /path/to/key.pem
        #path_to_ssl_chain: /path/to/bundle.pem
        aliases: []
        serveradmin: [email protected]
        errorlog: "/var/log/httpd/error_log"
        accesslog: "/var/log/httpd/access_log"
        directory: "/var/www"
        docrootdir: public_html
        extra_parameters_main: |
          #
            #RewriteEngine On
          # Przekierowuje żądania z ELB na https
          # Chcemy dopasować się na protokole http, aby uniknąć błędów healthcheck przy 301 przekierowaniu
          #RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
          #RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
        extra_parameters_include: |
          #
          # To jest specyficzne dla vagranta
          #EnableSendfile Off
          # Ukryj rzeczy związane z gitem
          RewriteRule ^(.*/)?\.git+ - [R=404,L]
          RewriteRule ^(.*/)?\.gitignore+ - [R=404,L]

  roles:
    - ansible-roles-httpd
...

Jak pracować z tą rolą

Przed uruchomieniem jakichkolwiek testów powinieneś zweryfikować składnię za pomocą yamllint.

find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable

Powinieneś zobaczyć wynik, który można zweryfikować ręcznie lub po prostu zignorować. Widać, że znaleziono błąd. Gdyby nie został zauważony, mogłoby to uniemożliwić ukończenie działania ansible.

$ find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable
defaults/main.yml:41:121: [warning] linia zbyt długa (127 > 120 znaków) (linia-długość)
meta/main.yml:7:22: [error] błąd składniowy: nie można tu mapować wartości
test/integration/default/default.yml:4:1: [warning] komentarz nie jest wcięty jak zawartość (wcięcie-komentarzy)
test/requirements.yml:2:2: [warning] brakująca spacja na początku komentarza (komentarze)

Będziesz potrzebować środowiska ruby, aby zainstalować zasoby dla test-kitchen. Instalujemy zasoby przez bundler.

git clone git@github.com:pgporada/ansible-role-httpd.git
bundle install
bundle update
bundle exec kitchen create
bundle exec kitchen converge
bundle exec kitchen verify
bundle exec kitchen destroy

Powinieneś teraz mieć dostęp do strony domowej, jak zdefiniowano w pliku .kitchen.yml.


Muzyka Tematyczna

The Skatalites - Ska Ska Ska


Informacje o autorze

GPLv3

Phil Porada

O projekcie

Installs and configures httpd. Enables programmatic creation of vhosts.

Zainstaluj
ansible-galaxy install pgporada.httpd
Licencja
Unknown
Pobrania
144
Właściciel
Just a guy with a computer. 🌞🔒