pgporada.httpd

Aperçu : ansible-role-httpd

Ce rôle met en place httpd (Apache), configure tous les vhosts que vous avez définis, et configure les règles de réécriture/redirection. Je configure mes vhosts de la manière dont des administrateurs seniors m'ont appris lorsque je travaillais dans un datacenter. J'ai depuis continué à suivre cette méthode tout au long de ma carrière. Cette configuration est subjective. Vous n'êtes pas obligé d'être d'accord.


Définitions des variables

Utilisez ceci si vous exécutez httpd derrière un équilibreur de charge tel que ELB ou HaProxy. Si vrai, copie le fichier customer_logger.conf dans /etc/httpd/conf.d/. Le journal client recevra l'en-tête IP source x-forwarded.

httpd_is_behind_loadbalancer: false

Définit le répertoire racine du document par défaut dans /etc/httpd/conf/httpd.conf. Cela doit généralement être modifié pour un vagrant, sinon laissez tel quel.

httpd_conf_docrootdir: /var/www/domains

Définissez les ports sur lesquels httpd écoutera.

httpd_conf_port: 80
httpd_conf_port_ssl: 443

Active ou désactive la directive keepalive de httpd. Booléen pour ansible. Docs

httpd_conf_keepalive_enable: true

Module de traitement multi-processus pour le traitement des requêtes. Docs

httpd_conf_mpm: prefork # D'autres options valides sont 'event' et 'worker'

Utilisez mod_headers pour définir httponly et secure sur tous les cookies. Cela a des implications. Booléen, par défaut à false. Docs

httpd_conf_securecookies: false

Exemple de 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
          # Réécrit les requêtes de l'ELB vers https
          # Nous voulons correspondre spécifiquement à http plutôt qu'à la négative, !https, en raison des contrôles de santé échouant à la redirection 301
          #RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
          #RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
        extra_parameters_include: |
          #
          # Ceci est spécifique à vagrant
          #EnableSendfile Off
          # Masquer les éléments liés à git
          RewriteRule ^(.*/)?\.git+ - [R=404,L]
          RewriteRule ^(.*/)?\.gitignore+ - [R=404,L]

  roles:
    - ansible-roles-httpd
...

Comment travailler sur ce rôle

Avant de lancer des tests, vous devriez valider votre syntaxe avec yamllint.

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

Vous devriez voir une sortie telle que suivante sur laquelle vous pouvez agir manuellement, ou l'ignorer simplement. Vous pouvez facilement voir que nous avons trouvé une erreur. Cette erreur aurait probablement empêché ansible de s'exécuter entièrement. Repérer ces erreurs est une BONNE CHOSE.

$ find . -type f -name "*.yml*" | sed "s|\./||g" | egrep -v "(\.kitchen/|\[warning\]|\.molecule/)" | xargs yamllint -f parsable
defaults/main.yml:41:121: [warning] ligne trop longue (127 > 120 caractères) (line-length)
meta/main.yml:7:22: [error] erreur de syntaxe : les valeurs de mappage ne sont pas autorisées ici
test/integration/default/default.yml:4:1: [warning] commentaire non indenté comme le contenu (comments-indentation)
test/requirements.yml:2:2: [warning] espace initial manquant dans le commentaire (comments)

Vous aurez besoin d'un environnement ruby pour installer les gems pour test-kitchen. Nous installons les gems via 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

Vous devriez maintenant pouvoir accéder à la page par défaut telle que définie par le fichier .kitchen.yml.


Musique Thème

The Skatalites - Ska Ska Ska


Informations sur l'Auteur

GPLv3

Phil Porada

À propos du projet

Installs and configures httpd. Enables programmatic creation of vhosts.

Installer
ansible-galaxy install pgporada.httpd
Licence
Unknown
Téléchargements
144
Propriétaire
Just a guy with a computer. 🌞🔒