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
Autoreninformationen
GPLv3
Phil Porada
Installs and configures httpd. Enables programmatic creation of vhosts.
ansible-galaxy install pgporada.httpd