zaxos.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或8
- 关闭SELinux
安装
$ ansible-galaxy install zaxos.tomcat-ansible-role
示例剧本
- 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管理应用程序将仅从localhost可访问,出于安全考虑。(这是Tomcat 8.5和9.0的默认行为)tomcat_allow_host_manager_access_only_from_localhost
: False
如果设置为“True”,Tomcat主机管理应用程序将仅从localhost可访问,出于安全考虑。(这是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”,在每次剧本运行时都会确保文件权限。如果设置为“False”,文件权限仅在Tomcat安装时设置(即第一次运行剧本时)。tomcat_prod_modes
:
列出Tomcat子目录、目录模式和文件模式。权限应用于递归。
tomcat_prod_modes:
- ['bin', '2750', '0640']
- ['conf', '2750', '0640']
- ['lib', '2750', '0640']
- ['logs', '0300', '0640']
- ['temp', '0750', '0640']
- ['work', '0750', '0640']
- ['webapps', '0750', '0640']
Tomcat端口:
tomcat_port_connector
: 8080tomcat_port_shutdown
: 8005tomcat_port_redirect
: 8443tomcat_port_ajp
: 8009tomcat_port_debug
: 8000
Tomcat AJP:
tomcat_ajp_enabled
: False
设置为“True”以启用AJP连接器。tomcat_ajp_listen_address
: "::1"
默认情况下,连接器将监听回送地址。除非JVM已使用系统属性配置,否则基于Java的连接器(NIO、NIO2)在配置为"0.0.0.0"或"::"时将同时监听IPv4和IPv6地址。APR/本机连接器如果配置为"0.0.0.0"将仅监听IPv4地址,如果配置为"::"将监听IPv6地址(并根据ipv6v6only的设置选择性地监听IPv4地址)。tomcat_ajp_secret
: "my-@jp-s3cr3t"
此属性必须指定一个非空的、非零长度的值,除非“secretRequired”明确配置为“false”。请将默认值更改为更安全的内容。tomcat_ajp_secret_required
: True
设置为“False”以配置“secretRequired=False”。
一些默认设置(可能不需要修改):
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
自定义模板用于server.xml、users.xml、systemd服务文件等:
- 如果默认模板不符合您的要求,您可以通过更改以下变量使用自定义模板:
tomcat_template_server
tomcat_template_users
tomcat_template_systemd_service
tomcat_template_setenv
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”。