abdennour.tomcat_ansible_role
tomcat-ansible-role
Ansible 角色,用于在 CentOS/RHEL 上安装和配置 Apache Tomcat。
要求
- 此角色支持的 Tomcat 版本:
- 7.0
- 8.0
- 8.5
- 9.0(9.0.1 或更高版本)
- CentOS/RHEL 7
- 禁用 SELinux
安装
$ ansible-galaxy install zaxos.tomcat-ansible-role
示例 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
角色变量
主要变量:
tomcat_version
:要安装的 Tomcat 版本。
需要注意的一些变量:
tomcat_install_java
:True
默认安装 OpenJDK Java。如果不想安装 OpenJDK Java,请将其更改为 "False"。tomcat_java_version
:1.8
要安装的 OpenJDK Java 版本。默认为 "1.8",目前最新的 OpenJDK Java 版本是 "11"。tomcat_install_path
:/opt
Tomcat 的安装位置。默认为 "/opt"。- JVM 内存管理:
您可以通过以下 JVM -Xms 和 -Xmx 变量以系统总内存的百分比设置最小和最大内存堆大小。例如,对于 2GB RAM 系统,使用默认值:Xms=307m(2048MB 的 15%),Xmx=1126m(2048MB 的 55%)。tomcat_jvm_memory_percentage_xms
:15tomcat_jvm_memory_percentage_xmx
:55
tomcat_allow_manager_access_only_from_localhost
:False
如果设置为 "True",Tomcat 管理应用程序将仅能从本地主机访问,以提高安全性。(对于 Tomcat 8.5 和 9.0,此行为为默认值)tomcat_allow_host_manager_access_only_from_localhost
:False
如果设置为 "True",Tomcat 主机管理应用程序将仅能从本地主机访问,以提高安全性。(对于 Tomcat 8.5 和 9.0,此行为为默认值)tomcat_users
:要创建的 Tomcat 用户列表。请查看示例以了解预期格式。tomcat_debug_mode
:False
将其更改为 "True" 以配置 Tomcat 允许远程调试。默认调试端口设置为 tcp/8000(可以通过相应的变量更改)。
文件权限:
tomcat_permissions_production
:False
对于生产安装,将此变量设置为 "True" 以获得更严格的安全性。对于开发或低安全性/更轻松的安装,将此变量设置为 "False"。默认为 "False"。- 如果设置为 "True",所有 Tomcat 文件的拥有者为 root,组为 tomcat。所有者具有读/写权限,组只具有读取权限,世界没有权限。日志、临时和工作目录的拥有者为 tomcat 用户,而不是 root。
- 如果设置为 "False",所有 Tomcat 文件的拥有者为 tomcat,组为 tomcat。所有者和组具有读/写权限,而世界仅具有读取权限。
tomcat_webapps_auto_deployment
:True
为了更好的安全性,应该禁用自动部署,并以展开的目录方式部署 Web 应用程序。如果禁用自动部署,请将其设置为 "False"。该变量仅对生产安装有意义(如果tomcat_permissions_production
为 "True")。默认为 "True"。- 如果设置为 "True",webapps 子目录的拥有者为 tomcat,组为 tomcat。
- 如果设置为 "False",webapps 子目录的拥有者为 root,组为 tomcat。
tomcat_permissions_ensure_on_every_run
:True
如果设置为 "True",将确保在每次 Playbook 运行时文件权限。如果设置为 "False",则只有在 Tomcat 安装时(第一次运行 Playbook)才设置文件权限。
Tomcat 端口:
tomcat_port_connector
:8080tomcat_port_shutdown
:8005tomcat_port_redirect
:8443tomcat_port_ajp
:8009tomcat_port_debug
:8000
一些默认值(可能无需更改):
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/ansibletomcattempdir
自定义模板(server.xml、users.xml、systemd 服务文件等):
- 如果默认模板不适合您的需求,可以通过更改以下变量来使用自定义模板:
tomcat_template_server
tomcat_template_users
tomcat_template_systemd_service
tomcat_template_manager_context
tomcat_template_host_manager_context
可选变量(默认未定义):
- 您可以设置自定义用户 uid 和组 gid,以实现跨多个服务器的一致性。例如:
tomcat_user_uid
:500tomcat_group_gid
:500
在卸载的情况下:
tomcat_state
:absent- 要卸载使用此角色安装的 Tomcat,请将此变量设置为 "absent"。默认值为 "present"。
tomcat_uninstall_create_backup
:True
默认情况下,基于安全考虑,在删除之前,"tomcat_install_path" 将创建备份 tar 归档。tomcat_uninstall_remove_java
:False
更改为 "True",以在 Tomcat 卸载后卸载 Java。- 默认情况下,Tomcat 用户和组将被移除。更改为 "False",以在Tomcat卸载后保留它们。
tomcat_uninstall_remove_user
:Truetomcat_uninstall_remove_group
:True
tomcat_uninstall_remove_all
:False
要覆盖上述值并卸载所有内容,请将其设置为 "True"。
适用于离线远程环境的变量:
tomcat_remote_is_disconnected
:False 如果您的远程主机(托管主机)离线且无法访问互联网,请将其更改为 "True"。