使用 Red Hat Ansible 认证的内容集合安装 JBoss Web Server


Red Hat JBoss Web Server 6.1

使用 Red Hat Ansible 认证的内容集合自动化部署 JBoss Web Server 6.1

Red Hat Customer Content Services

摘要

安装和使用 Red Hat Ansible 认证的内容集合来自动化部署 JBoss Web 服务器。

前言

Red Hat Ansible Certified Content Collection for Red Hat JBoss Web Server 是红帽提供的预打包 Ansible 内容集合。您可以使用 Red Hat Ansible 认证的内容集合来自动化安装和配置 Red Hat JBoss Web Server 产品。您还可以在 playbook 中添加自定义任务,以便在与自动产品安装或更高版本相同的时间自动部署 JBoss Web Server 应用程序。

注意

本文档的其余部分将红帽 Ansible 认证的内容集合称为 JBoss Web Server 作为 JBoss Web Server 集合

提供有关 Red Hat JBoss Web Server 文档的反馈

要报告错误或改进文档,请登录您的红帽 JIRA 帐户并提交问题。如果您没有红帽 JIRA 帐户,系统会提示您创建一个帐户。

流程

  1. 单击以下链接 来创建 ticket
  2. Summary 中输入有关此问题的简单描述。
  3. 描述中提供问题或增强功能的详细描述。请包括有问题的文档 URL。
  4. Create 创建并将问题路由到适当的文档团队。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

第 1 章 使用 Ansible 集合自动化 JBoss Web 服务器部署

Ansible 是一种信息技术(IT)自动化引擎,可用于自动化和简化云配置、配置管理、应用部署、内部服务编排,以及 IT 企业中的其他任务。

Ansible 集合 是一种标准化分发格式,可用于重复利用的 Ansible 内容,如 playbook、角色、模块和插件。红帽提供了一组预先打包的 Red Hat Ansible 认证内容集合。您可以使用这些 Red Hat Ansible 认证内容集合来自动部署系统中的各种 Red Hat Runtimes 产品,如 Red Hat JBoss Web Server。

1.1. Ansible 概念和优点

Ansible 包括各种元素,如 playbook、角色、内容集合和自动化执行环境。使用 Ansible 自动化 IT 流程、工作流和基础架构生命周期为您的企业带来多种好处。如果您对 Ansible 架构不熟悉,或者您希望更多有关使用 Ansible 的好处的信息,请参阅以下 附加资源 链接。

1.2. JBoss Web 服务器集合

有关 JBoss Web 服务器集合的常规信息,请参阅 Ansible Automation Hub 中的 AnsibleCollection - redhat.jws 页面。Ansible Collection - redhat.jws 页面包含有关集合包含的角色的信息。您可以点击角色名称来查看角色目的、任何要求或依赖项以及角色用于完成自动化任务的变量和默认设置列表。

第 2 章 安装 JBoss Web 服务器集合

作为使用 Ansible 自动部署 Red Hat JBoss Web Server 的第一步,您必须从 Ansible 自动化 hub 下载并安装 JBoss Web Server 集合。JBoss Web 服务器集合在 Ansible 自动化中心 中命名为 redhat.jws。在安装 JBoss Web 服务器集合前,您必须确保您的系统符合特定先决条件。

先决条件

  • 您可以通过安装 Red Hat Ansible Automation Platform 2.x,在系统上的控制节点上安装了 ansible-core 软件包版本 2.16 或更高版本。

    有关安装 Red Hat Ansible Automation Platform 的更多信息,请参阅 Red Hat Ansible Automation Platform 安装指南

  • 您已更新了 ansible.cfg 文件,以使用 Ansible Automation Hub 作为 Ansible 集合 的主要源。有关更新 ansible.cfg 文件的更多信息,请参阅开始使用自动化中心

流程

  • 在 Ansible 控制节点上输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ ansible-galaxy collection install redhat.jws
    注意

    如果前面的命令生成 Failed to find collection redhat.jws:* 错误消息,请确保正确更新了 ansible.cfg 文件以使用 Ansible Automation hub,如 开始使用自动化中心 所述。

    前面的命令会产生以下输出:

    Copy to Clipboard Toggle word wrap
    Starting galaxy collection install process
    
    Process install dependency map
    
    Starting collection install process
    
    ...
    
    redhat.jws:<version> was installed successfully
    
    ...
    
    redhat.runtimes_common:<version> was installed successfully
    
    ...
    
    ansible.posix:<version> was installed successfully

    对于 brevity,前面的示例使用 ellipses 来表示忽略的文本。在前面的输出中,&lt ;version& gt; 代表安装的 redhat.jwsredhat.runtimes_commonansible.posix 集合的最新可用版本。

