KAMI911.tomcat

Rôle Ansible : Installe le serveur d'application Java Apache Tomcat (optionnellement avec Hugepages)

Installe le serveur d'application Java Apache Tomcat. Installation Tomcat la plus complète, avec prise en charge d'un script init.d, nommage des applications, hugepages, durcissement, belles pages d'erreur, mots de passe hachés en sha512, configuration JMX, plusieurs versions de Tomcat, séparation de catalina_home et catalina_base.

Table des Matières

  1. Exigences
  2. Installation
  3. Variables du Rôle
  4. Dépendances
  5. Exemple de Playbook
  6. Licences
  7. Informations sur l'Auteur
  8. Support
  9. Contributions
  10. Dons

Exigences

Aucune.

Installation

ansible-galaxy install kami911.tomcat

Variables du Rôle

Les variables disponibles sont listées ci-dessous avec leurs valeurs par défaut (voir defaults/main.yml):

Options liées à l'installation

tomcat_manage_java_pkg: False

Tomcat gère-t-il l'installation de Java en installant OpenJDK ou pas.

tomcat_installer_force_download: true

Toujours télécharger le fichier d'installation. Si déjà téléchargé, essayer de le redownload.

tomcat_download_mirror: https://archive.apache.org

Le miroir pour télécharger le fichier d'installation.

tomcat_download_url: '{{ tomcat_download_mirror }}/dist/tomcat/tomcat-{{ tomcat_majorversion }}/v{{ tomcat_majorversion }}.{{ tomcat_minorversion }}.{{ tomcat_patchversion }}/bin/{{ tomcat_download_file }}'

L'URL complète vers le fichier d'installation.

tomcat_installer_force_overwrite: true

Toujours écraser le fichier d'installation sur la machine cible.

tomcat_installer_keep: true

Ne pas supprimer l'installateur après une installation réussie.

tomcat_installer_local: false

Télécharger le fichier d'installation vers la machine hôte Ansible (pas vers la machine cible) directement. Ansible téléchargera et copiera le fichier d'installation depuis la machine hôte Ansible.

tomcat_download_validate_certs: false

Valider les certificats lors du téléchargement du fichier d'installation externe.

tomcat_force_update: false

Forcer la mise à jour lorsque la même version est déjà installée. L'ancienne version est toujours mise à jour.

Options liées aux versions

tomcat_majorversion: 8

Version majeure de Tomcat.

tomcat_minorversion: 5

Version mineure de Tomcat.

tomcat_patchversion: 4

Version micro de Tomcat.

tomcat_java_version: 11

Configurer Tomcat pour utiliser la version spécifiée de Java.

Options liées à l'utilisation des Hugepages

tomcat_use_huge_pages: True

