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
: 15tomcat_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
: 8080tomcat_port_shutdown
: 8005tomcat_port_redirect
: 8443tomcat_port_ajp
: 8009tomcat_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
: tomcattomcat_service_enabled_on_startup
: Truetomcat_java_home
: /usr/lib/jvm/jretomcat_downloadURL
: https://archive.apache.org/disttomcat_user
: tomcattomcat_group
: tomcattomcat_listen_address
: 0.0.0.0tomcat_temp_download_path
: /tmp/ansibletomcattempdirtomcat_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
: 500tomcat_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
: Truetomcat_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