验证

  • 在 Ansible 控制节点上输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ ansible-galaxy collection list

    前面的命令显示安装的集合列表。例如:

    Copy to Clipboard Toggle word wrap
    Collection                 Version
    -------------------------- -------
    ansible.posix              <version>
    redhat.jws                 <version>
    redhat.runtimes_common     <version>
    ...

如上例所示,当安装 redhat.jws 集合时,ansible.posixredhat.runtimes_common 集合的最新版本也会自动下载并安装到 Ansible 控制节点上。redhat.runtimes_common 集合提供了一组标准实用程序,以支持各种红帽运行时产品的自动部署,如 JBoss Web 服务器。

注意

如果 Ansible 控制节点上已存在最新版本的 ansible.posixredhat.runtimes_common 集合,则这些集合不会被再次自动安装。

第 3 章 启用 JBoss Web 服务器的自动部署

JBoss Web 服务器集合提供一组全面的变量和默认值,您可以手动更新以匹配您的设置要求。这些变量设置提供 JBoss Web Server 集合在目标主机上完成 Red Hat JBoss Web Server 的自动化和自定义安装所需的所有信息。

有关 JBoss Web 服务器集合提供的变量的完整列表,请参阅 Ansible Automation Hub jws 角色的信息页面jws 角色的信息页面列出了您可以定义的所有变量的名称、描述和默认值。

注意

您可以通过多种方法定义变量。默认情况下,JBoss Web 服务器集合包含一个示例 playbook.yml 文件,该文件链接到同一 playbook 文件夹中的 vars.yml 文件。为了说明这一点,本节中的说明描述了如何在集合提供的 vars.yml 文件中定义变量。如果您愿意,您可以使用其他方法定义变量。

您可以定义变量来自动化以下任务:

您还可以通过在 playbook 中添加自定义任务来自动部署 Web 应用程序,如在目标主机上 启用 JBoss Web Server 应用程序自动部署 中所述。

3.1. 启用从存档文件中自动安装 JBoss Web Server

默认情况下,JBoss Web 服务器集合配置为在产品存档文件的每个目标主机上安装 Red Hat JBoss Web Server。根据您的设置要求,您可以启用 JBoss Web Server 集合从存档文件同时安装基本产品版本、产品补丁更新或两者。您可以选择从红帽客户门户手动下载存档文件,或者启用 JBoss Web 服务器集合来自动下载存档文件。

3.1.1. 启用 JBoss Web Server 基础版本的自动安装

您可以启用 JBoss Web Server 集合,从产品存档文件安装指定 JBoss Web Server 版本的基本版本。基本版本是 特定产品版本的初始版本(如 6.1.0 是版本 6.1 的基础版本)。

JBoss Web 服务器集合要求您的 Ansible 控制节点上提供了适当存档文件的本地副本。如果您的系统中没有存档文件的副本,您可以设置变量来指定红帽服务帐户凭证,以允许从红帽客户门户网站下载文件。或者,您可以手动下载存档文件。

先决条件

  • 您已安装了 JBoss Web 服务器集合
  • 如果系统上已有 JBoss Web 服务器存档文件的副本,您已将这些存档文件复制到 Ansible 控制节点上。
  • 如果您希望 JBoss Web 服务器集合从红帽客户门户网站自动下载存档文件,您已创建了一个红帽服务帐户。

    注意

    服务帐户允许您在不需要最终用户凭证或直接交互的情况下安全地自动连接和自动连接和验证服务或应用程序。要创建服务帐户,请登录 Red Hat Hybrid Cloud Console 中的 Service Accounts 页面,然后单击 Create service account

  • 如果您希望手动下载存档文件,请将适当的存档文件下载到 Ansible 控制节点。如需更多信息,请参阅 Red Hat JBoss Web Server 安装指南

    注意

    如果手动下载存档文件,则不需要在 Ansible 控制节点上提取这些文件。在这种情况下,JBoss Web 服务器集合会自动提取存档文件。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要指定要安装的 JBoss Web Server 版本,请将 jws_version 变量设置为适当的基本版本。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_version: 6.1.0
    注意

    确保您为 jws_version 变量指定的值与您要安装的产品存档文件的版本匹配。例如,若要为 JBoss Web Server 6.1 安装存档文件,可指定值 6.1.0

    默认情况下,JBoss Web 服务器集合配置为同时安装主应用服务器存档和您指定的产品版本的原生存档。如果将 jws_native 变量设置为 False,JBoss Web Server 集合无法安装原生存档,这会导致需要安装原生存档文件的功能(如 SELinux 策略)出现问题。

    如果您没有指定自动文件下载的凭证,如 第 3 步 所述,请确保已将指定产品版本的存档文件复制到 Ansible 控制节点。在这种情况下,请确保复制的原生存档文件与目标主机上安装的操作系统版本匹配。

  3. 如果您的 Ansible 控制中没有 JBoss Web Server 归档文件的副本,则集合默认联系红帽客户门户网站来自动下载存档文件。要确保使用红帽客户门户网站成功联系,请设置 rhn_usernamerhn_password 变量来指定您的红帽服务帐户凭证。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    rhn_username: <client_ID>
    rhn_password: <client_secret>

    在上例中,将 &lt ;client_ID& gt ; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。

    注意

    默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果 Ansible 控制节点上已存在相应存档文件的副本,则集合不会再次下载这些存档文件。

    如果您希望手动下载存档文件,或者您已经以其他方式获取这些文件,则可以强制进行完全离线安装。有关强制离线安装的更多信息,请参阅启用 JBoss Web Server 产品补丁更新的自动化安装

  4. 如果您更改了 Ansible 控制节点上下载的存档文件的名称,请设置 zipfile_namejws_native_zipfile 变量,以指定您要安装的文件。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    zipfile_name: <application_server_file>
    jws_native_zipfile: <native_file>

    在前面的示例中,将 < application_server_file><native_file > 替换为适当的归档文件名。

    注意

    如果您没有更改文件名,则不需要设置 zipfile_namejws_native_zipfile 变量。JBoss Web 服务器集合使用 jws_version 变量的值自动确定默认的文件名。

  5. 将更改保存到 vars.yml 文件。

