Red Hat Enterprise Linux System Roles for SAP
摘要
使开源包含更多
红帽承诺替换我们的代码和文档中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于这一努力的精力,这些更改将在即将发布的版本中逐渐实施。有关让我们的语言更加包含的更多详情,请参阅我们的CTO Chris Wright 信息。
对红帽文档提供反馈
我们感谢您对我们文档的反馈。让我们了解如何改进它。
提交对具体内容的评论
- 查看 Multi-page HTML 格式的文档,并确保在页面完全加载后看到右上角的 Feedback 按钮。
- 使用光标突出显示您要评论的文本部分。
- 点击在高亮文本旁的 Add Feedback 按钮。
- 添加您的反馈并点 Submit。
第 1 章 概述
Red Hat Enterprise Linux (RHEL) 7 RHEA-2019:3190 引入了用于 SAP 的 RHEL 系统角色,以帮助远程或本地配置 RHEL 系统以安装 SAP HANA 或 SAP NetWeaver 软件。SAP 开发的 RHEL 系统角色基于 Linux 系统角色 上游项目。
RHEL 系统角色是 Ansible 执行的角色集合,可帮助管理员在安装服务器后正确使用服务器配置。这些角色在 RHEL Extras 软件仓库中提供。相反,RHEL for SAP 的 RHEL 系统角色在 RHEL for SAP Solutions 订阅中提供,可供 Ansible Engine 和 Ansible Tower 管理 RHEL 系统。
Red Hat Enterprise Linux 订阅通过 Ansible Engine 提供对 RHEL 系统角色的支持,可在 Ansible Engine 仓库(如 ansible-2-for-rhel-8-$(uname -m)-rpms中提供。但是,如果您需要完全支持 Ansible Engine 本身,则需要单独的 Red Hat Ansible Automation 订阅。如需更多信息,请参阅 Red Hat Ansible Automation 的主要支持政策。
运行 RHEL 8.2 及更新版本的控制节点上完全支持 SAP 的以下 RHEL 系统角色:
- sap-preconfigure
- sap-netweaver-preconfigure
- sap-hana-preconfigure
SAP 的 RHEL 系统角色(就像 RHEL 系统角色 一样)是从称为 控制节点 的中央节点(可以是 Ansible Tower、Red Hat Satellite 或 RHEL 7 主机)安装并运行。控制节点连接到本地主机和/或连接到一个或多个远程主机(在 Ansible 上下文中调用 受管节点 ),并在其上执行安装和配置步骤。建议您在控制节点(RHEL 8)中使用 RHEL 的最新主版本,并使用 rhel-system-roles-sap RPM 或 Red Hat Automation Hub 中的最新版本的角色。SAP 和 Ansible 软件包的 RHEL 系统角色不需要安装在要管理/配置的系统上安装。
下表中包括了支持状态:
| 控制节点 | 受管节点 | 支持状态 |
|---|---|---|
| RHEL 8.4 或更高版本 | RHEL 8.0 或更高版本 | 完全支持 |
| RHEL 8.4 或更高版本 | RHEL 7.6 或更高版本 | 完全支持 |
| RHEL 8.4 或更高版本 | RHEL 7.5 或更早版本 | 不支持 |
| RHEL 8.3 或更早版本 | RHEL (任何发行版本) | 不支持 slirp |
Evolution 备注 :对于运行 RHEL 7.8、RHEL 7.9 或 RHEL 8.1 的 控制节点,您可以使用以前的 rhel-system-roles-sap 版本,它们处于技术预览支持状态。有关这些版本的说明,请在此处 找到。
对于运行 RHEL 8.2 或 RHEL 8.3 的 控制节点,您可以使用完全支持的 rhel-system-roles-sap 版本 2。请在此处找到此版本的说明。https://access.redhat.com/sites/default/files/attachments/rhel_system_roles_for_sapv2_0.pdf
下表列出了受管节点支持的硬件/虚拟化/云平台:
| 硬件平台 | 裸机/虚拟化/云平台 | 支持状态 |
|---|---|---|
| x86_64 | 裸机、Red Hat Virtualization/libvirt、VMware ESX 、红帽认证的云和服务供应商 | 完全支持 |
| ppc64le | PowerVM LPAR | 完全支持 |
| s390x | zvm 客户机 | 完全支持: sap-preconfigure,sap-netweaver-preconfigure |
角色设计为在初始安装受管节点后正确使用。不要针对 SAP 或其他生产系统运行这些角色。该角色将在受管节点上强制实施特定的配置,这可能不预期的配置。
在受管节点上应用角色前,请确定您要安装的 SAP 软件版本是否支持受管节点上的 RHEL 发行版本。
第 2 章 为 SAP 安装 Ansible Engine 和 RHEL 系统角色
使用以下步骤为 SAP 安装 Ansible Engine 和 RHEL 系统角色
流程
使用 subscription-manager 列出可用的 Ansible Engine 存储库。
# subscription-manager refresh
# subscription-manager repos --list | grep ansible
使用 Red Hat Subscription Manager 启用 Ansible Engine 软件仓库和 RHEL for SAP Solutions 存储库。
# subscription-manager repos --enable=ansible-2-for-rhel-8-$(uname -m)-rpms --enable=rhel-8-for-$(uname -m)-sap-solutions-rpms
注意Ansible Engine 存储库的通用版本 "2" 提供 2.X 流的最新版本,但也可以指定特定的次 Ansible Engine 版本,如 2.9。
为 SAP 安装 Ansible Engine 和 RHEL 系统角色:
# dnf install ansible rhel-system-roles-sap
rhel-system-roles-sap 软件包安装在以下位置,其中 < role& gt; 是各个角色的名称,例如: sap-hana-preconfigure。每个角色都包含一个 README 文件,它解释了所有变量以及如何使用角色。
文档:/usr/share/doc/rhel-system-roles-sap/<role>
Ansible Roles:/usr/share/ansible/roles/<role>
第 3 章 新功能
版本 3.1 具有以下新功能:
- 这三个角色现在支持断言运行,因此可用于将受管节点的设置与适用的 SAP 备注进行比较。虽然 Ansible 通过设计支持设置和验证对受管节点所做的任何修改,但可以在手动修改系统参数后报告 SAP 系统的 SAP 备注合规性,例如确保在手动修改系统参数后,系统设置仍然处于位状态。角色可以在每个检测到的违反时失败,或者报告失败,但可以继续运行,最后报告失败次数(若有)。
-
现在,如果存在需要它的软件安装,则角色
sap-preconfigure和sap-hana-preconfigure现在支持重新引导受管节点。 -
角色
sap-preconfigure仅根据需要重新挂载文件系统/dev/shm。 -
角色
sap-netweaver-preconfigure现在支持安装 Ice 文档服务所需的软件包。 -
角色
sap-hana-preconfigure不再设置 SELinux 状态。这在角色 sap-preconfigure 中完成。 -
为使用 tuned 和/或修改引导命令行配置角色
sap-hana-preconfigure已被简化。 -
角色
sap-hana-preconfigure现在支持激活 tuned 配置集 sap-hana 并修改引导命令行。这在设置与延迟相关的参数时提供了更大的灵活性。 -
角色
sap-hana-preconfigure现在支持检查 SAP HANA 是否支持 RHEL 次版本。可以覆盖此行为,以便为 SAP HANA 准备任何 RHEL 7.6 或更高受管节点。 -
角色
sap-hana-preconfigure现在支持根据 SAP 备注 3024346 为 NetApp NFS 设置内核参数。
第 4 章 已知问题
4.1. 角色在检查模式下运行时产生有限的输出
以检查模式运行角色不会显示在正常模式下运行时在系统上执行的所有更改,因为有些 Ansible 模块不支持检查模式。例如,任务不会报告内核参数的值。如需有关 Ansible 检查模式的更多信息,请参阅 Ansible Playbook。
要解决这个限制,sap thepreconfigure 角色现在可以在扩展检查(=assert)模式下运行
4.2. 在角色之前的版本中不会恢复扩展检查(=assert)参数
角色可以以 assert 模式运行,在这种情况下,它们不会修改受管节点,而是使用适用的 SAP 备注报告节点的合规性。当使用角色之前版本(1.x 或 2.x)运行 assert 模式 playbook 时,因为这些参数将被忽略,从而导致角色修改受管节点,而不是只检查它们。由于角色也可以安装在默认位置以外的位置(如使用 git),因此建议您仅检查软件包 rhel-system-roles-sap 的版本 3 是否已安装,但您使用的 playbook 在其正确、默认位置下调用角色,而这在 /usr/share/ansible/roles 下。
4.3. 如果没有在受管主机上设置 DNS 域,则 role sap-preconfigure 会失败
如果受管节点中没有设置 DNS 域(通常是云系统上的情况),则角色 sap-preconfigure 在任务中验证是否设置了 DNS 域。要避免这种情况,请在文件 /usr/share/ansible/roles/sap-preconfigure/defaults/main.yml 中 设置变量 sap_domain,或使用命令行参数 -e "sap_domain=example.com" (本例中为 example.com 的域名替换它)
(SAP-preconfigure issue 32)
4.4. 获取用于性能的 CPU Govenor 的当前状态的断言(仅限 x86_64 平台)失败
当针对 x86_64 受管节点在 assert 模式下运行角色 sap-hana-preconfigure 时,可能会错误地报告 CPU Governor 的当前状态没有如预期。
(SAP-hana-preconfigure issue 180)
第 5 章 SAP 的 RHEL 系统角色快速入门指南
使用以下步骤配置或验证一个或多个系统以安装 SAP NetWeaver 或 SAP HANA
5.1. 为 SAP 验证 RHEL 系统角色的版本
使用以下步骤显示运行角色时使用的角色路径,以便您可以验证它是否与安装的版本对应。
流程
运行命令(将
PLAYBOOK.YML替换为 playbook 的实际名称,将HOSTNAME替换为受管节点的名称):PLAYBOOK Ansible-playbook PLAYBOOK.YML -l HOSTNAME --step -vvv使用 "N" 回答第一个问题:
执行任务:Aathering Facts (N) o/(y) es/(c) ontue:N回答第二个问题:"y":
执行任务:sap-preconfigure : include os specific vars (N) o/(y) es/(c) ontinue:y
验证
这将显示文件
tasks/main.yml的绝对路径名称,然后中止 play (因为无法找到 vars 文件)。输出示例:TASK [sap-preconfigure : include os specific vars] **************************************************************************** task path: /usr/share/ansible/roles/sap-preconfigure/tasks/main.yml:3 fatal: [HOSTNAME]: FAILED! => {"msg": "No file was found when using first_found. Use errors='ignore' to allow this task to be skipped if no files are found"}
5.2. 准备控制节点
使用以下步骤以英语显示系统信息。SAP 的 RHEL 系统角色要求 Ansible 控制节点使用区域设置 C 或 en_US.UTF-8
流程
在本地主机上运行命令以检查当前的设置。
# locale
输出应该在以
LC_MESSAGES=开头的行中显示C或en_US.UTF-8。如果命令没有生成预期的输出,请在执行
ansible-playbook命令前在本地主机上运行以下命令:# export LC_ALL=C
或者
# export LC_ALL=en_US.UTF-8
5.3. 配置本地系统
使用以下步骤准备本地系统以安装 SAP NetWeaver
先决条件
- 在系统中没有运行生产软件
- 本地系统上至少配置 20480 MB 的交换空间
流程
如果要保留服务器的原始配置,请创建一个 bakckup。
注意这些角色在安装 RHEL 后运行,因此不需要备份。
使用以下内容创建名为
sap-netweaver.yml的 YAML 文件:- hosts: localhost connection: local roles: - sap-preconfigure - sap-netweaver-preconfigure重要角色前面的两个空格的正确缩进非常重要。运行 RHEL 系统角色
sap-preconfigure和sap-netweaver-preconfigure,为 SAP NetWeaver 的安装准备受管节点。# ansible-playbook sap-netweaver.yml
在 playbook 运行结束时,命令会报告需要重新引导,因为角色
sap-preconfigure会根据 SAP 注意 2772999 将 SELinux 状态从enabled改为disabled。重启受管节点,以使新 SELinux 状态生效。如果将角色变量
sap_preconfigure_reboot_ok设置为 yes,则该角色会将服务器重新启动为其执行的最后一步。注意通过在运行 playbook 之前或运行 playbook 时,将角色变量
sap_preconfigure_selinux_state从默认的禁用状态改为permissive,您可以把角色sap-preconfigure设置为permissive,这是在 RHEL 8 上允许 SAP NetWeaver 的 permissive。有关设置角色变量的更多信息,请参阅本文档中的示例部分。
5.4. 验证本地系统
使用以下步骤验证本地系统是否已正确配置 SAP NetWeaver。
SAP 的 RHEL 系统角色也可用于验证 RHEL 系统是否已正确配置。
先决条件
- SAP 版本 3 的 RHEL 系统角色
流程
使用以下内容创建名为
sap-netweaver.yml的 YAML 文件:- hosts: localhost connection: local vars: sap_preconfigure_assert: yes sap_preconfigure_assert_ignore_errors: yes sap_netweaver_preconfigure_assert: yes sap_netweaver_preconfigure_assert_ignore_errors: yes roles: - sap-preconfigure - sap-netweaver-preconfigure运行以下命令:
# ansible-playbook sap-netweaver.yml
如果要获取更紧凑的输出,您可以过滤输出来只显示每个断言的基本 FAIL 或 PASS 信息。如果您使用带 dark 背景的终端,请将命令序列中的所有颜色代码
[30m替换为[37m。否则,由于 dark 背景的字体,某些行的输出将无法读取。如果您在带有 dark 背景的终端中意外运行上述命令,您可以使用以下命令重新启用默认的白名单字体:
# awk 'BEGIN{printf ("\033[37mResetting font color\n")}'
5.5. 配置远程系统
使用以下步骤准备一个或多个远程服务器(受管节点)以安装 SAP HANA。
先决条件
- 验证受管节点是否已正确设置为从 Red Hat Satellite 服务器或红帽客户门户网站安装红帽软件包。
- 通过 ssh 命令访问来自 Ansible 控制节点的所有受管节点,而无需使用密码。
- 在系统中没有运行生产软件
SAP HANA 支持的 RHEL 发行版本。
- 有关 SAP HANA 支持的 RHEL 发行版本的信息,请参阅 SAP 备注 2235581
流程
如果要保留服务器的原始配置,请进行备份。
注意这些角色在安装 RHEL 后运行,因此不需要备份。
创建清单文件或修改文件
/etc/ansible/hosts,其中包含一组主机的名称以及您要在单独的行中(=managed node)的每个主机(例如,名为sap_hana的主机组中的三个主机):[sap_hana] host01 host02 host03
验证您可以使用 ssh 登录到所有三个主机,而无需密码:
# ssh host01 uname -a # ssh host02 hostname # ssh host03 echo test
使用以下内容创建名为
sap-hana.yml的 YAML 文件:- hosts: sap_hana roles: - sap-preconfigure - sap-hana-preconfigure重要角色前面的正确缩进(如 2 个空格):运行 RHEL 系统角色
sap-preconfigure和sap-hana-preconfigure,为 SAP HANA 的安装准备受管节点。# ansible-playbook sap-hana.yml
注意不要针对 SAP 或其他生产系统运行这些角色。该角色将对受管节点实施某个配置,这通常仅在安装 RHEL 后和 SAP 软件 初始安装 前 正确。
在 playbook 运行结束时,命令会报告需要重新引导的每个受管节点,例如,角色 sap-preconfigure 已从
enabled改为disabled(根据 SAP 26 90 或 SAP 注意2777782 的要求)。- 重新引导受管节点
5.6. 验证远程系统
使用以下步骤验证远程系统是否已正确配置以安装 SAP HANA。建议单独验证每个主机
SAP 的 RHEL 系统角色也可用于验证 RHEL 系统是否已正确配置。
先决条件
- SAP 版本 3 的 RHEL 系统角色
流程
- 验证每个主机
使用以下内容创建名为
sap-hana.yml的 YAML 文件:- hosts: all vars: sap_preconfigure_assert: yes sap_preconfigure_assert_ignore_errors: yes sap_hana_preconfigure_assert: yes sap_hana_preconfigure_assert_ignore_errors: yes roles: - sap-preconfigure - sap-hana-preconfigure运行 ansible-playbook 命令行选项 -l,以指定要验证的远程主机的名称。
# ansible-playbook sap-hana.yml -l host01
第 6 章 SAP 描述的 RHEL 系统角色
本章详细介绍了 SAP 的 RHEL 系统角色。
6.1. 系统角色和目的
下表中描述了三个角色 sap-preconfigure、sap-netweaver-preconfigure 和 sap-hana-preconfigure :
| 系统角色 | 目的 |
|---|---|
| sap-preconfigure | 安装软件并执行安装 SAP NetWeaver 和 SAP HANA 所需的所有配置步骤。 |
| sap-netweaver-preconfigure | 安装其他软件并执行 SAP NetWeaver 所需的其他配置步骤。 |
| sap-hana-preconfigure | 安装其他软件并执行 SAP HANA 所需的其他配置步骤。 |
6.2. 系统角色和 SAP 备注
下表列出了受管节点的 RHEL 发行版本系统角色以及相应的操作或 SAP 备注。
| 系统角色 | RHEL 7 的 SAP 备注 | RHEL 8 的 SAP 备注 |
|---|---|---|
| sap-preconfigure | ||
| SAP 注意 0941735 (仅限TMPFS) | ||
| sap-netweaver-preconfigure | SAP 备注 2526952 (仅限翻译) | SAP 备注 2526952 (仅限翻译) |
| sap-hana-preconfigure | 根据在 RHEL7.x 上运行的 RHEL7.x 和 SAP HANA SPS 12 上的文档安装所需的软件包,这在 SAP 备注 2009879中找到 | 安装 SAP 备注 2772999中所需的软件包 |
| 仅限 ppc64le:安装 此处 安装其他所需的软件包。 | ppc64le Install additional required packages here | |
| 执行运行在 RHEL 7.x 和 SAP HANA SPS 12 上的 SAP HANA 2.0 中的配置步骤。SAP 备注 2009879 | ||
| 仅 ppc64le。SAP 备注 2055470 | 仅 ppc64le。SAP 备注 2055470 | |
6.3. 实施 SAP 备注
| SAP 备注 | RHEL 7 | RHEL 8 | 标题 | 影响范围 |
|---|---|---|---|---|
| X | Red Hat Enterprise Linux 7.x: 安装和升级 | 在安装 SAP NetWeaver 前,一般的 RHEL 7 安装和配置步骤 | ||
| X | Linux UUID 解决方案 |
安装和配置 | ||
| X | 用于 64 位 Linux 系统的 SAP 内存管理系统 | SAP 和 Linux 内核参数和 SAP NetWeaver 的 TMPFS | ||
| X | Red Hat Enterprise Linux 8.x: 安装和配置 |
在安装 SAP NetWeaver 或 SAP HANA 之前,一般的 RHEL 8 安装和配置步骤(包括 | ||
| X | X | Red Hat Enterprise Linux for SAP Solutions | RHEL for SAP Solutions 的描述,包括 tuned-profiles | |
| X | 用于 Red Hat Enterprise Linux (RHEL)操作系统的 SAP HANA 指南 | RHEL 6.x 和 RHEL 7.x 上的 SAP HANA 的内核和操作系统设置 | ||
| X | X | POWER 规划和安装特定版本的 HANA - Central 注意 | POWER 上 SAP HANA 的特定安装和配置步骤 | |
| X | SAP HANA DB:RHEL 7 的建议操作系统设置 | RHEL 7.x 上 SAP HANA 的特定软件包要求、内核和操作系统设置 | ||
| X | SAP HANA DB:RHEL 8 的建议操作系统设置 | RHEL 8.x 上 SAP HANA 的特定软件包要求、内核和操作系统设置 | ||
| X | X | 在 HANA 和 OS-Level 上优化网络配置 | SAP HANA 的网络相关内核设置 |
6.4. 角色变量
在每个角色中,可以修改默认变量设置,以更改角色的行为。每个角色的 README.md 文件位于目录 /usr/share/ansible/roles/<role > 中,描述了这些变量及其默认设置的目的。变量经过定义,并可以在清单文件中的 /usr/share/ansible/roles/<role>/defaults 在 playbook 中,或使用 ansible-playbook 命令行参数 --extra-vars 或 -e 更改各个角色文件 main.yml。有关示例,请参见下一部分。
下面更详细地描述了一些变量,以解释其行为和依赖项:
内核命令行参数可以通过 grub 在内核命令行中设置,也可以使用 tuned 配置集 sap-hana。在以下情况下,在 /usr/share/ansible/roles/sap-hana-preconfigure/defaults/main.yml 中使用这些变量的组合。
6.4.1. 只使用 tuned 配置集 sap-hana
如果您只使用 tuned 配置集 sap-hana,请保留默认设置:
sap_hana_preconfigure_use_tuned: yes
6.4.2. 使用 tuned 配置集 sap-hana 并修改内核命令行
如果要使用 tuned 并修改内核命令行,请使用以下变量设置:
sap_hana_preconfigure_modify_grub_cmdline_linux: yes
6.4.3. 修改内核命令行而不使用 tuned
如果您想修改内核命令行而不是切换到 tuned 配置集 sap-hana (这会导致静态配置所有内核设置),请使用以下变量设置:
sap_hana_preconfigure_use_tuned: no
即使变量 sap_hana_preconfigure_modify_grub_cmdline_linux 设为 no