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 Server 集合时,请考虑以下关于启用 HTTPS 支持的指南:
- 如果要启用 HTTPS 支持,您必须确保每个目标主机上存在 Java 密钥存储,然后才能运行 playbook。JBoss Web 服务器集合不会自动提供或创建 Java 密钥存储。在这种情况下,您必须在目标主机上创建新的密钥存储,或将现有密钥存储文件复制到每个目标主机上,如以下步骤 1 所述。
-
要启用 HTTPS 支持,您可以将
jws_listen_https_enabled变量设置为True。 -
当您启用 HTTPS 支持时,JBoss Web Server 集合将使用 Java 密钥存储的适当路径和密码设置更新每个目标主机上的
server.xml文件。默认情况下,JBoss Web 服务器集合分别在server.xml文件中配置这些路径和密码设置,其值为/etc/ssl/keystore.jks和changeit。但是,如果要使用不同的密钥存储路径或密钥存储密码,您可以修改 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文件中的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中自动配置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。默认端口为 16509。例如:
[...] 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实例的适当绑定地址,并将 & lt;port > 替换为mod_cluster实例用于侦听传入的请求的适当端口。-
将您的更改保存到
vars.yml文件。
有关使用 mod_cluster 的更多信息,请参阅 HTTP Connectors 和 Load Balancing 指南。
3.6.3. 在 JBoss Web 服务器中启用密码库的自动配置 复制链接链接已复制到粘贴板!
您可以使用 JBoss Web 服务器的密码库来屏蔽密码和其他敏感字符串,并将敏感信息存储在加密的 Java 密钥存储中。使用密码库时,您可以停止在 JBoss Web 服务器配置文件中存储明文密码。JBoss Web 服务器可以使用密码库从密钥存储搜索密码和其他敏感字符串。要启用密码库,您可以设置一系列变量,允许您指定密码库使用的各种文件和配置设置。
先决条件
- 您已安装了 JBoss Web Server 集合。
-
您已创建了所需的
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
在前面的示例中,确保指定您配置为先决条件步骤一部分的正确路径。
要启用密码库功能,请将
jws_tomcat_vault_enabled变量设置为True。例如:
[...] jws_tomcat_vault_enabled: True
[...] jws_tomcat_vault_enabled: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要指定您为密码 vault 配置的密钥存储别名、密钥存储密码、迭代计数和 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 策略 复制链接链接已复制到粘贴板!
您可以使用 Security-Enhanced Linux (SELinux)策略来定义 JBoss Web 服务器的访问控制。这些策略是一组决定对产品的访问权限的规则。SELinux 策略功能默认是启用的。
从存档文件安装 JBoss Web Server 时,SELinux 策略功能要求还安装指定产品版本的本机存档文件。默认情况下,JBoss Web Server 集合配置为安装与目标主机上的操作系统版本匹配的本机存档文件。