通过根据情况设置这些变量,您可以启用 JBoss Web Server 集合,以便在您随后运行 playbook 时在目标主机上自动安装基础产品版本。

3.1.2. 启用 JBoss Web 服务器补丁更新的自动安装

如果产品补丁更新适用于正在安装的 JBoss Web Server 版本,您也可以启用 JBoss Web Server 集合来从存档文件安装这些补丁更新。根据您的要求,您可以启用 JBoss Web Server 集合来安装最新的可用补丁或指定的补丁版本。您可以使用相同的步骤启用补丁更新的自动安装,无论是否要在基础版本同时安装这些更新。

JBoss Web 服务器集合要求您的 Ansible 控制节点上提供了适当存档文件的本地副本。如果您的系统中没有存档文件的副本,您可以设置变量来指定红帽服务帐户凭证,以允许从红帽客户门户网站下载文件。或者,您可以手动下载存档文件。

注意

补丁更新是累积的,这意味着每个补丁更新都自动包含可用于同一产品版本的任何早期补丁版本。例如,6.1.2 补丁更新包含 6.1.1 版本,6.1.3 补丁更新会包括 6.1.1 和 6.1.2 版本,以此类推。

重要

您不能使用 累积补丁更新来安装产品版本的基本版本(X.X.0)版本。例如,6.1.2 补丁会包含 6.1.1 版本,但不能安装基础 6.1.0 版本。在这种情况下,您必须确保同时或之前会安装适当产品版本(如 6.1.0)的基本版本。