Utiliser des Huge Pages (Java l'appelle : UseLargePages) pour améliorer les performances des applications Java. Lorsqu'un processus utilise de la mémoire, le CPU marque la RAM comme utilisée par ce processus. Pour être efficace, le CPU alloue de la RAM par morceaux de 4 Ko (c'est la valeur par défaut sur de nombreuses plateformes). Ces morceaux sont appelés pages. Ces pages peuvent être échangées sur disque, etc.

Puisque l'espace d'adresse du processus est virtuel, le CPU et le système d'exploitation doivent se rappeler quelle page appartient à quel processus et où elle est stockée. Évidemment, plus il y a de pages, plus il faut de temps pour trouver où la mémoire est mappée. Lorsqu'un processus utilise 1 Go de mémoire, cela fait 262144 entrées à chercher (1 Go / 4 Ko). Si une entrée de table de pages consomme 8 octets, cela représente 2 Mo (262144 * 8) à parcourir.

Lorsque vous l'activez, utilisez KAMI911:hugepages pour configurer les Huge Pages sous Linux.

Options liées au port, à la connexion et au pare-feu

tomcat_manage_firewalld: true

Le rôle gère les paramètres firewalld des ports requis.

tomcat_enable_firewalld: false

Forcer l'installation et l'activation du service firewalld.

tomcat_manage_firewalld_use_zone: true

Le firewalld de Tomcat utilise des zones (par défaut) ou utilise des adresses sources.

Un "Connecteur" représente un point de terminaison par lequel les demandes sont reçues et les réponses sont retournées. Documentation à :

  • Connecteur HTTP Java : /docs/config/http.html
  • Connecteur AJP Java : /docs/config/ajp.html
  • Connecteur APR (HTTP/AJP) : /docs/apr.html

Définir un connecteur HTTP/1.1 non SSL/TLS.

Toute la configuration liée aux connecteurs, aux ports et au pare-feu est collectée sous la variable nommée tomcat_server :

tomcat_server:
  - port: 8080  # Port de connexion http écouté par Tomcat.
    connector:
      protocol: 'HTTP/1.1'
      connectionTimeout: 20000
      redirectPort: 8444
      Server: ' '
      URIEncoding: UTF-8
      Secure: false
      compressibleMimeType: 'text/html,text/xml,text/css,text/javascript,application/x-javascript,application/javascript,text/plain'  # Types MIME compressés pour la connexion http de Tomcat.
      compression: on  # Activation/Désactivation du contenu compressé pour la connexion http de Tomcat.
      compressionMinSize: 256  # Taille minimale du fichier compressé pour la connexion http de Tomcat.
      noCompressionUserAgents: ''  # La connexion http de Tomcat doit être non compressée pour ces agents utilisateurs de navigateur.
    source: []  # Ajustez cela en fonction de votre réseau
    executor:  # Spécifiez l'exécuteur si vous souhaitez l'utiliser. N'oubliez pas de l'utiliser dans les paramètres du connecteur via la clé 'executor'.
      name: tomcatHTTPThreadPool
      namePrefix: catalina-exec-http-
      maxThreads: 300
      minSpareThreads: 5
  - port: 8009  # Port de connexion http écouté par Tomcat.
    connector:
      protocol: 'AJP/1.3'
      redirectPort: 8444
    source: []  # Ajustez cela en fonction de votre réseau
    executor:    # Spécifiez l'exécuteur si vous souhaitez l'utiliser. N'oubliez pas de l'utiliser dans les paramètres du connecteur via la clé 'executor'.
      name: tomcatAJPThreadPool
      namePrefix: catalina-exec-ajp-
      maxThreads: 900
      minSpareThreads: 20

Le "Connecteur" Tomcat peut utiliser le pool de threads partagé appelé exécuteur pour les connexions http/ajp/https.

Options liées à l'encodage

tomcat_file_encoding: UTF-8

Paramètre d'encodage de fichier Tomcat : UTF-8

tomcat_page_encoding: UTF-8

Paramètre d'encodage des pages Tomcat : UTF-8

Options liées à la locale

Les locales identifient une langue spécifique et une région géographique.

Plus d'informations sur les paramètres de locale de Java sont disponibles ici : https://www.oracle.com/technical-resources/articles/javase/locale.html

tomcat_locale_language: en

Les codes de langue sont définis par l'ISO 639, une norme internationale qui assigne des codes à deux et trois lettres à la plupart des langues du monde. La locale utilise les codes à deux lettres pour identifier la langue cible.

tomcat_locale_country: EN

Les codes de pays sont définis par l'ISO 3166, une autre norme internationale. Elle définit des abréviations à deux et trois lettres pour chaque pays ou grande région du monde. Contrairement aux codes de langue, les codes de pays sont en majuscules.

Configuration de la mémoire

tomcat_java_heap_min: 4096

Taille minimale du tas Java. Tailles de mémoire en mégaoctets (Mo).

tomcat_java_heap_max: 4096

Taille maximale du tas Java. Tailles de mémoire en mégaoctets (Mo).

tomcat_java_permsize_min: 384

Taille minimale de la génération permanente Java. Tailles de mémoire en mégaoctets (Mo). Seulement pour Java 7 ou versions antérieures.

tomcat_java_permsize_max: 384

Taille minimale de la génération permanente Java. Tailles de mémoire en mégaoctets (Mo). Seulement pour Java 7 ou versions antérieures.

tomcat_java_thread_stack_size: 512

Taille de la pile de threads Java en kilooctets (Ko).

Options liées aux bibliothèques natives

tomcat_native_library_enable: false

Essayer d'utiliser la bibliothèque native Tomcat. La bibliothèque native Apache Tomcat est un composant optionnel permettant à Tomcat d'utiliser certaines ressources natives pour des performances, compatibilité, etc.

Plus d'informations : https://tomcat.apache.org/native-doc/

Options liées à la journalisation

tomcat_catalina_logs_directory_mode: "u=rwx,g=rwx,o="

Mode du répertoire des journaux catalina de Tomcat.

tomcat_access_log_filename: '{{ tomcat_system_name }}_access'

Définir le nom de fichier par défaut des journaux d'accès de Tomcat.

tomcat_access_log_extension: '.log'

Définir l'extension de fichier par défaut des journaux d'accès de Tomcat.

tomcat_access_log_pattern: "%{yyyy-MM-dd}tT%{HH:mm:ss.SSSXXXZ}t ${shortSystemName} %v %h (%{X-Forwarded-For}i) %A:%p %I %u "%r" %s %b %D %{Referer}i %{User-Agent}i"

Chaîne de modèle des journaux d'accès de Tomcat.

Options de sécurité liées à Tomcat

tomcat_use_secure_flag: True

Définissez cet attribut sur True si vous souhaitez que les appels à request.isSecure() retournent vrai pour les demandes reçues par ce connecteur.

tomcat_session_http_only: True

Forcer Tomcat à utiliser le cookie JSESSIONID uniquement sur http.

tomcat_session_secure: True

Forcer Tomcat à utiliser un cookie JSESSIONID sécurisé.

Contribution

Il existe de nombreuses façons de contribuer à ansible-role-tomcat, qu'il s'agisse d'envoyer des correctifs, de tester, de signaler des bogues ou de réviser et de mettre à jour la documentation. Chaque contribution est appréciée !

Dons

Si vous trouvez cela utile, veuillez envisager un don :

paypal

Auteurs

Ce rôle a été créé entre 2016 et 2020 par Kálmán Szalai - KAMI

Support

Si vous avez des questions, n'hésitez pas à me contacter. Si vous trouvez un bug ou avez une demande de fonctionnalité, vous pouvez signaliser un problème.

À propos du projet

Most complete Tomcat installation, supporting init.d script,\ application naming, hugepages, hardening, beautiful error pages,\ sha512 hashed passwords, JMX configuration, multiple Tomcat versions,\ separated catalina_home and caralina_base.

Installer
ansible-galaxy install KAMI911.tomcat
Licence
mit
Téléchargements
1.9k
Propriétaire
Open Source Enthusiast, System Administrator, Pythonist, OpenStreetMap & GIS Fan