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


Red Hat JBoss Web Server 5.7

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

Red Hat Customer Content Services

摘要

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

前言

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

注意

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

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

要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。

流程

  1. 单击以下链接 以创建 ticket
  2. Summary 中输入问题的简短描述。
  3. Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
  4. Submit 创建问题,并将问题路由到适当的文档团队。

使开源包含更多

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

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 Automation Hub 下载并安装 JBoss Web Server 集合。JBoss Web Server 集合在 Ansible Automation Hub 中命名为 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 控制节点上输入以下命令:

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

    如果前面的命令生成 Failed to find collection redhat.jws:* 错误消息,请确定您正确更新了 ansible.cfg 文件以使用 Ansible Automation hub,如 Getting started with Automation hub 所述。

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

    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
    Copy to Clipboard Toggle word wrap

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

验证

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

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

    上述命令显示安装的集合列表。例如:

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

如上例所示,当您安装 redhat.jws 集合时,ansible.posixredhat.runtimes_common 集合的最新版本也会在 Ansible 控制节点上自动下载并安装。redhat.runtimes_common 集合提供了一组标准实用程序,以支持各种 Red Hat Runtimes 产品(如 JBoss Web Server)的自动化部署。

注意

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

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

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

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

注意

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

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

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

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

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

您可以启用 JBoss Web Server 集合,从产品归档文件安装指定 JBoss Web Server 版本的基本版本。基础版本是 特定产品版本的初始发行版本(例如,5.7.0 是版本 5.7 的基本版本)。

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

前提条件

  • 已安装 JBoss Web 服务器集合
  • 如果系统上已经有 JBoss Web Server 归档文件的副本,您已将这些存档文件复制到 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 变量设置为适当的基本发行版本。

    例如:

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

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

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

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

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

    例如:

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

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

    注意

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

    如果您希望手动下载存档文件,或者已以某种方式获得这些文件,您可以强制完全离线安装。有关强制离线安装的更多信息,请参阅启用 JBoss Web 服务器产品补丁更新的自动安装

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

    例如:

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

    在前面的示例中,将 < 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 服务器版本,您也可以启用 JBoss Web Server 集合从存档文件安装这些补丁更新。根据您的要求,您可以启用 JBoss Web Server 集合来安装最新可用的补丁或指定的补丁版本。您可以使用相同的步骤启用补丁更新的自动安装,无论您要与基本发行版本同时安装这些更新。

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

注意

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

重要

您不能使用 累积补丁更新来安装产品版本的基础(X.X.0)版本。例如,5.7.2 补丁会包括 5.7.1 版本,但无法安装基本 5.7.0 版本。在这种情况下,您必须确保适当产品版本的基本版本(例如 5.7.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

    例如:

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

    确保将 jws_version 变量设置为相应产品版本(如 5.7.0)的基础版本。

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

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

    例如:

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

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

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

    例如:

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

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

    注意

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

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

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

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

    例如:

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

    如果您的 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 变量设置为适当的主要产品版本。

    例如:

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

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

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

    例如:

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

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

注意

如果您为 JBoss Web Server 5.7 启用 RPM 软件包安装,则集合会在 /opt/rh/jws5/root/usr/share/tomcat 目录中安装 JBoss Web Server。如果要使用不同的安装目录,您可以手动在每个目标主机上创建指向 /opt/rh/jws5/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 5 支持的配置

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

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

  • 如果要在目标主机上安装受支持的 OpenJDK 版本,您可以将 jws_java_version 变量设置为适当的 JDK 版本(如 1.8.01117)。在随后运行 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 版本。

    例如:

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

    根据上例,JBoss Web Server 集合在运行 playbook 时会在每个目标主机上安装红帽构建的 OpenJDK 8。

    注意

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

    如果您的目标主机在 Red Hat Enterprise Linux 9 上运行,则唯一支持的 OpenJDK 版本是 Red Hat build of OpenJDK 11 和 Red Hat build of OpenJDK 17。

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

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

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

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

注意

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

流程

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

    例如:

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

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

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

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

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

注意

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

流程

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

    例如:

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

    例如:

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

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

    注意

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

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

    例如:

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

    为确保与 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 Server 集合的行为,以匹配您的设置要求。

注意

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

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

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

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

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

流程

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

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

      注意

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

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

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

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

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

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

      • 密钥存储密码(默认为,更改
      • 有关证书的一般信息
      • 证书的密钥密码(默认为 密钥存储密码)
    注意

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

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

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

      例如:

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

      例如:

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

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

      注意

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

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

      例如:

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

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

      注意

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

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

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

流程

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

    例如:

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

    例如:

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

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

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

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

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

前提条件

流程

  1. 在您的 Ansible 控制节点上,打开 vars.yml 文件。
  2. 要将 vault.keystoreVAULT.datvault.properties 文件的路径指定为预备步骤的一部分,请将以下变量设置为适当的值:

    例如:

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

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

  1. 要启用 vault 功能,将 jws_tomcat_vault_enabled 变量设置为 True

    例如:

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

    例如:

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

    在前面的示例中,确保指定您配置为预备步骤中的相应值。

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

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

3.6.4. JBoss Web 服务器的 SELinux 策略

您可以使用安全增强型 Linux (SELinux)策略为 JBoss Web 服务器定义访问控制。这些策略是一组决定对产品的访问权限的规则。SELinux 策略功能默认是启用的。

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

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

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

注意

以下步骤假定您已创建了自定义 playbook。

前提条件

流程

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

    例如:

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

    在前面的示例中,将 & 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 包含到您定义变量的位置的适当链接。

    例如:

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

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

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

    例如:

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

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

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

流程

  • 执行以下步骤之一:

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

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

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

      注意

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

      $ ansible-playbook <playbook_name>.yml --ask-sudo-pass

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

第 5 章 验证部署

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

前提条件

流程

  1. 可选:在 JBoss Web 服务器主机上,以 root 用户身份输入以下命令:

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

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

    注意

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

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

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

    在前面的命令中,将 & 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