先决条件

  • 您已安装了 JBoss Web 服务器集合
  • 如果要安装的补丁更新的副本已在您的系统上,则您已将这些存档文件复制到 Ansible 控制节点。
  • 如果您希望 JBoss Web 服务器集合从红帽客户门户网站自动下载存档文件,您已创建了一个红帽服务帐户。

    注意

    服务帐户允许您在不需要最终用户凭证或直接交互的情况下安全地自动连接和自动连接和验证服务或应用程序。要创建服务帐户,请登录 Red Hat Hybrid Cloud Console 中的 Service Accounts 页面,然后单击 Create service account

  • 如果您希望手动下载存档文件,请将适当的存档文件下载到 Ansible 控制节点。如需更多信息,请参阅 Red Hat JBoss Web Server 安装指南

    注意

    因为补丁更新是累积的,因此您只需要为要安装的补丁版本下载存档文件。您不需要下载任何以前的补丁更新。

    如果手动下载存档文件,则不需要在 Ansible 控制节点上提取这些文件。在这种情况下,JBoss Web 服务器集合会自动提取存档文件。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. jws_apply_patches 变量设置为 True

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_version: 6.1.0
    [...]
    jws_apply_patches: True
    注意

    确保将 jws_version 变量设置为适当的产品版本(如 6.1.0)的基础发行版本。

    JBoss Web 服务器集合配置为默认安装最新的补丁更新。集合联系红帽客户门户网站以确定要安装的正确补丁。

  3. 如果您希望集合安装指定的补丁版本,而不是最新的补丁更新,请将 jws_patch_version 变量设置为您要安装的补丁版本。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_apply_patches: True
    jws_patch_version: 6.1.2

    根据前面的示例,集合仅安装累积 6.1.2 补丁,即使后续补丁也可用。

  4. jws_apply_patches 变量设为 True 时,JBoss Web 服务器集合默认联系红帽客户门户网站,以检查是否有新的补丁更新。如果需要,集合还会下载补丁更新。要确保使用红帽客户门户网站成功联系,请设置 rhn_usernamerhn_password 变量来指定您的红帽服务帐户凭证。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    rhn_username: <client_ID>
    rhn_password: <client_secret>

    在上例中,将 &lt ;client_ID& gt ; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。

    注意

    默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果 Ansible 控制节点上已存在相应存档文件的副本,则集合不会再次下载这些存档文件。

    如果 jws_patch_version 变量设为特定的补丁版本,则集合将仅下载指定的补丁版本,即使后续补丁也可用。

    如果您希望手动下载存档文件,或者您已经以其他方式获取这些文件,则可以强制进行完全离线安装,如 第 5 步 所述。

  5. 如果要强制完全离线安装,并防止集合联系红帽客户门户网站,将 jws_offline_install 变量设置为 True

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_offline_install: True
    注意

    如果您的 Ansible 控制节点无法访问互联网,或者您希望集合以避免联系红帽客户门户网站以进行文件下载,则 jws_offline_install 变量很有用。在这种情况下,您必须将 jws_patch_version 变量设置为您要安装的补丁版本。

    确保您已将用于适当补丁更新的存档文件复制到 Ansible 控制节点。在这种情况下,请确保复制的原生存档文件与目标主机上安装的操作系统版本匹配。

    如果将 jws_offline_install 变量设置为 True,则集合不会尝试联系红帽客户门户网站,即使您还设置了 rhn_usernamerhn_password 变量来允许自动下载文件。

  6. 将更改保存到 vars.yml 文件。

通过根据情况设置这些变量,您可以启用 JBoss Web Server 集合,以便在您随后运行 playbook 时在目标主机上自动安装产品补丁更新。

3.2. 启用从 RPM 软件包自动安装 JBoss Web Server

您可以启用 JBoss Web Server 集合,以便在 RPM 软件包的每个目标主机上安装 Red Hat JBoss Web Server。在这种情况下,JBoss Web 服务器集合会自动直接从红帽获取 RPM 软件包。

注意

当您启用 RPM 安装方法时,JBoss Web Server 集合会为指定的 JBoss Web 服务器主版本(包括任何次要版本和补丁更新)安装最新的 RPM 软件包。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要指定要安装的 JBoss Web Server 版本,请将 jws_version 变量设置为适当的主要产品版本。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_version: 6.1.0
    注意

    在这种情况下,JBoss Web 服务器集合会检查指定的值中的第一个数字,以确定您要安装的主要版本。例如,如果您希望集合为 JBoss Web Server 6 安装最新的可用 RPM 软件包,您可以指定一个值 6.0.0。无论您指定的次版本和发行版本号是什么(例如 0.0),集合会为指定主版本的最新次版本和补丁版本安装软件包。

  3. 要从 RPM 软件包启用安装,请将 jws_install_method 变量设置为 rpm

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_install_method: rpm
  4. 将更改保存到 vars.yml 文件。

通过设置这些变量,您可以启用 JBoss Web Server 集合来获取并自动安装目标主机上指定产品版本的 RPM 软件包。

注意

如果您为 JBoss Web Server 6.1 启用 RPM 软件包,集合会在 /opt/rh/jws6/root/usr/share/tomcat 目录中安装 JBoss Web Server。如果要使用不同的安装目录,您可以在每个目标主机上手动创建指向 /opt/rh/jws6/root/usr/share/tomcat 的符号链接。

3.3. 确保在目标主机上安装 JDK

JBoss Web 服务器要求 Java Development Kit (JDK)已安装作为目标主机上的先决条件,以确保 JBoss Web 服务器成功运行。JDK 包括 Java 运行时环境(JRE)和 Java 虚拟机(JVM),这些环境必须在您要运行 JBoss Web 服务器的任何主机上可用。有关 JBoss Web 服务器支持的 JDK 版本的完整列表,请参阅 JBoss Web Server 6 支持的配置

默认情况下,JBoss Web 服务器集合不会自动安装 JDK,这基于您在目标主机上安装了受支持的 JDK。但是,为了方便起见,您可以将 JBoss Web Server 集合配置为在每个目标主机上自动安装受支持的 OpenJDK 版本。

