zaxos.tomcat-ansible-role

tomcat-ansible-role

Ansible rola do instalacji i konfiguracji Apache Tomcat na CentOS/RHEL.

Wymagania

  • Wersje Tomcat wspierane przez tę rolę:
    • 7.0
    • 8.0
    • 8.5
    • 9.0 (9.0.1 lub nowsze)
  • CentOS/RHEL w wersji 7 lub 8
  • Wyłączony SELinux

Instalacja

$ ansible-galaxy install zaxos.tomcat-ansible-role

Przykładowy playbook

- hosts: servers
  become: true
  vars:
    tomcat_version: 8.5.23
    
    tomcat_permissions_production: True
    
    tomcat_users:
      - username: "tomcat"
        password: "t3mpp@ssw0rd"
        roles: "tomcat,admin,manager,manager-gui"
      - username: "exampleuser"
        password: "us3rp@ssw0rd"
        roles: "tomcat"        
  roles:
    - role: zaxos.tomcat-ansible-role

Zmienne roli

Główna zmienna:

  • tomcat_version: wersja tomcat do zainstalowania

Kilka zmiennych do przemyślenia:

  • tomcat_install_java: True
    Domyślnie będzie zainstalowane OpenJDK. Zmień na "False", jeśli nie chcesz instalować OpenJDK.
  • tomcat_java_version: 1.8
    Wersja OpenJDK do zainstalowania, domyślnie "1.8". Aktualnie najnowsza wersja to "11".
  • tomcat_install_path: /opt
    Miejsce, w którym zostanie zainstalowany tomcat, domyślnie "/opt".
  • Zarządzanie pamięcią JVM:
    Możesz ustawić minimalny i maksymalny rozmiar pamięci za pomocą zmiennych JVM -Xms i -Xmx jako procent całkowitej pamięci systemu. Na przykład, dla systemu z 2GB RAM: Xms=307m (15% z 2048MB), Xmx=1126m (55% z 2048MB).
    • tomcat_jvm_memory_percentage_xms: 15
    • tomcat_jvm_memory_percentage_xmx: 55
  • tomcat_allow_manager_access_only_from_localhost: False
    Ustaw na "True", aby dostęp do aplikacji zarządzającej tomcatem miał tylko localhost z powodów bezpieczeństwa. (Takie zachowanie jest domyślne dla Tomcat 8.5 i 9.0)
  • tomcat_allow_host_manager_access_only_from_localhost: False
    Ustaw na "True", aby menedżer hostów tomcat miał dostęp tylko z localhost. (Takie zachowanie jest domyślne dla Tomcat 8.5 i 9.0)
  • tomcat_users: Lista użytkowników tomcat do utworzenia. Zobacz przykład dla właściwego formatu.
  • tomcat_debug_mode: False
    Zmień na "True", aby skonfigurować tomcat do zdalnego debugowania. Domyślny port debugowania to tcp/8000 (możesz to zmienić przez odpowiednią zmienną).

Uprawnienia do plików:

  • tomcat_permissions_production: False
    Dla instalacji na produkcji ustaw tę zmienną na "True" dla bardziej restrykcyjnego bezpieczeństwa. Dla instalacji deweloperskich lub o niższym stopniu bezpieczeństwa ustaw to na "False". Domyślnie jest "False".
    • Jeśli ustawisz na "True", wszystkie pliki tomcat będą należały do roota z grupą tomcat. Właściciel ma prawa do odczytu/zapisu, grupa ma tylko prawa do odczytu, a świat nie ma żadnych uprawnień. Wyjątki stanowią logi, temp i katalog roboczy, które są należące do użytkownika tomcat, a nie roota.
    • Jeśli ustawisz na "False", wszystkie pliki tomcat będą należały do tomcat z grupą tomcat. Właściciel i grupa mają prawa do odczytu/zapisu, a świat ma tylko prawa do odczytu.
  • tomcat_webapps_auto_deployment: True
    Dla lepszego bezpieczeństwa automatyczne wdrażanie powinno być wyłączone, a aplikacje webowe powinny być wdrażane jako rozpakowane katalogi. Jeśli automatyczne wdrażanie jest wyłączone, ustaw to na "False". Ta zmienna ma sens tylko dla instalacji produkcyjnej (jeśli tomcat_permissions_production to "True"). Domyślnie jest "True".
    • Jeśli ustawisz na "True", subkatalog webapps należy do tomcat z grupą tomcat.
    • Jeśli ustawisz na "False", subkatalog webapps należy do roota z grupą tomcat.
  • tomcat_permissions_ensure_on_every_run: True
    Jeśli ustawisz na "True", uprawnienia do plików będą zapewniane przy każdym uruchomieniu playbooka. Jeśli ustawisz na "False", uprawnienia do plików zostaną ustawione tylko podczas instalacji tomcat (przy pierwszym uruchomieniu playbooka).
  • tomcat_prod_modes:
    Lista podkatalogów tomcat, tryby katalogów i tryby plików. Uprawnienia są stosowane rekurencyjnie.
