使用 Red Hat Ansible 认证的内容集合安装 JBoss Web Server
使用 Red Hat Ansible 认证的内容集合自动化部署 JBoss Web Server 6.1
摘要
前言
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 帐户,系统会提示您创建一个帐户。
流程
- 单击以下链接 来创建 ticket。
- 在 Summary 中输入有关此问题的简单描述。
- 在描述中提供问题或增强功能的详细描述。请包括有问题的文档 URL。
- 点 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 Copied! Toggle word wrap Toggle overflow ansible-galaxy collection install redhat.jws
$ ansible-galaxy collection install redhat.jws
注意如果前面的命令生成
Failed to find collection redhat.jws:*
错误消息,请确保正确更新了ansible.cfg
文件以使用 Ansible Automation hub,如 开始使用自动化中心 所述。前面的命令会产生以下输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 来表示忽略的文本。在前面的输出中,<
;version&
gt; 代表安装的redhat.jws
、redhat.runtimes_common
、ansible.posix
集合的最新可用版本。
验证
在 Ansible 控制节点上输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-galaxy collection list
$ ansible-galaxy collection list
前面的命令显示安装的集合列表。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Collection Version -------------------------- ------- ansible.posix <version> redhat.jws <version> redhat.runtimes_common <version> ...
Collection Version -------------------------- ------- ansible.posix <version> redhat.jws <version> redhat.runtimes_common <version> ...
如上例所示,当安装 redhat.jws
集合时,ansible.posix
和 redhat.runtimes_common
集合的最新版本也会自动下载并安装到 Ansible 控制节点上。redhat.runtimes_common
集合提供了一组标准实用程序,以支持各种红帽运行时产品的自动部署,如 JBoss Web 服务器。
如果 Ansible 控制节点上已存在最新版本的 ansible.posix
和 redhat.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 服务器集合会自动提取存档文件。
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 要指定要安装的 JBoss Web Server 版本,请将
jws_version
变量设置为适当的基本版本。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_version: 6.1.0
[...] 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 控制节点。在这种情况下,请确保复制的原生存档文件与目标主机上安装的操作系统版本匹配。
如果您的 Ansible 控制中没有 JBoss Web Server 归档文件的副本,则集合默认联系红帽客户门户网站来自动下载存档文件。要确保使用红帽客户门户网站成功联系,请设置
rhn_username
和rhn_password
变量来指定您的红帽服务帐户凭证。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] rhn_username: <client_ID> rhn_password: <client_secret>
[...] rhn_username: <client_ID> rhn_password: <client_secret>
在上例中,将 < ;client_ID& gt ; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。
注意默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果 Ansible 控制节点上已存在相应存档文件的副本,则集合不会再次下载这些存档文件。
如果您希望手动下载存档文件,或者您已经以其他方式获取这些文件,则可以强制进行完全离线安装。有关强制离线安装的更多信息,请参阅启用 JBoss Web Server 产品补丁更新的自动化安装。
如果您更改了 Ansible 控制节点上下载的存档文件的名称,请设置
zipfile_name
和jws_native_zipfile
变量,以指定您要安装的文件。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] zipfile_name: <application_server_file> jws_native_zipfile: <native_file>
[...] zipfile_name: <application_server_file> jws_native_zipfile: <native_file>
在前面的示例中,将 < 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 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 服务器集合会自动提取存档文件。
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 将
jws_apply_patches
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_version: 6.1.0 [...] jws_apply_patches: True
[...] jws_version: 6.1.0 [...] jws_apply_patches: True
注意确保将
jws_version
变量设置为适当的产品版本(如6.1.0
)的基础发行版本。JBoss Web 服务器集合配置为默认安装最新的补丁更新。集合联系红帽客户门户网站以确定要安装的正确补丁。
如果您希望集合安装指定的补丁版本,而不是最新的补丁更新,请将
jws_patch_version
变量设置为您要安装的补丁版本。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_apply_patches: True jws_patch_version: 6.1.2
[...] jws_apply_patches: True jws_patch_version: 6.1.2
根据前面的示例,集合仅安装累积 6.1.2 补丁,即使后续补丁也可用。
当
jws_apply_patches
变量设为True
时,JBoss Web 服务器集合默认联系红帽客户门户网站,以检查是否有新的补丁更新。如果需要,集合还会下载补丁更新。要确保使用红帽客户门户网站成功联系,请设置rhn_username
和rhn_password
变量来指定您的红帽服务帐户凭证。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] rhn_username: <client_ID> rhn_password: <client_secret>
[...] rhn_username: <client_ID> rhn_password: <client_secret>
在上例中,将 < ;client_ID& gt ; 和 <client_secret > 替换为与您的红帽服务帐户关联的客户端 ID 和 secret。
注意默认情况下,集合会自动决定与目标主机上安装的操作系统版本匹配的原生存档文件。如果 Ansible 控制节点上已存在相应存档文件的副本,则集合不会再次下载这些存档文件。
如果
jws_patch_version
变量设为特定的补丁版本,则集合将仅下载指定的补丁版本,即使后续补丁也可用。如果您希望手动下载存档文件,或者您已经以其他方式获取这些文件,则可以强制进行完全离线安装,如 第 5 步 所述。
如果要强制完全离线安装,并防止集合联系红帽客户门户网站,将
jws_offline_install
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_offline_install: True
[...] jws_offline_install: True
注意如果您的 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
变量设置为适当的主要产品版本。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_version: 6.1.0
[...] jws_version: 6.1.0
注意在这种情况下,JBoss Web 服务器集合会检查指定的值中的第一个数字,以确定您要安装的主要版本。例如,如果您希望集合为 JBoss Web Server 6 安装最新的可用 RPM 软件包,您可以指定一个值
6.0.0
。无论您指定的次版本和发行版本号是什么(例如0.0
),集合会为指定主版本的最新次版本和补丁版本安装软件包。要从 RPM 软件包启用安装,请将
jws_install_method
变量设置为rpm
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_install_method: rpm
[...] jws_install_method: rpm
-
将更改保存到
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 版本(如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 版本。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_java_version: 11
[...] jws_java_version: 11
根据上例,JBoss Web 服务器集合在运行 playbook 时,会自动在每个目标主机上安装红帽构建的 OpenJDK 11。
注意或者,如果您希望 JBoss Web Server 集合安装红帽构建的 OpenJDK 版本 17,请将
jws_java_version
变量设置为17
。-
将更改保存到
vars.yml
文件。
3.4. 确保在目标主机上创建产品用户和组
JBoss Web 服务器要求产品用户帐户和用户组已在您的目标主机上创建为前提条件。默认情况下,JBoss Web 服务器集合通过在每个目标主机上自动创建 tomcat
用户帐户和一个 tomcat
组来处理此要求。但是,如果您希望 JBoss Web 服务器集合创建不同的用户帐户和组,您可以修改 JBoss Web Server 集合的行为以匹配您的设置要求。
产品用户帐户也被分配了 Tomcat 目录的所有权,以运行 Tomcat 服务。
如果要启用 JBoss Web Server 集合来创建不同的用户帐户和组,请使用以下步骤,而不是 tomcat
默认值。
先决条件
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 将
jws_user
和jws_group
变量设置为您要创建的相应产品用户名和组名称。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_user: myuser jws_group: myuser
[...] jws_user: myuser jws_group: myuser
根据前面的示例,JBoss Web 服务器集合会自动创建
myuser
用户帐户和组,而不是创建默认的tomcat
用户帐户和组。-
将更改保存到
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
。
此配置任务是可选的,但推荐使用。
先决条件
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 要启用与
systemd
集成,请将jws_systemd_enabled
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_systemd_enabled: True
[...] jws_systemd_enabled: True
如果您希望 JBoss Web 服务器使用
jws6-tomcat
以外的服务名称,请将jws_service_name
变量设置为适当的值。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_service_name: jws
[...] jws_service_name: jws
根据前面的示例,JBoss Web 服务器集合会在运行 playbook 时将产品设置为每个目标主机上的
jws
服务。注意如果您没有设置
jws_service_name
变量,JBoss Web 服务器集合会自动将产品设置为jws6-tomcat
服务。如果您没有启用红帽构建的 OpenJDK 自动安装,还要设置
jws_java_home
变量,以指定目标主机上安装的 JDK 的完整路径。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_java_home: <JAVA_HOME path>
[...] jws_java_home: <JAVA_HOME path>
注意为确保与
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 服务器集合的行为以匹配您的设置要求。
以下小节只描述了 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 集合的行为以匹配您的设置要求。
先决条件
流程
如果要创建 Java 密钥存储,请执行以下步骤:
登录您要创建密钥存储的 目标主机。
注意确保已安装 JDK,并且目标主机上已设置了
JAVA_HOME
变量。运行以下命令来创建密钥存储:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $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>
在前面的命令中,将 & lt;path_to_keystore > 替换为您要创建的密钥存储文件的完整路径。如果没有指定 the
-keystore
选项,该命令会在一些默认位置创建 keystore 文件,具体取决于您安装的 JDK 版本。例如,如果您使用红帽构建的 OpenJDK,密钥存储的默认位置为/etc/ssl/keystore.jks
。前面的命令生成密钥存储文件,其中包含一对公钥和私钥,以及用于服务器身份验证的单一自签名证书。密钥对和自签名证书存储在由
alias
选项标识的单个密钥存储条目中(如tomcat
)。当
keytool
命令提示您输入以下信息时,为您的设置输入适当的值:-
Keystore password (默认情况下,
changeit
) - 有关证书的一般信息
- 证书的密钥密码(默认为密钥存储密码)
-
Keystore password (默认情况下,
注意或者,您也可以使用 Linux
scp
命令在不同的主机之间复制现有的密钥存储文件,而不是创建新密钥存储文件。要启用对 HTTPS 连接的支持,请执行以下步骤:
-
在 Ansible 控制节点 上,打开
vars.yml
文件。 将
jws_listen_https_enabled
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_listen_https_enabled: True
[...] jws_listen_https_enabled: True
如果每个目标主机上的 Java 密钥存储位于
/etc/ssl/keystore.jks
以外的路径中,请将jws_listen_https_keystore_file
变量设置为适当的值。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_listen_https_keystore_file: <keystore_path>
[...] jws_listen_https_keystore_file: <keystore_path>
在前面的示例中,将 <keystore_path > 替换为每个目标主机上密钥存储文件的完整路径。
注意如果您没有设置
jws_listen_https_keystore_file
变量,JBoss Web Server 集合会自动在server.xml
文件中配置certificateKeystoreFile
设置,其值为/etc/ssl/keystore.jks
。如果每个目标主机上的 Java 密钥存储使用
changeit
以外的密码,请将jws_listen_https_keystore_password
变量设置为适当的值。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_listen_https_keystore_password: <keystore_password>
[...] jws_listen_https_keystore_password: <keystore_password>
在前面的示例中,将 & lt;keystore_password > 替换为每个目标主机上 Java 密钥存储的正确密码。
注意如果您没有设置
jws_listen_https_keystore_password
变量,JBoss Web 服务器集合会自动在server.xml
中使用changeit
值配置certificateKeystorePassword
设置。-
将更改保存到
vars.yml
文件。
-
在 Ansible 控制节点 上,打开
3.6.2. 在 JBoss Web 服务器中启用 mod_cluster
支持的自动配置
mod_cluster
连接器是一个减少配置,以及将 Apache HTTP 服务器请求负载平衡到 JBoss Web 服务器后端的智能解决方案。mod_cluster
连接器还提供实时负载平衡计算、应用生命周期控制、自动代理发现和多个协议支持等功能。要启用 mod_cluster
支持,您可以定义变量来启用 mod_cluster
侦听器,并为 mod_cluster
实例指定 IP 地址和端口值。
先决条件
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 要启用
mod_cluster
侦听器,请将jws_modcluster_enabled
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_modcluster_enabled: True
[...] jws_modcluster_enabled: True
要指定
mod_cluster
实例的 IP 地址和端口,请将jws_modcluster_ip
和jws_modcluster_port
变量设置为适当的值。默认 IP 地址为127.0.0.1
。默认端口为6666
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_modcluster_ip: <ip_address> jws_modcluster_port: <port>
[...] jws_modcluster_ip: <ip_address> jws_modcluster_port: <port>
在前面的示例中,将 & lt;ip_address > 替换为目标主机上
mod_cluster
实例的适当绑定地址,并将 & lt;port > 替换为mod_cluster
实例用于侦听传入请求的适当端口。-
将更改保存到
vars.yml
文件。
有关使用 mod_cluster
的更多信息,请参阅 HTTP 连接器和负载平衡指南。
3.6.3. 在 JBoss Web 服务器中启用密码库的自动配置
您可以使用 JBoss Web 服务器的密码库来屏蔽密码和其他敏感字符串,并将敏感信息存储在加密的 Java 密钥存储中。使用密码库时,您可以停止在 JBoss Web Server 配置文件中存储明文密码。JBoss Web 服务器可以使用密码库从密钥存储搜索密码和其他敏感字符串。要启用密码库,您可以设置一系列变量,用于指定密码库使用的各种文件和配置设置。
先决条件
- 您已安装了 JBoss Web 服务器集合。
-
您已创建了所需的
vault.keystore
、VAULT.dat
和vault.properties
文件。有关创建这些文件的更多信息,请参阅 Red Hat JBoss Web Server 安装指南。
流程
-
在 Ansible 控制节点上,打开
vars.yml
文件。 要指定到
vault.keystore
、VAULT.dat
的路径以及您创建的vault.properties
文件的路径,请将以下变量设置为适当的值。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] 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.properties
在前面的示例中,确保指定您配置为先决条件步骤的一部分的正确路径。
要启用密码库功能,请将
jws_tomcat_vault_enabled
变量设置为True
。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] jws_tomcat_vault_enabled: True
[...] jws_tomcat_vault_enabled: True
要指定您为密码库配置的密钥存储别名、密钥存储密码、迭代计数和 salt 值,请将以下变量设置为适当的值。
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] 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>
在前面的示例中,确保指定您配置为先决条件步骤一部分的适当值。
-
将更改保存到
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。
先决条件
- 您已安装了 JBoss Web 服务器集合。
- 您熟悉一般 Ansible 概念并创建 Ansible playbook。有关更多信息,请参阅 Ansible 文档。
流程
- 在 Ansible 控制节点上,打开您的自定义 playbook。
在 playbook 的
tasks:
部分中,添加一个任务来部署适当的 Web 应用。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [...] tasks: [...] - name: "Deploy demo webapp" ansible.builtin.get_url: url: 'https://<url_path>/<app_name>.war' dest: "{{ jws_home }}/webapps/<app_name>.war" [...]
[...] 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
文件名。- 将您的更改保存到 playbook。
第 4 章 运行 playbook
在定义了变量设置后,您可以运行 playbook 以开始自动安装过程。您可以在控制节点上使用 ansible-playbook
命令或使用 Red Hat Ansible 自动化控制器 来运行 playbook。然后,JBoss Web 服务器集合会自动处理所有安装和部署任务。
以下流程假设您已创建并更新了自定义 playbook。
先决条件
- 您已 启用了 JBoss Web Server 的自动化部署。
- 您熟悉一般 Ansible 概念并创建 Ansible playbook。有关更多信息,请参阅 Ansible 文档。
您的 playbook 包含到您定义变量的位置的适当链接。
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --- [...] vars_files: - <path_to_vars_file>/vars.yml [...]
--- [...] vars_files: - <path_to_vars_file>/vars.yml [...]
前面的示例假定您已在
vars.yml
文件中定义变量。将 <path_to_vars_file > 替换为适当的路径。您的 playbook 还指定了
redhat.jws.jws
角色。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --- [...] roles: - redhat.jws.jws [...]
--- [...] roles: - redhat.jws.jws [...]
注意redhat.jws.jws
角色已预先配置了become: true
指令,它会激活用户特权升级,以便在目标主机上执行任何需要 root 特权的自动任务。- Red Hat Enterprise Linux (RHEL)版本 8 或 9 已安装在目标主机上。
流程
执行以下步骤:
在 Ansible 控制节点上输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-playbook <playbook_name>.yml
$ ansible-playbook <playbook_name>.yml
在前面的命令中,将 < ;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
命令。
先决条件
- 您已 运行 playbook。
流程
可选:在 JBoss Web Server 主机上以 root 用户身份运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl status <service_name>
# systemctl status <service_name>
在前面的命令中,将 < ;service_name& gt; 替换为您的 JBoss Web Server 安装的正确服务名称。默认服务名称是
tomcat
。有关设置服务名称的更多信息,请参阅自动将 JBoss Web Server 与systemd
集成。注意此步骤要求 JBoss Web 服务器与
systemd
集成。可选:在 远程主机中,以 root 用户身份输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl http://<target_host>:8080/
# 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
角色的 信息页面。