weareinteractive.apache2

Ansible weareinteractive.apache2 Rolle

Build Status Galaxy GitHub Tags GitHub Stars

weareinteractive.apache2 ist eine Ansible Rolle, die:

  • apache2 installiert
  • apache2 konfiguriert
  • Konfigurationen aktiviert/deaktiviert
  • Seiten erstellt
  • Seiten aktiviert/deaktiviert
  • Module aktiviert/deaktiviert
  • optional den Standard-Host entfernt
  • Regeln hinzufügt
  • den Dienst konfiguriert

Hinweis:

Da Ansible Galaxy jetzt Organisationen unterstützt, wurde diese Rolle von franklinkim.apache2 nach weareinteractive.apache2 verschoben!

Installation

Mit ansible-galaxy:

$ ansible-galaxy install weareinteractive.apache2

Mit requirements.yml:

- src: weareinteractive.apache2

Mit git:

$ git clone https://github.com/weareinteractive/ansible-apache2.git weareinteractive.apache2

Abhängigkeiten

  • Ansible >= 2.4

Variablen

Hier ist eine Liste der Standardvariablen für diese Rolle, die auch in defaults/main.yml verfügbar sind.

---
# apache2_packages:
#   - apache2
#   - apache2-mpm-prefork
# apache2_module:
#   - { id: auth, state: absent }
#   - { id: rewrite, state: present }
# apache2_confs:
#   - { id: security, state: absent }
#   - { name: mime, state: present }
#   - id: my_config
#     state: present
#     template: path/to/template.j2
# apache2_sites:
#   - id: mysite (erforderlich)
#     name: mysite.local (erforderlich)
#     ip: '*'
#     port: 80
#     state: present
#     add_webroot: no
#     template: path/to/template.j2
#     rules: []
#     aliases: []
#     redirects: []
#     ssl:
#       port: 443
#       key_name: mykey
#       cert_name: mycert
#       chain_name: mychain
#     auth:
#       name: mysite
#       file: mysite
#     append: ''
#

# Pakete (Versionen)
apache2_packages:
  - apache2
# Ports zum Anhören
apache2_ports: [80]
# SSL-Ports zum Anhören
apache2_ssl_ports: [443]
# Adressen zum Anhören (nur 2.2)
apache2_listen_addresses: ['*']
# Aktivierte/deaktivierte Module
apache2_modules: []
# Aktivierte/deaktivierte Konfigurationen
apache2_confs: []
# Aktivierte/deaktivierte Seiten
apache2_sites: []
# Wo haben wir unsere Dokumentenwurzeln (Standard /var/www bedeutet /var/www/<SiteId>/htdocs)
apache2_sites_basedir: /var/www
# Standard-Seitenvorlagendatei
apache2_sites_template: etc/apache2/sites-available/site.j2
# Entferne den Standard-Host
apache2_remove_default: no
# Beim Booten starten
apache2_service_enabled: yes
# Aktueller Zustand: gestartet, gestoppt
apache2_service_state: started
# Setzen Sie einen der Werte:  Full | OS | Minimal | Minor | Major | Prod
apache2_server_tokens: Prod
# Setzen Sie einen der Werte:  On | Off | Email
apache2_server_signiture: 'Off'
# Setzen Sie einen der Werte:  On | Off | extended
apache2_trace_enable: 'Off'
# Pfad zu Zertifikaten
apache2_certs_path: /etc/ssl/certs
# Pfad zu Schlüsseln
apache2_keys_path: /etc/ssl/private

Handler

Dies sind die Handler, die in handlers/main.yml definiert sind.

---

- name: teste und starte apache2 neu
  command: apache2ctl configtest
  notify: neustart apache2

- name: teste und lade apache2 neu
  command: apache2ctl configtest
  notify: lade apache2 neu

- name: apache2 neu starten
  service: name=apache2 state=restarted
  when: apache2_service_state != 'stopped'

- name: apache2 neu laden
  service: name=apache2 state=reloaded
  when: apache2_service_state != 'stopped'

Regeln

Einige Konfigurationsfragmente, die von HTML 5 Boilerplate stammen, werden in /etc/apache2/rules kopiert, die dann in Ihren vhost-Konfigurationen verwendet werden können (siehe Verwendung unten).

  • compression
  • content_transform
  • cors
  • cors_images
  • cors_timing
  • cors_web_fonts
  • etag
  • expires
  • file_concatenation
  • filename_based_cache_busting
  • ie_cookies
  • ie_edge
  • mimes
  • security_file_access
  • security_hosts
  • security_mime
  • security_signiture
  • security_technology
  • ssl
  • utf8

Verwendung

Dies ist ein Beispiel-Playbook:

---
# dieses Beispiel verwendet verwandte Rollen:
#
# - weareinteractive.apt  (https://github.com/weareinteractive/ansible-apt)
# - weareinteractive.openssl  (https://github.com/weareinteractive/ansible-openssl)
# - weareinteractive.htpasswd (https://github.com/weareinteractive/ansible-htpasswd)

- hosts: all
  become: yes
  roles:
    - weareinteractive.apt
    - weareinteractive.openssl
    - weareinteractive.htpasswd
    - weareinteractive.apache2
  vars:
    htpasswd:
      - name: foobar
        users:
          - { name: foobar, password: foobar }
    apache2_modules:
      - { id: ssl, state: present }
      - { id: mime, state: present }
      - { id: headers, state: present }
      - { id: rewrite, state: present }
    apache2_remove_default: yes
    openssl_generate_csr: yes
    openssl_self_signed:
      - name: 'foobar.local'
        country: 'DE'
        state: 'Bayern'
        city: 'München'
        organization: 'Foo Bar'
        unit: 'Foo Bar Einheit'
        email: '[email protected]'
    apache2_sites:
      - id: foobar
        state: present
        name: foobar.local
        rules:
          - mimes
          - expires
          - compression
        add_webroot: yes
        auth:
          name: Foo Bar
          file: foobar
        ssl:
          key_name: foobar.local
          cert_name: foobar.local

Testen

$ git clone https://github.com/weareinteractive/ansible-apache2.git
$ cd ansible-apache2
$ make test

Mitwirken

Bitte beachten Sie den bestehenden Codestil, da es keinen formellen Stilrichtlinien gibt. Fügen Sie Unit-Tests und Beispiele für neue oder geänderte Funktionen hinzu.

  1. Forken Sie es
  2. Erstellen Sie Ihren Feature-Zweig (git checkout -b mein-neues-feature)
  3. Bestätigen Sie Ihre Änderungen (git commit -am 'Füge eine Funktion hinzu')
  4. Pushen Sie auf den Zweig (git push origin mein-neues-feature)
  5. Erstellen Sie eine neue Pull-Anfrage

Hinweis: Um die README.md-Datei zu aktualisieren, installieren und führen Sie bitte ansible-role aus:

$ gem install ansible-role
$ ansible-role docgen

Lizenz

Copyright (c) We Are Interactive unter der MIT-Lizenz.

Über das Projekt

Installs and configures apache2

Installieren
ansible-galaxy install weareinteractive.apache2
Lizenz
mit
Downloads
15.9k