tomcat_prod_modes:
 - ['bin', '2750', '0640']
 - ['conf', '2750', '0640']
 - ['lib', '2750', '0640']
 - ['logs', '0300', '0640']
 - ['temp', '0750', '0640']
 - ['work', '0750', '0640']
 - ['webapps', '0750', '0640']

Porty Tomcat:

  • tomcat_port_connector: 8080
  • tomcat_port_shutdown: 8005
  • tomcat_port_redirect: 8443
  • tomcat_port_ajp: 8009
  • tomcat_port_debug: 8000

Tomcat AJP:

  • tomcat_ajp_enabled: False
    Ustaw na "True", aby włączyć AJP Connector.
  • tomcat_ajp_listen_address: "::1"
    Domyślnie, connector będzie nasłuchiwał na adresie loopback. O ile JVM nie jest skonfigurowane inaczej za pomocą właściwości systemowych, łączniki oparte na Javie (NIO, NIO2) będą nasłuchiwać zarówno na adresach IPv4, jak i IPv6, gdy są skonfigurowane z "0.0.0.0" lub "::". Łącznik APR/native będzie nasłuchiwał tylko na adresach IPv4, jeśli jest skonfigurowany z "0.0.0.0" i na adresach IPv6 (i opcjonalnie adresach IPv4, w zależności od ustawienia ipv6v6only), jeśli jest skonfigurowany z "::".
  • tomcat_ajp_secret: "my-@jp-s3cr3t"
    Atrybut ten musi być określony jako wartość niepusta i niezerowa, chyba że "secretRequired" jest jawnie skonfigurowane jako "false". Proszę zmienić tę domyślną wartość na coś bezpiecznego.
  • tomcat_ajp_secret_required: True
    Ustaw na "False", aby skonfigurować "secretRequired=False".

Niektóre domyślne (zapewne nie wymagające zmian):

  • tomcat_service_name: tomcat
  • tomcat_service_enabled_on_startup: True
  • tomcat_java_home: /usr/lib/jvm/jre
  • tomcat_downloadURL: https://archive.apache.org/dist
  • tomcat_user: tomcat
  • tomcat_group: tomcat
  • tomcat_listen_address: 0.0.0.0
  • tomcat_temp_download_path: /tmp/ansibletomcattempdir
  • tomcat_systemd_config_path: /etc/systemd/system

Szablony własne dla server.xml, users.xml, pliku usługi systemd itp.:

  • Jeśli domyślne szablony nie spełniają Twoich potrzeb, możesz użyć własnych szablonów, zmieniając następujące zmienne:
    • tomcat_template_server
    • tomcat_template_users
    • tomcat_template_systemd_service
    • tomcat_template_setenv
    • tomcat_template_manager_context
    • tomcat_template_host_manager_context

Zmienne opcjonalne (domyślnie niezdefiniowane):

  • Możesz ustawić niestandardowe UID użytkownika i GID grupy w celu uzyskania jednorodności na wielu serwerach. Na przykład:
    • tomcat_user_uid: 500
    • tomcat_group_gid: 500

W przypadku dezinstalacji:

  • tomcat_state: absent
    • Aby odinstalować tomcat zainstalowany za pomocą tej roli, ustaw tę zmienną na "absent". Domyślna wartość to "present".
  • tomcat_uninstall_create_backup: True
    Domyślnie, dla bezpieczeństwa, zostanie utworzony archiwum tar w "tomcat_install_path" przed usunięciem.
  • tomcat_uninstall_remove_java: False
    Zmień na "True", aby odinstalować Java po usunięciu tomcat.
  • Domyślnie, użytkownik i grupa tomcat zostaną usunięte. Zmień na "False", aby je zachować po usunięciu tomcat.
    • tomcat_uninstall_remove_user: True
    • tomcat_uninstall_remove_group: True
  • tomcat_uninstall_remove_all: False
    Aby nadpisać powyższe wartości i odinstalować wszystko, ustaw na "True".

Zmienne dla odłączonego środowiska zdalnego:

  • tomcat_remote_is_disconnected: False
    Zmień na "True", jeśli Twój zdalny host (zarządzany host) jest offline i nie ma dostępu do internetu.
O projekcie

Ansible role to install and configure Apache Tomcat on CentOS/RHEL

Zainstaluj
ansible-galaxy install zaxos.tomcat-ansible-role
Licencja
gpl-2.0
Pobrania
108.5k
Właściciel