abdennour.tomcat_ansible_role

构建状态 Ansible Galaxy

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

一些默认值(可能无需更改):

  • 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

自定义模板(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: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 abdennour.tomcat_ansible_role
许可证
gpl-2.0
下载
113
拥有者
Former full stack developer, switched to the dark-side of DevOps!