在使用 JBoss Web 服务器集合时,请考虑以下安装 JDK 的指南:

  • 如果要在目标主机上安装受支持的红帽构建的 OpenJDK 版本,您可以将 jws_java_version 变量设置为适当的 JDK 版本(如 1117)。随后运行 playbook 时,JBoss Web Server 集合会在每个目标主机上安装指定的红帽构建的 OpenJDK 版本。
  • 如果要安装受支持的 IBM JDK 或 Oracle JDK 版本,则必须在每个目标主机上手动安装 JDK,也可以使用自己的 playbook 自动执行此过程。有关手动安装 IBM JDK 或 Oracle JDK 版本的更多信息,请参阅 Red Hat JBoss Web Server 安装指南。在这种情况下,您不需要设置变量。
  • 如果您已在目标主机上安装了受支持的 JDK,则不需要设置变量。
注意

如果要启用 JBoss Web Server 集合,以便在尚未安装受支持的 JDK 的目标主机上安装红帽构建的 OpenJDK,请使用以下步骤。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. jws_java_version 变量设置为您要安装的适当 OpenJDK 版本。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_java_version: 11

    根据上例,JBoss Web 服务器集合在运行 playbook 时,会自动在每个目标主机上安装红帽构建的 OpenJDK 11。

    注意

    或者,如果您希望 JBoss Web Server 集合安装红帽构建的 OpenJDK 版本 17,请将 jws_java_version 变量设置为 17

  3. 将更改保存到 vars.yml 文件。

3.4. 确保在目标主机上创建产品用户和组

JBoss Web 服务器要求产品用户帐户和用户组已在您的目标主机上创建为前提条件。默认情况下,JBoss Web 服务器集合通过在每个目标主机上自动创建 tomcat 用户帐户和一个 tomcat 组来处理此要求。但是,如果您希望 JBoss Web 服务器集合创建不同的用户帐户和组,您可以修改 JBoss Web Server 集合的行为以匹配您的设置要求。

产品用户帐户也被分配了 Tomcat 目录的所有权,以运行 Tomcat 服务。

注意

如果要启用 JBoss Web Server 集合来创建不同的用户帐户和组,请使用以下步骤,而不是 tomcat 默认值。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. jws_userjws_group 变量设置为您要创建的相应产品用户名和组名称。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_user: myuser
    jws_group: myuser

    根据前面的示例,JBoss Web 服务器集合会自动创建 myuser 用户帐户和组,而不是创建默认的 tomcat 用户帐户和组。

  3. 将更改保存到 vars.yml 文件。

3.5. 启用 JBoss Web 服务器与 systemd的自动化集成

您可以选择启用 JBoss Web Server 集合,将 JBoss Web Server 设置为系统守护进程可以管理的服务。默认情况下,JBoss Web 服务器集合没有配置为将 JBoss Web Server 与系统守护进程集成。如果您启用此功能,JBoss Web 服务器集合在每个目标主机上自动将 JBoss Web Server 设置为 jws6-tomcat 服务。但是,如果要使用不同的服务名称,您可以修改 JBoss Web Server 集合的行为以匹配您的设置要求。

当您将 JBoss Web Server 与系统守护进程集成时,系统守护进程可以在系统启动时自动启动 JBoss Web Server 服务。系统守护进程还提供启动、停止和检查产品状态的功能。默认系统守护进程是 systemd

注意

此配置任务是可选的,但推荐使用。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要启用与 systemd 集成,请将 jws_systemd_enabled 变量设置为 True

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_systemd_enabled: True
  3. 如果您希望 JBoss Web 服务器使用 jws6-tomcat 以外的服务名称,请将 jws_service_name 变量设置为适当的值。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_service_name: jws

    根据前面的示例,JBoss Web 服务器集合会在运行 playbook 时将产品设置为每个目标主机上的 jws 服务。

    注意

    如果您没有设置 jws_service_name 变量,JBoss Web 服务器集合会自动将产品设置为 jws6-tomcat 服务。

  4. 如果您没有启用红帽构建的 OpenJDK 自动安装,还要设置 jws_java_home 变量,以指定目标主机上安装的 JDK 的完整路径。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_java_home: <JAVA_HOME path>
    注意

    为确保与 systemd 成功集成,如果没有启用红帽构建的 OpenJDK 自动安装,您必须设置 jws_java_home 变量。

    如果您启用红帽构建的 OpenJDK 自动安装,则不需要这一步,如 确保目标主机上安装了 JDK 所述。

  5. 将更改保存到 vars.yml 文件。

3.6. 启用自动 JBoss Web 服务器配置任务

JBoss Web 服务器集合提供了一组全面的变量,以启用 JBoss Web 服务器安装的自动配置。默认情况下,JBoss Web 服务器集合将 JBoss Web 服务器配置为侦听端口 8080 上的非安全 HTTP 连接。

