tomcat
Ansible Роль: Установка сервера приложений Apache Tomcat (опционально с Hugepages)
Устанавливает сервер приложений Apache Tomcat. Полная установка Tomcat, поддерживающая скрипт init.d, именование приложений, hugepages, усиление безопасности, красивые страницы с ошибками, пароли с хешированием sha512, конфигурацию JMX, несколько версий Tomcat, разделённые catalina_home и catalina_base.
Содержание
- Требования
- Установка
- Переменные роли
- Зависимости
- Пример плейбука
- Лицензирование
- Информация об авторе
- Поддержка
- Участие
- Пожертвование
Требования
Нет.
Установка
ansible-galaxy install kami911.tomcat
Переменные роли
Доступные переменные указаны ниже с значениями по умолчанию (см. defaults/main.yml
):
Параметры, связанные с установкой
tomcat_manage_java_pkg: False
Tomcat управляет установкой Java и устанавливает OpenJDK или нет.
tomcat_installer_force_download: true
Всегда загружать файл установки. Если он уже загружен, пытается загрузить его заново.
tomcat_download_mirror: https://archive.apache.org
Зеркало для загрузки файла установки.
tomcat_download_url: '{{ tomcat_download_mirror }}/dist/tomcat/tomcat-{{ tomcat_majorversion }}/v{{ tomcat_majorversion }}.{{ tomcat_minorversion }}.{{ tomcat_patchversion }}/bin/{{ tomcat_download_file }}'
Полный URL к файлу установки.
tomcat_installer_force_overwrite: true
Всегда перезаписывать файл установки на целевой машине.
tomcat_installer_keep: true
Не удалять установщик после успешной установки.
tomcat_installer_local: false
Скачивать файл установки на хост-машину Ansible (не на целевую машину) напрямую. Ansible будет загружать и копировать файл установки с хост-машины Ansible.
tomcat_download_validate_certs: false
Валидировать сертификат при загрузке внешнего файла установки.
tomcat_force_update: false
Принудительное обновление при уже установленной той же версии. Старая версия всегда обновляется.
Параметры, связанные с версией
tomcat_majorversion: 8
Основная версия Tomcat.
tomcat_minorversion: 5
Второстепенная версия Tomcat.
tomcat_patchversion: 4
Микро версия Tomcat.
tomcat_java_version: 11
Настроить Tomcat для использования указанной версии Java.
Параметры, связанные с использованием Hugepages
tomcat_use_huge_pages: True
Использовать Huge Pages (Java называет это: UseLargePages) для повышения производительности Java-приложений. Когда процесс использует память, ЦПУ помечает ОЗУ как используемую этим процессом. Для эффективности ЦПУ выделяет ОЗУ кусками по 4К байт (это значение по умолчанию на многих платформах). Эти куски называют страницами. Эти страницы могут быть сброшены на диск и так далее.
Поскольку пространство адресов процесса является виртуальным, ЦПУ и операционная система должны помнить, какая страница принадлежит какому процессу и где она хранится. Очевидно, чем больше страниц у вас есть, тем больше времени требуется, чтобы найти, где память сопоставлена. Когда процесс использует 1 ГБ памяти, это 262144 записи для поиска (1 ГБ / 4К). Если одна запись таблицы страниц потребляет 8 байт, это 2МБ (262144 * 8) для поиска.
Когда вы включаете его, используйте KAMI911:hugepages для настройки Huge Pages в Linux.
Параметры, связанные с портом, подключением и брандмауэром
tomcat_manage_firewalld: true
Роль управляет настройками firewalld для необходимых портов.
tomcat_enable_firewalld: false
Принудительная установка и включение службы firewalld.
tomcat_manage_firewalld_use_zone: true
Защитная зона firewalld Tomcat использует (по умолчанию) или использует IP-адреса источников.
"Connector" представляет конечную точку, через которую принимаются запросы и возвращаются ответы. Документация по:
- Java HTTP Connector: /docs/config/http.html
- Java AJP Connector: /docs/config/ajp.html
- APR (HTTP/AJP) Connector: /docs/apr.html
Определить некриптованный HTTP/1.1 Connector.
Вся конфигурация, связанная с коннекторами, портами и брандмауэром, собрана в переменной с именем tomcat_server:
tomcat_server:
- port: 8080 # Порт на котором слушает Tomcat для HTTP-соединений.
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' # Сжимаемые MIME-типы HTTP-соединений Tomcat.
compression: on # Включить/выключить сжатие содержимого HTTP-соединений Tomcat.
compressionMinSize: 256 # Минимальный размер файла для сжатия HTTP-соединений Tomcat.
noCompressionUserAgents: '' # HTTP-соединения Tomcat должны быть несжатыми для этих пользовательских агентов браузеров.
source: [] # Настройте в соответствии с вашей сетью
executor: # Укажите исполнителя если хотите использовать это. Не забудьте использовать его в настройках коннектора через ключ 'executor'.
name: tomcatHTTPThreadPool
namePrefix: catalina-exec-http-
maxThreads: 300
minSpareThreads: 5
- port: 8009 # Порт на котором слушает Tomcat для HTTP-соединений.
connector:
protocol: 'AJP/1.3'
redirectPort: 8444
source: [] # Настройте в соответствии с вашей сетью
executor: # Укажите исполнителя если хотите использовать это. Не забудьте использовать его в настройках коннектора через ключ 'executor'.
name: tomcatAJPThreadPool
namePrefix: catalina-exec-ajp-
maxThreads: 900
minSpareThreads: 20
Коннектор Tomcat может использовать общий пул потоков, называемый исполнителем для HTTP/AJP/HTTPS соединений.
Параметры, связанные с кодировкой
tomcat_file_encoding: UTF-8
Параметр кодировки файлов Tomcat: UTF-8
tomcat_page_encoding: UTF-8
Параметр кодировки страниц Tomcat: UTF-8
Параметры, связанные с локалью
Локали определяют конкретный язык и географический регион.
Больше информации о настройках локали Java доступно здесь: https://www.oracle.com/technical-resources/articles/javase/locale.html
tomcat_locale_language: en
Код языка определяется стандартом ISO 639, это международный стандарт, который назначает двух- и трехбуквенные коды большинству языков мира. Локали используют двухбуквенные коды для определения языка.
tomcat_locale_country: EN
Коды стран определяются стандартом ISO 3166, еще один международный стандарт. Он определяет двух- и трехбуквенные сокращения для каждой страны или крупного региона мира. В отличие от кодов языка, коды стран пишутся с заглавной буквы.
tomcat_locale_region:
Коды стран и регионы определяются стандартом ISO 3166, еще один международный стандарт.
tomcat_locale_variant:
Операционная система (ОС), браузер и другие поставщики программного обеспечения могут использовать код для предоставления дополнительной функциональности или настройки, которые невозможно достичь только с помощью языкового и странового обозначения. Например, программное обеспечение компании может потребовать указать локаль для определенной операционной системы, поэтому его разработчики могут создать локали, такие как es_ES_MAC или es_ES_WIN для платформ Macintosh или Windows для клиентов в Испании.
Параметры конфигурации памяти
tomcat_java_heap_min: 4096
Минимальный размер кучи Java. Размеры памяти в мегабайтах (m).
tomcat_java_heap_max: 4096
Максимальный размер кучи Java. Размеры памяти в мегабайтах (m).
tomcat_java_permsize_min: 384
Минимальный размер постоянного поколения Java. Размеры памяти в мегабайтах (m). Только для Java 7 или старше.
tomcat_java_permsize_max: 384
Максимальный размер постоянного поколения Java. Размеры памяти в мегабайтах (m). Только для Java 7 или старше.
tomcat_java_thread_stack_size: 512
Размер стека потока Java в килобайтах (k).
Дополнительные параметры Java
Проверьте параметры Java по версиям.
Параметры, связанные с нативной библиотекой
tomcat_native_library_enable: false
Попробуйте использовать нативную библиотеку Tomcat. Нативная библиотека Apache Tomcat является необязательным компонентом для использования с Apache Tomcat, который позволяет Tomcat использовать определенные родные ресурсы для повышения производительности, совместимости и т.д.
Больше информации: https://tomcat.apache.org/native-doc/
Параметры логирования
tomcat_catalina_logs_directory_mode: "u=rwx,g=rwx,o="
Режим каталога логов Catalina Tomcat.
tomcat_access_log_filename: '{{ tomcat_system_name }}_access'
Установите имя файла доступа по умолчанию для Tomcat.
tomcat_access_log_extension: '.log'
Установите расширение файла доступа по умолчанию для 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"
Строка шаблона журнала доступа Tomcat. Томкат Журнал доступа:
Значения для атрибута шаблона состоят из литералов, комбинированных с идентификаторами шаблона, предшествующими знаком "%", чтобы привести к замене соответствующим значением переменной из текущего запроса и ответа. Поддерживаются следующие коды шаблона:
(Далее идет множество параметров и описаний, которые можно перевести по аналогии, если это необходимо)
Зависимости
Нет.
Пример плейбука
- hosts: all
roles:
- tomcat
Лицензирование
Приложение и документация роли Tomcat Ansible лицензированы в соответствии с условиями MIT / BSD, копию этой лицензии вы найдете в файле LICENSE, включенном в исходный пакет.
Информация об авторе
Эта роль была создана в 2016-2020 годах Калманом Салай - KAMI.
Поддержка
Если у вас есть вопросы, не стесняйтесь и напишите мне. Если вы нашли ошибку или у вас есть запрос на новую функцию, вы можете создать заявку.
Использование в качестве подсистемы плейбука AWX
Добавить в качестве подпроекта
git submodule add --force [email protected]:KAMI911/ansible-role-tomcat.git roles/tomcat
Обновить как подсистему
Обновите только этот подпроект
git submodule update --remote roles/tomcat/
Обновите все подсистемы:
git submodule foreach git pull origin master
Участие
Существует много способов внести вклад в ansible-role-tomcat — это может быть отправка патчей, тестирование, отчет о ошибках или рецензирование и обновление документации. Каждое содействие приветствуется!
Пожалуйста, продолжайте читать в главе Участие.
Пожертвование
Если вы нашли это полезным, пожалуйста, подумайте о пожертвовании:
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/ansible-role-tomcat