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: 15
    • tomcat_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: 8080
  • tomcat_port_shutdown: 8005
  • tomcat_port_redirect: 8443
  • tomcat_port_ajp: 8009
  • tomcat_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: 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

自定义模板用于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: 500
    • tomcat_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: True
    • tomcat_uninstall_remove_group: True
  • tomcat_uninstall_remove_all: False
    要覆盖上述值并卸载所有内容,请将其设置为“True”。

用于隔离的远程环境的变量:

  • tomcat_remote_is_disconnected: False
    如果您的远程主机(受管理主机)离线且无法访问互联网,请将其更改为“True”。
关于项目

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

安装
ansible-galaxy install zaxos.tomcat-ansible-role
许可证
gpl-2.0
下载
108.5k