其他产品功能默认是禁用的:

  • 支持安全 HTTPS 连接
  • mod_cluster 支持将 HTTP 服务器请求负载平衡到 JBoss Web 服务器后端
  • 用于将敏感数据存储在加密的 Java 密钥存储中的密码库

要启用更广泛的产品功能,您可以定义变量来修改 JBoss Web 服务器集合的行为以匹配您的设置要求。

注意

以下小节只描述了 JBoss Web Server 集合可以执行的自动配置更新的子集。这些示例更新侧重于启用对 HTTPS 连接的支持、启用 mod_cluster 支持和启用密码库。

如需 JBoss Web 服务器集合提供的变量的完整列表,请参阅 Ansible Automation Hub jws 角色的信息页面。有关配置和使用 JBoss Web 服务器功能的更多信息,请参阅 Red Hat JBoss Web Server 文档页面

3.6.1. 在 JBoss Web 服务器中启用 HTTPS 支持的自动配置

您可以配置 JBoss Web 服务器,以通过 HTTPS 协议支持 Web 客户端和 Web 服务器之间的安全加密连接。

在使用 JBoss Web 服务器集合时,请考虑以下启用 HTTPS 支持的指南:

  • 如果要启用 HTTPS 支持,则必须在后续运行 playbook 前确保每个目标主机上存在 Java 密钥存储。JBoss Web 服务器集合不会自动提供或创建 Java 密钥存储。在这种情况下,您必须在目标主机上创建新密钥存储,或将现有密钥存储文件复制到每个目标主机,如以下流程的第 1 步 所述。
  • 要启用 HTTPS 支持,您可以将 jws_listen_https_enabled 变量设置为 True
  • 当您启用 HTTPS 支持时,JBoss Web 服务器集合会使用 Java 密钥存储的适当路径和密码设置更新每个目标主机上的 server.xml 文件。默认情况下,JBoss Web 服务器集合使用 /etc/ssl/keystore.jks 的值并分别配置 server.xml 文件中的这些路径和密码设置。但是,如果要使用不同的密钥存储路径或密钥存储密码,您可以修改 JBoss Web Server 集合的行为以匹配您的设置要求。

