使用 Red Hat Ansible 认证的内容集合安装 JBoss Web Server
使用 Red Hat Ansible 认证的内容集合自动化部署 JBoss Web Server 5.7
摘要
前言 复制链接链接已复制到粘贴板!
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 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 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 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
$ ansible-galaxy collection install redhat.jwsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果前面的命令生成
Failed to find collection redhat.jws:*错误消息,请确定您正确更新了ansible.cfg文件以使用 Ansible Automation hub,如 Getting started with Automation hub 所述。前面的命令会产生以下输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 brevity,前面的示例使用 ellipses 来表示忽略的文本。在前面的输出中,<
;version> 代表安装的redhat.jws、redhat.runtimes_common、ansible.posix集合的最新可用版本。
验证
在 Ansible 控制节点上输入以下命令:
ansible-galaxy collection list
$ ansible-galaxy collection listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上述命令显示安装的集合列表。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如上例所示,当您安装 redhat.jws 集合时,ansible.posix 和 redhat.runtimes_common 集合的最新版本也会在 Ansible 控制节点上自动下载并安装。redhat.runtimes_common 集合提供了一组标准实用程序,以支持各种 Red Hat Runtimes 产品(如 JBoss Web Server)的自动化部署。
如果您的 Ansible 控制节点上已存在最新版本的 ansible.posix 和 redhat.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 集合来自动下载存档文件。
3.1.1. 启用 JBoss Web 服务器基础版本的自动安装 复制链接链接已复制到粘贴板!
您可以启用 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 服务器集合会自动提取存档文件。
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 要指定要安装的 JBoss Web Server 版本,请将
jws_version变量设置为适当的基本发行版本。例如:
[...] jws_version: 5.7.0
[...] jws_version: 5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保您为
jws_version变量指定的值与您要安装的产品存档文件的版本匹配。例如,要为 JBoss Web Server 5.7 安装存档文件,请指定值5.7.0。默认情况下,JBoss Web 服务器集合配置为同时安装主应用服务器存档和您指定的产品版本的原生存档。如果将
jws_native变量设置为False,JBoss Web Server 集合无法安装原生存档,这会导致需要安装原生存档文件的功能(如 SELinux 策略)出现问题。如果您没有指定自动文件下载的凭证,如 第 3 步 所述,请确保已将指定产品版本的存档文件复制到 Ansible 控制节点。在这种情况下,请确保复制的原生存档文件与目标主机上安装的操作系统版本匹配。
如果 Ansible 控制上不存在 JBoss Web Server 归档文件的副本,则集合默认联系红帽客户门户网站来自动下载存档文件。为确保与红帽客户门户网站成功联系,请设置
rhn_username和rhn_password变量,以指定您的红帽服务帐户凭证。例如:
[...] rhn_username: <client_ID> rhn_password: <client_secret>
[...] rhn_username: <client_ID> rhn_password: <client_secret>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 < ;client_ID & gt; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。
注意默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果您的 Ansible 控制节点上已存在适当存档文件的副本,则集合不会再次下载这些存档文件。
如果您希望手动下载存档文件,或者已以某种方式获得这些文件,您可以强制完全离线安装。有关强制离线安装的更多信息,请参阅启用 JBoss Web 服务器产品补丁更新的自动安装。
如果您更改了 Ansible 控制节点上下载的存档文件的名称,请设置
zipfile_name和jws_native_zipfile变量,以指定您要安装的文件。例如:
[...] zipfile_name: <application_server_file> jws_native_zipfile: <native_file>
[...] zipfile_name: <application_server_file> jws_native_zipfile: <native_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 < application_server_file> 和 <native_file > 替换为适当的存档文件名。
注意如果您没有更改文件名,则不需要设置
zipfile_name和jws_native_zipfile变量。JBoss Web 服务器集合使用jws_version变量的值自动决定默认文件名。-
将您的更改保存到
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 服务器集合会自动提取存档文件。
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 将
jws_apply_patches变量设置为True。例如:
[...] jws_version: 5.7.0 [...] jws_apply_patches: True
[...] jws_version: 5.7.0 [...] jws_apply_patches: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保将
jws_version变量设置为相应产品版本(如5.7.0)的基础版本。JBoss Web 服务器集合被配置为默认安装最新的补丁更新。该集合与红帽客户门户网站联系,以确定要安装的正确补丁。
如果您希望集合安装指定的补丁版本而不是最新的补丁更新,请将
jws_patch_version变量设置为您要安装的补丁发行版本。例如:
[...] jws_apply_patches: True jws_patch_version: 5.7.2
[...] jws_apply_patches: True jws_patch_version: 5.7.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据前面的示例,集合只会安装累积的 5.7.2 补丁,即使后续补丁也可用。
当
jws_apply_patches变量设为True时,JBoss Web Server 集合默认联系红帽客户门户网站,以检查新的补丁更新是否可用。如有必要,集合还会下载补丁更新。为确保与红帽客户门户网站成功联系,请设置rhn_username和rhn_password变量,以指定您的红帽服务帐户凭证。例如:
[...] rhn_username: <client_ID> rhn_password: <client_secret>
[...] rhn_username: <client_ID> rhn_password: <client_secret>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 < ;client_ID & gt; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。
注意默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果您的 Ansible 控制节点上已存在适当存档文件的副本,则集合不会再次下载这些存档文件。
如果将
jws_patch_version变量设置为特定的补丁版本,则集合只会下载指定的补丁版本,即使后续补丁也可用。如果您希望手动下载存档文件,或者已经以某种方式获得这些文件,您可以强制完全离线安装,如 第 5 步 所述。
如果要强制完全离线安装,并防止集合联系红帽客户门户网站,请将
jws_offline_install变量设置为True。例如:
[...] jws_offline_install: True
[...] jws_offline_install: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的 Ansible 控制节点无法访问互联网,或者您希望集合避免联系红帽客户门户网站以进行文件下载,则
jws_offline_install变量很有用。在这种情况下,您必须将jws_patch_version变量设置为要安装的补丁发行版本。确保您已将用于适当补丁更新的存档文件复制到 Ansible 控制节点。在这种情况下,请确保复制的原生存档文件与目标主机上安装的操作系统版本匹配。
如果将
jws_offline_install变量设置为True,则集合不会尝试联系红帽客户门户网站,即使您也设置了rhn_username和rhn_password变量,以允许自动下载文件。-
将您的更改保存到
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 软件包。
前提条件
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 要指定要安装的 JBoss Web Server 版本,请将
jws_version变量设置为适当的主要产品版本。例如:
[...] jws_version: 5.7.0
[...] jws_version: 5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在这种情况下,JBoss Web 服务器集合会检查指定的值中的第一个数字,以确定您要安装的主要产品版本。例如,如果您希望集合为 JBoss Web Server 5 安装最新的可用 RPM 软件包,您可以指定一个值
5.0.0。无论您指定的次版本和发行号(例如0.0),集合都会为指定主版本的最新次版本和补丁版本安装软件包。要从 RPM 软件包启用安装,请将
jws_install_method变量设置为rpm。例如:
[...] jws_install_method: rpm
[...] jws_install_method: rpmCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将您的更改保存到
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.0、11或17)。在随后运行 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,请使用以下步骤。
前提条件
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 将
jws_java_version变量设置为您要安装的适当 OpenJDK 版本。例如:
[...] jws_java_version: 1.8.0
[...] jws_java_version: 1.8.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据上例,JBoss Web Server 集合在运行 playbook 时会在每个目标主机上安装红帽构建的 OpenJDK 8。
注意或者,如果您希望 JBoss Web Server 集合安装红帽构建的 OpenJDK 版本 11 或 17,请根据情况将
jws_java_version变量设置为11或17的值。如果您的目标主机在 Red Hat Enterprise Linux 9 上运行,则唯一支持的 OpenJDK 版本是 Red Hat build of OpenJDK 11 和 Red Hat build of OpenJDK 17。
-
将您的更改保存到
vars.yml文件。
3.4. 确保在目标主机上创建了产品用户和组 复制链接链接已复制到粘贴板!
JBoss Web 服务器要求产品用户帐户和用户组已在您的目标主机上作为前提条件创建。默认情况下,JBoss Web 服务器集合通过在每个目标主机上创建一个 tomcat 用户帐户和一个 tomcat 组来处理这个要求。但是,如果您希望 JBoss Web 服务器集合创建不同的用户帐户和组,您可以修改 JBoss Web Server 集合的行为,以匹配您的设置要求。
产品用户帐户也被分配了 Tomcat 目录的所有权,以运行 Tomcat 服务。
如果要启用 JBoss Web 服务器集合来创建不同的用户帐户和组,而不是 tomcat 默认值,请使用以下步骤。
前提条件
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 将
jws_user和jws_group变量设置为您要创建的相应产品用户名和组名。例如:
[...] jws_user: myuser jws_group: myuser
[...] jws_user: myuser jws_group: myuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 根据上例,JBoss Web 服务器集合自动创建
myuser用户帐户和组,而不是创建默认的tomcat用户帐户和组。-
将您的更改保存到
vars.yml文件。
3.5. 启用 JBoss Web 服务器与 systemd的自动化集成 复制链接链接已复制到粘贴板!
您可以选择启用 JBoss Web 服务器集合将 JBoss Web 服务器设置为系统守护进程可以管理的服务。默认情况下,JBoss Web 服务器集合没有配置为将 JBoss Web 服务器与系统守护进程集成。如果您启用此功能,JBoss Web 服务器集合会在每个目标主机上自动将 JBoss Web 服务器设置为 jws5-tomcat 服务。但是,如果要使用不同的服务名称,您可以修改 JBoss Web Server 集合的行为,以匹配您的设置要求。
当您将 JBoss Web 服务器与系统守护进程集成时,系统守护进程可以在系统启动时自动启动 JBoss Web 服务器服务。系统守护进程还提供启动、停止和检查产品状态的功能。默认系统守护进程是 systemd。
此配置任务是可选的,但推荐使用。
前提条件
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 要启用与
systemd集成,将jws_systemd_enabled变量设置为True。例如:
[...] jws_systemd_enabled: True
[...] jws_systemd_enabled: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您希望 JBoss Web 服务器使用
jws5-tomcat以外的服务名称,请将jws_service_name变量设置为适当的值。例如:
[...] jws_service_name: jws
[...] jws_service_name: jwsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 根据上例,JBoss Web 服务器集合在运行 playbook 时,将产品设置为每个目标主机上的
jws服务。注意如果您没有设置
jws_service_name变量,JBoss Web 服务器集合会自动将该产品设置为jws5-tomcat服务。如果您没有启用红帽构建的 OpenJDK 自动安装,还要设置
jws_java_home变量来指定目标主机上安装的 JDK 的完整路径。例如:
[...] jws_java_home: <JAVA_HOME path>
[...] jws_java_home: <JAVA_HOME path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意为确保与
systemd成功集成,如果没有启用红帽构建的 OpenJDK 自动安装,您必须设置jws_java_home变量。如果您启用红帽构建的 OpenJDK 自动安装,则不需要这一步,如 确保目标主机上安装 JDK 所述。
-
将您的更改保存到
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 文档。
3.6.1. 在 JBoss Web 服务器中启用 HTTPS 支持自动配置 复制链接链接已复制到粘贴板!
您可以配置 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.jks和changeit的值在server.xml文件中配置这些路径和密码设置。但是,如果要使用不同的密钥存储路径或密钥存储密码,您可以修改 JBoss Web Server 集合的行为以匹配您的设置要求。
前提条件
流程
如果要创建 Java 密钥存储,请执行以下步骤:
登录您要创建密钥存储的目标主机。
注意确保已安装 JDK,并且目标主机上已设置了
JAVA_HOME变量。运行以下命令来创建密钥存储:
$JAVA_HOME/bin/keytool -genkeypair -alias tomcat -keyalg RSA -keystore <path_to_keystore>
$JAVA_HOME/bin/keytool -genkeypair -alias tomcat -keyalg RSA -keystore <path_to_keystore>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的命令中,将 & lt;path_to_keystore > 替换为您要创建的密钥存储文件的完整路径。如果没有指定
-keystore选项,该命令会在一些默认位置创建密钥存储文件,该文件取决于您安装的 JDK 的版本。例如,如果您使用红帽构建的 OpenJDK,密钥存储的默认位置为/etc/ssl/keystore.jks。前面的 命令生成密钥存储文件,其中包含一对公钥和用于服务器身份验证的单一自签名证书。密钥对和自签名证书存储在单一密钥存储条目中,由
-alias选项(如tomcat)标识。当
keytool命令提示您输入以下信息时,为设置输入适当的值:-
密钥存储密码(默认为,更改
它) - 有关证书的一般信息
- 证书的密钥密码(默认为 密钥存储密码)
-
密钥存储密码(默认为,更改
注意另外,您可以使用 Linux
scp命令在不同主机之间复制现有的密钥存储文件,而不是创建新的密钥存储。要启用 HTTPS 连接支持,请执行以下步骤:
-
在 Ansible 控制节点 上,打开
vars.yml文件。 将
jws_listen_https_enabled变量设置为True。例如:
[...] jws_listen_https_enabled: True
[...] jws_listen_https_enabled: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果每个目标主机上的 Java 密钥存储位于
/etc/ssl/keystore.jks以外的路径中,请将jws_listen_https_keystore_file变量设置为适当的值。例如:
[...] jws_listen_https_keystore_file: <keystore_path>
[...] jws_listen_https_keystore_file: <keystore_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 <keystore_path > 替换为每个目标主机上的密钥存储文件的完整路径。
注意如果您没有设置
jws_listen_https_keystore_file变量,JBoss Web 服务器集合会在 server.xml 文件中自动配置server.xml文件中的certificateKeystoreFile设置,值为/etc/ssl/keystore.jks。如果每个目标主机上的 Java 密钥存储都使用
changeit以外的密码,请将jws_listen_https_keystore_password变量设置为适当的值。例如:
[...] jws_listen_https_keystore_password: <keystore_password>
[...] jws_listen_https_keystore_password: <keystore_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 & lt;keystore_password > 替换为每个目标主机上 Java 密钥存储的正确密码。
注意如果您没有设置
jws_listen_https_keystore_password变量,则 JBoss Web 服务器集合会在 server.xml 中自动配置server.xml中的certificateKeystorePassword设置,值为changeit。-
将您的更改保存到
vars.yml文件。
-
在 Ansible 控制节点 上,打开
3.6.2. 在 JBoss Web 服务器中启用 mod_cluster 支持自动配置 复制链接链接已复制到粘贴板!
mod_cluster 连接器是减少配置和智能解决方案,用于向 JBoss Web 服务器后端负载平衡 Apache HTTP 服务器请求。mod_cluster 连接器还提供诸如实时负载平衡计算、应用程序生命周期管理、自动发现和多种协议支持等功能。要启用 mod_cluster 支持,您可以定义变量来启用 mod_cluster 侦听器,并为 mod_cluster 实例指定 IP 地址和端口值。
前提条件
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 要启用
mod_cluster侦听器,请将jws_modcluster_enabled变量设置为True。例如:
[...] jws_modcluster_enabled: True
[...] jws_modcluster_enabled: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要指定
mod_cluster实例的 IP 地址和端口,请将jws_modcluster_ip和jws_modcluster_port变量设置为适当的值。默认 IP 地址为127.0.0.1。默认端口为6666。例如:
[...] jws_modcluster_ip: <ip_address> jws_modcluster_port: <port>
[...] jws_modcluster_ip: <ip_address> jws_modcluster_port: <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 & lt;ip_address > 替换为目标主机上的
mod_cluster实例的适当绑定地址,并将 <port > 替换为mod_cluster实例用于侦听传入请求的适当端口。-
将您的更改保存到
vars.yml文件。
有关使用 mod_cluster 的更多信息,请参阅 HTTP 连接器和负载平衡指南。
3.6.3. 在 JBoss Web 服务器中启用密码库自动配置 复制链接链接已复制到粘贴板!
您可以使用 JBoss Web 服务器的密码库来屏蔽密码和其他敏感字符串,并在加密的 Java 密钥存储中存储敏感信息。使用密码库时,您可以在 JBoss Web 服务器配置文件中停止存储明文密码。JBoss Web 服务器可以使用密码库搜索来自密钥存储的密码和其他敏感字符串。要启用密码库,您可以设置一系列变量,以指定密码库使用的各种文件和配置设置。
前提条件
- 已安装 JBoss Web 服务器集合。
-
您已创建了所需的
vault.keystore、VAULT.dat和vault.properties文件。有关创建这些文件的更多信息,请参阅 Red Hat JBoss Web Server 安装指南。
流程
-
在您的 Ansible 控制节点上,打开
vars.yml文件。 要将
vault.keystore、VAULT.dat和vault.properties文件的路径指定为预备步骤的一部分,请将以下变量设置为适当的值:例如:
[...] jws_vault_name: ./vault_files/vault.keystore jws_vault_data: ./vault_files/VAULT.dat jws_vault_properties: ./vault_files/vault.properties
[...] jws_vault_name: ./vault_files/vault.keystore jws_vault_data: ./vault_files/VAULT.dat jws_vault_properties: ./vault_files/vault.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在前面的示例中,请确保指定您配置为先决条件步骤中的正确路径。
要启用 vault 功能,将
jws_tomcat_vault_enabled变量设置为True。例如:
[...] jws_tomcat_vault_enabled: True
[...] jws_tomcat_vault_enabled: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要指定密钥存储别名、密钥存储密码、迭代数和您为密码库配置的 salt 值,请将以下变量设置为相应的值:
例如:
[...] jws_tomcat_vault_alias: <keystore_alias> jws_tomcat_vault_storepass: <keystore_password> jws_tomcat_vault_iteration: <iteration_count> jws_tomcat_vault_salt: <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 Copied! Toggle word wrap Toggle overflow 在前面的示例中,确保指定您配置为预备步骤中的相应值。
-
将您的更改保存到
vars.yml文件。
有关使用密码库的更多信息,请参阅 Red Hat JBoss Web Server 安装指南。
3.6.4. JBoss Web 服务器的 SELinux 策略 复制链接链接已复制到粘贴板!
您可以使用安全增强型 Linux (SELinux)策略为 JBoss Web 服务器定义访问控制。这些策略是一组决定对产品的访问权限的规则。SELinux 策略功能默认是启用的。
当从存档文件安装 JBoss Web 服务器时,SELinux 策略功能还需要同时安装指定产品版本的原生存档文件。默认情况下,JBoss Web 服务器集合配置为安装与目标主机上的操作系统版本匹配的原生存档文件。
3.7. 在目标主机上启用 JBoss Web 服务器应用程序的自动化部署 复制链接链接已复制到粘贴板!
您还可以通过向 playbook 添加自定义任务,在目标 JBoss Web 服务器主机上自动部署 Web 应用程序。这要求您将 application .war 文件放在适当的目录中。
如果要在 JBoss Web 服务器已在运行时部署新的或更新的应用程序,JBoss Web 服务器集合提供了在部署应用程序时重新启动 Web 服务器的处理程序。
以下步骤假定您已创建了自定义 playbook。
前提条件
- 已安装 JBoss Web 服务器集合。
- 您对一般的 Ansible 概念并创建 Ansible playbook 来说很热。如需更多信息,请参阅 Ansible 文档。
流程
- 在您的 Ansible 控制节点上,打开您的自定义 playbook。
在 playbook 的
tasks:部分中,添加一个任务来部署适当的 Web 应用。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将 & lt;url_path > 和 <app_name > 替换为您要部署的应用程序的正确路径和
.war文件名。- 将您的更改保存到 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 [...]--- [...] vars_files: - <path_to_vars_file>/vars.yml [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的示例假定您已在
vars.yml文件中定义了变量。将 <path_to_vars_file > 替换为适当的路径。您的 playbook 还指定了
redhat.jws.jws角色。例如:
--- [...] roles: - redhat.jws.jws [...]--- [...] roles: - redhat.jws.jws [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意redhat.jws.jws角色已预先配置了become: true指令,它会激活用户特权升级,以便在目标主机上执行任何需要 root 特权的自动任务。- Red Hat Enterprise Linux (RHEL)版本 8 或 9 已安装在您的目标主机上。
流程
执行以下步骤之一:
在 Ansible 控制节点上输入以下命令:
ansible-playbook <playbook_name>.yml
$ ansible-playbook <playbook_name>.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的命令中,将 < ;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 服务器的状态。
前提条件
- 您已 运行 playbook。
流程
可选:在 JBoss Web 服务器主机上,以 root 用户身份输入以下命令:
systemctl status <service_name>
# systemctl status <service_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的命令中,将 < ;service_name& gt; 替换为 JBoss Web Server 安装的正确服务名称。默认服务名称为
tomcat。有关设置服务名称的更多信息,请参阅 使用systemd自动集成 JBoss Web 服务器。注意此步骤要求 JBoss Web 服务器与
systemd集成。可选: 在 远程主机 中,以 root 用户身份输入以下命令:
curl http://<target_host>:8080/
# curl http://<target_host>:8080/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的命令中,将 & 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 角色的 信息页面。