zaxos.tomcat-ansible-role

tomcat-ansible-role

Rol de Ansible para instalar y configurar Apache Tomcat en CentOS/RHEL.

Requisitos

  • Versiones de Tomcat compatibles con este rol:
    • 7.0
    • 8.0
    • 8.5
    • 9.0 (9.0.1 o superior)
  • CentOS/RHEL 7 u 8
  • SELinux deshabilitado

Instalación

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

Ejemplo de 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

Variables del Rol

La variable principal:

  • tomcat_version: versión de tomcat a instalar

Algunas variables que requieren revisión:

  • tomcat_install_java: True
    Por defecto se instalará OpenJDK Java. Cambia a "False" si no quieres que se instale.
  • tomcat_java_version: 1.8
    Versión de OpenJDK Java a instalar. El valor por defecto es "1.8". La versión más reciente es "11".
  • tomcat_install_path: /opt
    Ubicación en la que se instalará tomcat. El valor por defecto es "/opt".
  • Gestión de memoria de JVM:
    Puedes establecer el tamaño mínimo y máximo de la memoria con las variables JVM -Xms y -Xmx como un porcentaje de la memoria total del sistema. Por ejemplo, para un sistema con 2GB de RAM, usando los valores por defecto: Xms=307m (15% de 2048MB), Xmx=1126m (55% de 2048MB).
    • tomcat_jvm_memory_percentage_xms: 15
    • tomcat_jvm_memory_percentage_xmx: 55
  • tomcat_allow_manager_access_only_from_localhost: False
    Si se establece en "True", la aplicación de gestión de tomcat solo será accesible desde localhost por razones de seguridad. (Este comportamiento es el valor por defecto para Tomcat 8.5 y 9.0)
  • tomcat_allow_host_manager_access_only_from_localhost: False
    Si se establece en "True", la aplicación de gestión de host tomcat solo será accesible desde localhost por razones de seguridad. (Este comportamiento es el valor por defecto para Tomcat 8.5 y 9.0)
  • tomcat_users: Lista de usuarios de tomcat que se crearán. Consulta el ejemplo para el formato esperado.
  • tomcat_debug_mode: False
    Cámbialo a "True" para configurar tomcat y permitir la depuración remota. El puerto de depuración por defecto es tcp/8000 (puedes cambiarlo mediante la variable correspondiente).

Permisos de archivo:

  • tomcat_permissions_production: False
    Para una instalación de producción, establece esta variable en "True" para una seguridad más estricta. Para desarrollo o instalación con menos seguridad, establece en "False". El valor por defecto es "False".
    • Si se establece en "True", todos los archivos de tomcat son propiedad de root con grupo tomcat. El propietario tiene privilegios de lectura/escritura, el grupo solo tiene derecho a lectura y el mundo no tiene permisos. Las excepciones son los logs, directorios temporales y de trabajo, que son propiedad del usuario tomcat.
    • Si se establece en "False", todos los archivos de tomcat son propiedad de tomcat con grupo tomcat. El propietario y el grupo tienen privilegios de lectura/escritura y el mundo solo tiene permisos de lectura.
  • tomcat_webapps_auto_deployment: True
    Para mejor seguridad, se debe deshabilitar la auto-deploy y las aplicaciones web deben ser desplegadas como directorios descomprimidos. Si la auto-deploy está deshabilitada, establece esto a "False". Esta variable solo tiene sentido para la instalación de producción (si tomcat_permissions_production es "True"). El valor por defecto es "True".
    • Si se establece en "True", el subdirectorio webapps es propiedad de tomcat con grupo tomcat.
    • Si se establece en "False", el subdirectorio webapps es propiedad de root con grupo tomcat.
  • tomcat_permissions_ensure_on_every_run: True
    Si se establece en "True", se asegura que los permisos de archivos sean correctos en cada ejecución del playbook. Si se establece en "False", los permisos se establecen solo cuando se instala tomcat (en la primera ejecución del playbook).
  • tomcat_prod_modes:
    Lista de subdirectorios de Tomcat, modos de directorio y modos de archivo respectivamente. Los permisos se aplican de forma recursiva.
tomcat_prod_modes:
 - ['bin', '2750', '0640']
 - ['conf', '2750', '0640']
 - ['lib', '2750', '0640']
 - ['logs', '0300', '0640']
 - ['temp', '0750', '0640']
 - ['work', '0750', '0640']
 - ['webapps', '0750', '0640']

Puertos de 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
    Establecer en "True" para habilitar el conector AJP.
  • tomcat_ajp_listen_address: "::1"
    Por defecto, el conector escuchará en la dirección de loopback. A menos que la JVM esté configurada de otra manera, los conectores basados en Java (NIO, NIO2) escucharán en ambas direcciones IPv4 e IPv6 cuando se configuren con "0.0.0.0" o "::". El conector APR/nativo solo escuchará en direcciones IPv4 si se configura con "0.0.0.0" y escuchará en direcciones IPv6 (y opcionalmente en IPv4 dependiendo de la configuración de ipv6v6only) si se configura con "::".
  • tomcat_ajp_secret: "my-@jp-s3cr3t"
    Este atributo debe especificarse con un valor no nulo y de longitud no cero, a menos que "secretRequired" se configure explícitamente como "false". Por favor, cambia el valor por defecto a algo seguro.
  • tomcat_ajp_secret_required: True
    Establecer en "False" para configurar "secretRequired=False".

Algunos valores por defecto (probablemente no necesitan cambios):

  • 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

Plantillas personalizadas para server.xml, users.xml, archivo de servicio systemd, etc.:

  • En caso de que las plantillas por defecto no se ajusten a tus necesidades, puedes usar tus propias plantillas personalizadas cambiando las siguientes variables:
    • tomcat_template_server
    • tomcat_template_users
    • tomcat_template_systemd_service
    • tomcat_template_setenv
    • tomcat_template_manager_context
    • tomcat_template_host_manager_context

Variables opcionales (por defecto indefinidas):

  • Puedes establecer un uid de usuario personalizado y un gid de grupo para homogeneidad en múltiples servidores. Por ejemplo:
    • tomcat_user_uid: 500
    • tomcat_group_gid: 500

En caso de desinstalación:

  • tomcat_state: absent
    • Para desinstalar tomcat que fue instalado usando este rol, establece esta variable en "absent". El valor por defecto es "present".
  • tomcat_uninstall_create_backup: True
    Por defecto, se creará un archivo tar de respaldo en "tomcat_install_path" antes de la eliminación.
  • tomcat_uninstall_remove_java: False
    Cámbialo a "True" para desinstalar Java después de desinstalar tomcat.
  • Por defecto, el usuario y grupo tomcat serán eliminados. Cambia a "False" para preservarlos después de desinstalar tomcat.
    • tomcat_uninstall_remove_user: True
    • tomcat_uninstall_remove_group: True
  • tomcat_uninstall_remove_all: False
    Para anular los valores anteriores y desinstalar todo, establece esto en "True".

Variables para entornos remotos desconectados:

  • tomcat_remote_is_disconnected: False
    Cámbialo a "True" si tu host remoto (host gestionado) está fuera de línea y no puede acceder a internet.
Acerca del proyecto

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

Instalar
ansible-galaxy install zaxos.tomcat-ansible-role
Licencia
gpl-2.0
Descargas
108.5k
Propietario