流程

  1. 如果要创建 Java 密钥存储,请执行以下步骤:

    1. 登录您要创建密钥存储的 目标主机

      注意

      确保已安装 JDK,并且目标主机上已设置了 JAVA_HOME 变量。

    2. 运行以下命令来创建密钥存储:

      Copy to Clipboard Toggle word wrap
      $JAVA_HOME/bin/keytool -genkeypair -alias tomcat -keyalg RSA -keystore <path_to_keystore>

      在前面的命令中,将 & lt;path_to_keystore > 替换为您要创建的密钥存储文件的完整路径。如果没有指定 the -keystore 选项,该命令会在一些默认位置创建 keystore 文件,具体取决于您安装的 JDK 版本。例如,如果您使用红帽构建的 OpenJDK,密钥存储的默认位置为 /etc/ssl/keystore.jks

      前面的命令生成密钥存储文件,其中包含一对公钥和私钥,以及用于服务器身份验证的单一自签名证书。密钥对和自签名证书存储在由 alias 选项标识的单个密钥存储条目中(如 tomcat)。

    3. keytool 命令提示您输入以下信息时,为您的设置输入适当的值:

      • Keystore password (默认情况下,changeit
      • 有关证书的一般信息
      • 证书的密钥密码(默认为密钥存储密码)
    注意

    或者,您也可以使用 Linux scp 命令在不同的主机之间复制现有的密钥存储文件,而不是创建新密钥存储文件。

  2. 要启用对 HTTPS 连接的支持,请执行以下步骤:

    1. Ansible 控制节点 上,打开 vars.yml 文件。
    2. jws_listen_https_enabled 变量设置为 True

      例如:

      Copy to Clipboard Toggle word wrap
      [...]
      jws_listen_https_enabled: True
    3. 如果每个目标主机上的 Java 密钥存储位于 /etc/ssl/keystore.jks 以外的路径中,请将 jws_listen_https_keystore_file 变量设置为适当的值。

      例如:

      Copy to Clipboard Toggle word wrap
      [...]
      jws_listen_https_keystore_file: <keystore_path>

      在前面的示例中,将 <keystore_path > 替换为每个目标主机上密钥存储文件的完整路径。

      注意

      如果您没有设置 jws_listen_https_keystore_file 变量,JBoss Web Server 集合会自动在 server.xml 文件中配置 certificateKeystoreFile 设置,其值为 /etc/ssl/keystore.jks

    4. 如果每个目标主机上的 Java 密钥存储使用 changeit 以外的密码,请将 jws_listen_https_keystore_password 变量设置为适当的值。

      例如:

      Copy to Clipboard Toggle word wrap
      [...]
      jws_listen_https_keystore_password: <keystore_password>

      在前面的示例中,将 & lt;keystore_password > 替换为每个目标主机上 Java 密钥存储的正确密码。

      注意

      如果您没有设置 jws_listen_https_keystore_password 变量,JBoss Web 服务器集合会自动在 server.xml 中使用 changeit 值配置 certificateKeystorePassword 设置。

    5. 将更改保存到 vars.yml 文件。

3.6.2. 在 JBoss Web 服务器中启用 mod_cluster 支持的自动配置

mod_cluster 连接器是一个减少配置,以及将 Apache HTTP 服务器请求负载平衡到 JBoss Web 服务器后端的智能解决方案。mod_cluster 连接器还提供实时负载平衡计算、应用生命周期控制、自动代理发现和多个协议支持等功能。要启用 mod_cluster 支持,您可以定义变量来启用 mod_cluster 侦听器,并为 mod_cluster 实例指定 IP 地址和端口值。

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要启用 mod_cluster 侦听器,请将 jws_modcluster_enabled 变量设置为 True

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_modcluster_enabled: True
  3. 要指定 mod_cluster 实例的 IP 地址和端口,请将 jws_modcluster_ipjws_modcluster_port 变量设置为适当的值。默认 IP 地址为 127.0.0.1。默认端口为 6666

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_modcluster_ip: <ip_address>
    jws_modcluster_port: <port>

    在前面的示例中,将 & lt;ip_address > 替换为目标主机上 mod_cluster 实例的适当绑定地址,并将 & lt;port > 替换为 mod_cluster 实例用于侦听传入请求的适当端口。

  4. 将更改保存到 vars.yml 文件。

有关使用 mod_cluster 的更多信息,请参阅 HTTP 连接器和负载平衡指南

3.6.3. 在 JBoss Web 服务器中启用密码库的自动配置

您可以使用 JBoss Web 服务器的密码库来屏蔽密码和其他敏感字符串,并将敏感信息存储在加密的 Java 密钥存储中。使用密码库时,您可以停止在 JBoss Web Server 配置文件中存储明文密码。JBoss Web 服务器可以使用密码库从密钥存储搜索密码和其他敏感字符串。要启用密码库,您可以设置一系列变量,用于指定密码库使用的各种文件和配置设置。

先决条件

流程

  1. 在 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要指定到 vault.keystoreVAULT.dat 的路径以及您创建的 vault.properties 文件的路径,请将以下变量设置为适当的值。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_vault_name: ./vault_files/vault.keystore
    jws_vault_data: ./vault_files/VAULT.dat
    jws_vault_properties: ./vault_files/vault.properties

在前面的示例中,确保指定您配置为先决条件步骤的一部分的正确路径。

  1. 要启用密码库功能,请将 jws_tomcat_vault_enabled 变量设置为 True

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_tomcat_vault_enabled: True
  2. 要指定您为密码库配置的密钥存储别名、密钥存储密码、迭代计数和 salt 值,请将以下变量设置为适当的值。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
    jws_tomcat_vault_alias: <keystore_alias>
    jws_tomcat_vault_storepass: <keystore_password>
    jws_tomcat_vault_iteration: <iteration_count>
    jws_tomcat_vault_salt: <salt>

    在前面的示例中,确保指定您配置为先决条件步骤一部分的适当值。

  3. 将更改保存到 vars.yml 文件。

有关使用密码库的更多信息,请参阅 Red Hat JBoss Web Server 安装指南

3.6.4. JBoss Web 服务器的 SELinux 策略

您可以使用 Security-Enhanced Linux (SELinux)策略来定义 JBoss Web 服务器的访问控制。这些策略是一组规则,用于决定产品的访问权限。SELinux 策略功能默认为启用。

当从存档文件安装 JBoss Web 服务器时,SELinux 策略功能还需要同时安装指定产品版本的原生存档文件。默认情况下,JBoss Web 服务器集合配置为安装与目标主机上的操作系统版本匹配的原生存档文件。

3.7. 在目标主机上启用 JBoss Web 服务器应用程序的自动部署

您还可以通过向 playbook 添加自定义任务,在您的目标 JBoss Web Server 主机上自动部署 Web 应用程序。这要求您将应用 .war 文件放在适当的目录中。

如果要在 JBoss Web 服务器已在运行时部署新的或更新的应用程序,JBoss Web 服务器集合提供了一个处理程序,可在部署应用程序时重新启动 Web 服务器。

注意

以下流程假设您已创建了自定义 playbook。

先决条件

流程

  1. 在 Ansible 控制节点上,打开您的自定义 playbook。
  2. 在 playbook 的 tasks: 部分中,添加一个任务来部署适当的 Web 应用。

    例如:

    Copy to Clipboard Toggle word wrap
    [...]
      tasks:
        [...]
        - name: "Deploy demo webapp"
          ansible.builtin.get_url:
            url: 'https://<url_path>/<app_name>.war'
            dest: "{{ jws_home }}/webapps/<app_name>.war"
    [...]

    在前面的示例中,将 & lt;url_path > 和 <app_name > 替换为您要部署的应用程序的正确路径和 .war 文件名。

  3. 将您的更改保存到 playbook。

第 4 章 运行 playbook

在定义了变量设置后,您可以运行 playbook 以开始自动安装过程。您可以在控制节点上使用 ansible-playbook 命令或使用 Red Hat Ansible 自动化控制器 来运行 playbook。然后,JBoss Web 服务器集合会自动处理所有安装和部署任务。

注意

以下流程假设您已创建并更新了自定义 playbook。

先决条件

  • 您已 启用了 JBoss Web Server 的自动化部署
  • 您熟悉一般 Ansible 概念并创建 Ansible playbook。有关更多信息,请参阅 Ansible 文档
  • 您的 playbook 包含到您定义变量的位置的适当链接。

    例如:

    Copy to Clipboard Toggle word wrap
    ---
    [...]
      vars_files:
        - <path_to_vars_file>/vars.yml
    [...]

    前面的示例假定您已在 vars.yml 文件中定义变量。将 <path_to_vars_file > 替换为适当的路径。

  • 您的 playbook 还指定了 redhat.jws.jws 角色。

    例如:

    Copy to Clipboard Toggle word wrap
    ---
    [...]
      roles:
        - redhat.jws.jws
    [...]
    注意

    redhat.jws.jws 角色已预先配置了 become: true 指令,它会激活用户特权升级,以便在目标主机上执行任何需要 root 特权的自动任务。

  • Red Hat Enterprise Linux (RHEL)版本 8 或 9 已安装在目标主机上。

流程

  • 执行以下步骤:

    • 在 Ansible 控制节点上输入以下命令:

      Copy to Clipboard Toggle word wrap
      $ ansible-playbook <playbook_name>.yml

      在前面的命令中,将 &lt ;playbook_name > 替换为您分配给您的 playbook 的名称。前面的命令假定您的用户帐户支持免密码身份验证。

      注意

      如果您的用户帐户需要密码身份验证,您可以使用 --ask-sudo-pass 选项运行前面的命令,并在提示时指定所需的密码。例如:

      $ ansible-playbook & lt;playbook_name& gt; .yml --ask-sudo-pass

    • 使用 Red Hat Ansible 自动化控制器来运行您的 playbook。有关自动化控制器入门的更多信息,请参阅 Red Hat Ansible Automation Platform 文档页面。

第 5 章 验证部署

成功运行 playbook 后,JBoss Web Server 集合会在您的目标主机上自动安装 Red Hat JBoss Web Server。如果您已将自定义任务添加到 playbook 中,Ansible 也会根据需要在目标主机上自动部署任何 JBoss Web Server 应用程序。您可以选择在目标主机中使用 systemctl 命令检查 JBoss Web Server 的状态,或者在远程主机上使用 curl 命令。

先决条件

流程

  1. 可选:在 JBoss Web Server 主机上以 root 用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # systemctl status <service_name>

    在前面的命令中,将 &lt ;service_name& gt; 替换为您的 JBoss Web Server 安装的正确服务名称。默认服务名称是 tomcat。有关设置服务名称的更多信息,请参阅自动将 JBoss Web Server 与 systemd集成

    注意

    此步骤要求 JBoss Web 服务器与 systemd 集成。

  2. 可选:在 远程主机中,以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # curl http://<target_host>:8080/

    在前面的命令中,将 & lt;target_host > 替换为您要访问的 JBoss Web Server 主机的 IP 地址或主机名。前面的命令假定可通过默认端口 8080 访问 JBoss Web 服务器,并且目标防火墙和网络允许远程访问端口。

注意

JBoss Web 服务器集合还包含 playbooks 文件夹中的 validate.yml playbook。如果您希望 JBoss Web 服务器集合执行自动化验证检查,您可以运行 validate.yml playbook。如需有关 validate.yml playbook 的更多信息,请参阅 Ansible Automation Hub 中的 jws_validation 角色的 信息页面

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.