tomcat

Ansible Роль: Установка сервера приложений Apache Tomcat (опционально с Hugepages)

Устанавливает сервер приложений Apache Tomcat. Полная установка Tomcat, поддерживающая скрипт init.d, именование приложений, hugepages, усиление безопасности, красивые страницы с ошибками, пароли с хешированием sha512, конфигурацию JMX, несколько версий Tomcat, разделённые catalina_home и catalina_base.

Содержание

  1. Требования
  2. Установка
  3. Переменные роли
  4. Зависимости
  5. Пример плейбука
  6. Лицензирование
  7. Информация об авторе
  8. Поддержка
  9. Участие
  10. Пожертвование

Требования

Нет.

Установка

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) для поиска.

Debian Wiki: Hugepages

Когда вы включаете его, используйте 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 — это может быть отправка патчей, тестирование, отчет о ошибках или рецензирование и обновление документации. Каждое содействие приветствуется!

Пожалуйста, продолжайте читать в главе Участие.

Пожертвование

Если вы нашли это полезным, пожалуйста, подумайте о пожертвовании:

paypal

О проекте

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
Лицензия
mit
Загрузки
1934
Владелец
Open Source Enthusiast, System Administrator, Pythonist, OpenStreetMap & GIS Fan