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
- Exigences
- Installation
- Variables du Rôle
- Dépendances
- Exemple de Playbook
- Licences
- Informations sur l'Auteur
- Support
- Contributions
- 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 :
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.
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.
ansible-galaxy install KAMI911.tomcat