weareinteractive.apache2

Rol de Ansible weareinteractive.apache2

Estado de Construcción Galaxy Etiquetas de GitHub Estrellas de GitHub

weareinteractive.apache2 es un rol de Ansible que:

  • instala apache2
  • configura apache2
  • habilita/deshabilita configuraciones
  • crea sitios
  • habilita/deshabilita sitios
  • habilita/deshabilita módulos
  • opcionalmente elimina el host predeterminado
  • añade reglas
  • configura el servicio

Nota:

Dado que Ansible Galaxy ahora admite organizaciones, este rol ha sido trasladado de franklinkim.apache2 a weareinteractive.apache2!

Instalación

Usando ansible-galaxy:

$ ansible-galaxy install weareinteractive.apache2

Usando requirements.yml:

- src: weareinteractive.apache2

Usando git:

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

Dependencias

  • Ansible >= 2.4

Variables

Aquí hay una lista de todas las variables predeterminadas para este rol, que también están disponibles en defaults/main.yml.

---
# 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 (requerido)
#     name: mysite.local (requerido)
#     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: ''
#

# paquetes (versiones)
apache2_packages:
  - apache2
# puertos a los que escuchar
apache2_ports: [80]
# puertos ssl a los que escuchar
apache2_ssl_ports: [443]
# direcciones a las que escuchar (solo 2.2)
apache2_listen_addresses: ['*']
# módulos habilitados/deshabilitados
apache2_modules: []
# configuraciones habilitadas/deshabilitadas
apache2_confs: []
# sitios habilitados/deshabilitados
apache2_sites: []
# dónde tenemos nuestras raíces de documentos (el predeterminado /var/www significa /var/www/<SiteId>/htdocs)
apache2_sites_basedir: /var/www
# archivo de plantilla del sitio predeterminado
apache2_sites_template: etc/apache2/sites-available/site.j2
# eliminar el host predeterminado
apache2_remove_default: no
# iniciar al arranque
apache2_service_enabled: yes
# estado actual: iniciado, detenido
apache2_service_state: started
# establecido en uno de: Full | OS | Minimal | Minor | Major | Prod
apache2_server_tokens: Prod
# establecido en uno de: On | Off | EMail
apache2_server_signiture: 'Off'
# establecido en uno de: On | Off | extended
apache2_trace_enable: 'Off'
# ruta a los certificados
apache2_certs_path: /etc/ssl/certs
# ruta a las claves
apache2_keys_path: /etc/ssl/private

Manejadores

Estos son los manejadores que están definidos en handlers/main.yml.

---

- name: probar y reiniciar apache2
  command: apache2ctl configtest
  notify: reiniciar apache2

- name: probar y recargar apache2
  command: apache2ctl configtest
  notify: recargar apache2

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

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

Reglas

Algunos fragmentos de configuración obtenidos de HTML 5 Boilerplate se copiarán a /etc/apache2/rules, que luego se pueden usar dentro de tus configuraciones de vhost (ver uso a continuación).

  • compresión
  • transformación de contenido
  • cors
  • cors_imagenes
  • cors_timing
  • cors_web_fonts
  • etag
  • expira
  • concatenación de archivos
  • eliminación de cachés basados en nombres de archivos
  • cookies de ie
  • edge de ie
  • mimes
  • acceso a archivos de seguridad
  • hosts de seguridad
  • mime de seguridad
  • firma de seguridad
  • tecnología de seguridad
  • ssl
  • utf8

Uso

Este es un ejemplo de un playbook:

---
# este ejemplo usa roles relacionados:
#
# - 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: 'Bavaria'
        city: 'Munich'
        organization: 'Foo Bar'
        unit: 'Foo Bar Unit'
        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

Pruebas

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

Contribuciones

En lugar de una guía de estilo formal, cuida de mantener el estilo de codificación existente. Añade pruebas unitarias y ejemplos para cualquier nueva funcionalidad o cambios realizados.

  1. Haz un fork
  2. Crea tu rama de características (git checkout -b mi-nueva-característica)
  3. Confirma tus cambios (git commit -am 'Añadir alguna característica')
  4. Empuja a la rama (git push origin mi-nueva-característica)
  5. Crea una nueva solicitud de extracción

Nota: Para actualizar el archivo README.md, por favor instala y ejecuta ansible-role:

$ gem install ansible-role
$ ansible-role docgen

Licencia

Copyright (c) We Are Interactive bajo la licencia MIT.

Acerca del proyecto

Installs and configures apache2

Instalar
ansible-galaxy install weareinteractive.apache2
Licencia
mit
Descargas
15.9k
Propietario