pgporada.httpd

Übersicht: ansible-role-httpd

Diese Rolle installiert httpd (Apache), konfiguriert alle vhosts, die du definiert hast, und richtet alle Umleitungsregeln ein. Ich konfiguriere meine vhosts so, wie es mir erfahrene Admins beigebracht haben, als ich in einem Rechenzentrum gearbeitet habe. Diese Methode habe ich bis heute in meiner Karriere beibehalten. Dieses Setup ist eine persönliche Meinung. Du magst anderer Meinung sein.


Variablen-Definitionen

Benutze dies, wenn du httpd hinter einem Loadbalancer wie ELB oder HaProxy betreibst. Wenn wahr, wird die customer_logger.conf nach /etc/httpd/conf.d/ kopiert. Der Kundenlogger erhält die x-forwarded source IP-Header.

httpd_is_behind_loadbalancer: false

Setzt das Standard-Dokumentenstammverzeichnis in /etc/httpd/conf/httpd.conf. Dies muss normalerweise für ein Vagrant-Projekt überschrieben werden; andernfalls belasse es so.

httpd_conf_docrootdir: /var/www/domains

Setze die Ports, auf denen httpd hören wird.

httpd_conf_port: 80
httpd_conf_port_ssl: 443

Aktiviere oder deaktiviere die httpd Keepalive-Direktive. Boolean für Ansible. Dokumentation

httpd_conf_keepalive_enable: true

Multi-Prozess-Modul zur Bearbeitung von Anfragen. Dokumentation

httpd_conf_mpm: prefork # Andere gültige Optionen sind 'event' und 'worker'

Benutze mod_headers, um httponly und secure für alle Cookies zu setzen. Hier gibt es Auswirkungen. Boolean, Standardwert ist false. Dokumentation

httpd_conf_securecookies: false

Beispiel-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
          # Leitet Anfragen vom ELB nach https um
          # Wir wollen speziell auf http prüfen, anstatt auf das Negative, !https, wegen fehlerhaften Gesundheitschecks beim 301-Redirect
          #RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
          #RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
        extra_parameters_include: |
          #
          # Dies ist vagrant-spezifisch
          #EnableSendfile Off
          # Versteckt git-bezogene Sachen
          RewriteRule ^(.*/)?\.git+ - [R=404,L]
          RewriteRule ^(.*/)?\.gitignore+ - [R=404,L]

  roles:
    - ansible-roles-httpd
...

So arbeitest du an dieser Rolle

Vor dem Ausführen von Tests solltest du deine Syntax mit yamllint validieren.

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

Du solltest Ausgaben wie die folgende sehen, die du manuell bearbeiten oder einfach ignorieren kannst. Du siehst jedoch schnell, dass wir einen Fehler gefunden haben. Der Fehler hätte wahrscheinlich das vollständige Ausführen von Ansible verhindert. Solche Fehler zu erkennen, ist eine GUTE DING.

$ find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable
defaults/main.yml:41:121: [warning] Zeile zu lang (127 > 120 Zeichen) (Zeilenlänge)
meta/main.yml:7:22: [error] Syntaxfehler: Abbildungswerte sind hier nicht erlaubt
test/integration/default/default.yml:4:1: [warning] Kommentar nicht wie Inhalt eingerückt (Kommentare-Einrückung)
test/requirements.yml:2:2: [warning] Fehlender Startabstand im Kommentar (Kommentare)

Du benötigst eine Ruby-Umgebung, um die Gems für test-kitchen zu installieren. Wir installieren die Gems über 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

Du solltest jetzt auf die Standardseite zugreifen können, wie sie in der .kitchen.yml-Datei definiert ist.


Musikalisches Thema

The Skatalites - Ska Ska Ska


Autoreninformationen

GPLv3

Phil Porada

Über das Projekt

Installs and configures httpd. Enables programmatic creation of vhosts.

Installieren
ansible-galaxy install pgporada.httpd
GitHub Repository
Lizenz
Unknown
Downloads
144
Besitzer
Just a guy with a computer. 🌞🔒