Translated message

A translation of this page exists in English.

SAP 向けの Red Hat Enterprise Linux システムロール

更新 -

目次

1. 概要

Red Hat Enterprise Linux (RHEL) 7 RHEA-2019:3190 では、SAP HANA または SAP NetWeaver ソフトウェアのインストール用に RHEL システムのリモートまたはローカルでの設定を支援する、RHEL System Roles for SAP が導入されました。RHEL System Roles for SAP 開発は、Linux System Roles のアップストリームプロジェクトに基づいています。

RHEL システムロール は、サーバーのインストール後に管理者のサーバー設定を支援するために、Ansible が実行するロールのコレクションです。これらのロールは、RHEL Extras リポジトリーで提供されます。対照的に、RHEL System Roles for SAP は RHEL for SAP Solutions サブスクリプションで提供され、RHEL システムを管理するために Ansible Engine および Ansible Tower で使用できます。

Red Hat Enterprise Linux サブスクリプションは、Ansible Engine リポジトリー (例: ansible-2-for-rhel-8-$(uname -m)-rpms) で利用可能な Ansible Engine を使用した RHEL システムロールをサポートします。ただし、Ansible Engine 自体の完全なサポートが必要な場合は、別の Red Hat Ansible Automation サブスクリプション が必要です。追加情報は Top Support Policies for Red Hat Ansible Automation で確認してください。

次の RHEL System Roles for SAP は、RHEL 8.2 以降を実行しているコントロールノードで完全にサポートされています。
- sap-preconfigure
- sap-netweaver-preconfigure
- sap-hana-preconfigure

注: rhel-system-roles-sap-3.2.0-1.el8_4 以降、ロール名は次のように変更されました。

以前のロール名 新しいロール名
sap-preconfigure sap_general_preconfigure
sap-netweaver-preconfigure sap_netweaver_preconfigure
sap-hana-preconfigure sap_hana_preconfigure

既存の Playbook の変数は引き続き認識されます。コレクション redhat.sap_install および新しいロール sap_hana_install に含まれる事前設定ロールの使用などの詳細は、KB 記事 6857351 を参照してください。

RHEL System Roles for SAP は、RHEL System Roles と同様に、コントロールノード (Ansible Tower、Red Hat Satellite、または RHEL 8 または RHEL 7 ホスト) と呼ばれるセントラルノードからインストールおよび実行されます。コントロールノードは、ローカルホストまたは 1 つ以上のリモートホスト (Ansible のコンテキストでは 管理対象ノード と呼ばれる)、あるいは両方に接続し、それらのインストールおよび設定手順を実行します。コントロールノード (RHEL 8) で RHEL の最新のメジャーリリースを使用し、rhel-system-roles-sap RPM または Red Hat Automation Hub から最新バージョンのロールを使用することをお勧めします。RHEL System Roles for SAP および Ansible パッケージは、管理/設定対象システムにインストールする必要はありません。

サポート状況については、次の表を参照してください。

コントロールノード 管理対象ノード サポートステータス
RHEL 8.4 以降 RHEL 8.0 以降 完全対応
RHEL 8.4 以降 RHEL 7.6 以降 完全対応
RHEL 8.4 以降 RHEL 7.5 以前 サポート対象外
RHEL 8.3 以前 RHEL (すべてのリリース) サポート対象外(*)


(*) 注: RHEL 7.8、RHEL 7.9、または RHEL 8.1 を実行している *コントロールノード* の場合、テクニカルプレビューサポートステータスにある以前のバージョンの rhel-system-roles-sap を使用できます。これらのバージョンの手順は、こちら を参照してください。

RHEL 8.2 または RHEL 8.3 を実行している コントロールノード の場合、完全にサポートされている rhel-system-roles-sap の バージョン 2 を使用できます。このバージョンの手順は、こちら を参照してください。

サポート対象の管理対象ノードのハードウェア/仮想化/クラウドプラットフォームについては、次の表を参照してください。

ハードウェアプラットフォーム ベアメタル/仮想化/クラウドプラットフォーム サポートステータス
x86_64 ベアメタル、Red Hat Virtualization/libvirt、VMware ESX、Red Hat 認定クラウドおよびサービスプロバイダー 完全対応
ppc64le PowerVM LPARs 完全対応
s390x zVM ゲスト 完全対応: sap-preconfiguresap-netweaver-preconfigure


: ロールは、管理対象ノードを最初にインストールした直後に使用するように設計されています。これらのロールは、SAP またはその他の実稼働システムでは実行しないでください。ロールは、管理対象ノードで強制的に特定の設定を使用します。これは意図されている動作とは異なる可能性があります。
: 管理対象ノードにロールを適用する前に、管理対象ノードの RHEL リリースが、インストールする予定の SAP ソフトウェアバージョンでサポートされていることを確認してください。

2. インストール

この手順を使用して、Ansible Engine と RHEL System Roles for SAP をインストールします。

1) subscription-manager を使用して、利用可能な Ansible Engine リポジトリーを一覧表示します。
#subscription-manager refresh
#subscription-manager repos --list | grep ansible

2) Red Hat Subscription Manager を使用して、Ansible Engine リポジトリーと RHEL for SAP Solutions リポジトリーを永続的に有効にします。
注: Ansible Engine リポジトリーの汎用バージョン 2 は、2.X ストリームの最新リリースを提供しますが、2.9 などの特定のマイナー Ansible Engine バージョンを指定することもできます。
#subscription-manager repos --enable=ansible-2-for-rhel-8-$(uname -m)-rpms --enable=rhel-8-for-$(uname -m)-sap-solutions-rpms

3) Ansible Engine と RHEL System Roles for SAP をインストールします。
#dnf install ansible rhel-system-roles-sap

rhel-system-roles-sap パッケージは次の場所にインストールされます。ここで <role> は個々のロールの名前に置き換えます。たとえば、sap-hana-preconfigure などに置き換えます。各ロールには、すべての変数とロールの使用方法を説明する README ファイルが含まれています。

ドキュメント: /usr/share/doc/rhel-system-roles-sap/<role>
Ansible ロール: /usr/share/ansible/roles/<role>

3. バージョン 3 の新機能

バージョン 3.1 には、バージョン 2 と比較して次の新機能があります。

  • 3 つのロールはアサーションの実行をサポートするようになったため、このロールを使用して、管理対象ノードの設定を該当する SAP ノートと比較できます。Ansible は、設計別に管理対象ノードに加えられた変更の設定と検証をサポートしていますが、システム設定を変更せずに、システムパラメーターを手動で変更した場合にシステム設定がまだあることを確認するなど、SAP システムの SAP ノートへの準拠を随時報告すると便利な場合があります。ロールは、違反が検出されるたびに失敗するか、失敗を報告しても実行を継続し、最後に失敗の数 (存在する場合) を報告できます。

  • ロール sap-preconfigure および sap-hana-preconfigure は、ソフトウェアのインストール時に再起動が必要な場合に、管理対象ノードの再起動をサポートするようになりました。

  • sap-preconfigure ロールは、必要に応じてファイルシステム /dev/shm のみを再マウントするようになりました。

  • sap-netweaver-preconfigure ロールは、Adobe Document Services に必要なパッケージのインストールをサポートするようになりました。

  • sap-hana-preconfigure は、SELinux の状態を設定しなくなりました。これは、sap-preconfigure ロールで設定されているためです。

  • tuned の使用またはブートコマンドラインの変更、あるいはその両方を行う sap-hana-preconfigure ロールの設定が簡素化されました。

  • sap-hana-preconfigure ロールは、tuned プロファイル sap-hana のアクティブ化と、ブートコマンドラインの変更をサポートするようになり、レイテンシー関連のパラメーター設定に関する柔軟性が向上します。

  • sap-hana-preconfigure ロールは、RHEL マイナーリリースが SAP HANA でサポートされているかどうかの確認に対する対応が追加されました。このサポート確認の動作は、RHEL 7.6 以降の管理対象ノードを SAP HANA 用に準備できるように、オーバーライドできます。

  • sap-hana-preconfigure ロールは、SAP Note 3024346 に従って、NetApp NFS のカーネルパラメーターの設定をサポートするようになりました。

4. 既知の問題

4.1. チェックモードで実行している場合にロールが生成する出力が限られている{#41-Roles-produce}

一部の Ansible モジュールはチェックモードをサポートしていないか、部分的にしかサポートしていないため、チェックモードでロールを実行しても、通常モードで実行しているときにシステムで実行されるすべての変更が表示されるわけではありません。たとえば、タスクではカーネルパラメーターの値が報告されません。Ansible チェックモードの詳細は、https://docs.ansible.com/ansible/latest/user_guide/playbooks_checkmode.html を参照してください。

この制限に対応するため、sap*preconfigure ロールを拡張チェック (=assert) モードで実行できるようになりました。

4.2. 以前のバージョンのロールでは、拡張チェック (=assert) パラメーターが認識されない{#42-extended-check}

ロールはアサートモードで実行できます。アサートモードで実行されている場合に、ロールは、管理対象ノードを変更しませんが、ノードが該当する SAP ノートに準拠していることを報告します。以前のバージョン (1.x または 2.x) のロールでアサートモードの Playbook を実行すると、assert パラメーターが無視され、ロールが管理対象ノードをチェックするだけでなく変更を加えます。ロールはデフォルトの場所以外にもインストールできるため (例: git を使用)、パッケージ rhel-system-roles-sap のバージョン 3 がインストールされているかどうかだけでなく、使用している Playbook が正しいデフォルトの場所にあるロール (/usr/share/ansible/roles の下) を呼び出していることも確認することを推奨します。
ロールの実行時に使用されるロールパスを表示して、インストールされているバージョンに対応しているかどうかを確認するには、次の手順を使用できます。
コマンドを実行します (PLAYBOOK.YML は Playbook の実際の名前に、HOSTNAME は管理対象ノードの名前に置き換えます)。
# ansible-playbook PLAYBOOK.YML -l HOSTNAME --step -vv
最初の質問に N で答えます。
Perform task: TASK: Gathering Facts (N)o/(y)es/(c)ontinue: N
2 番目の質問には y と回答します。
Perform task: TASK: sap-preconfigure : include os specific vars (N)o/(y)es/(c)ontinue: y

これにより、ファイル tasks/main.yml の絶対パス名が表示され、プレイが中止されます (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"}

4.3. DNS ドメインが管理対象ノードに設定されていない場合、ロール sap-preconfigure で問題が発生する{#43-Role-sap-preconfigure-fails}

管理対象ノードに DNS ドメインが設定されていない場合 (通常はクラウドシステムの場合)、sap-preconfigure ロールは Verify that the DNS domain is set タスクで失敗します。これを回避するには、sap_domain 変数をファイル /usr/share/ansible/roles/sap-preconfigure/defaults/main.yml に設定するか、ラインパラメーターを指定して ansible-playbook コマンドを実行します。
-e "sap_domain=example.com" (今回は、ドメイン名は example.com ですが、お使いのドメイン名に置き換えてください)。

(sap-preconfigure issue #32)

4.4. CPU ガバナーパフォーマンスの現在のステータスを取得するためのアサーション (x86_64 プラットフォームのみ) に失敗する{#44-assertion}

x86_64 管理対象ノードに対してロール sap-hana-preconfigure をアサートモードで実行すると、CPU ガバナーの現在のパフォーマンスステータスが想定どおりでないと誤って報告される場合があります。
(sap-hana-preconfigure issue #180)

5. クイックスタート

この手順を使用して、SAP NetWeaver または SAP HANA のインストール用に 1 つ以上のシステムを設定または検証します。

5.1. コントロールノードの準備

RHEL System Roles for SAP では、Ansible コントロールノードがロケール C または en_US.UTF-8 を使用してシステムメッセージを英語で表示する必要があります。ローカルホストで次のコマンドを実行して、現在の設定を確認します。
#locale
出力では、LC_MESSAGES= で始まる行に C または en_US.UTF-8 が表示されます。locale コマンドで予期した出力が生成されない場合は、ansible-playbook コマンドを実行する前に、ローカルホストで次のコマンドを実行します。
#export LC_ALL=C
または、
#export LC_ALL=en_US.UTF-8

5.2. ローカルシステムの設定{#52-Configure-the-local-system}

SAP NetWeaver をインストールするためのローカルシステムの準備

1) システムで実稼働のソフトウェアが実行されていないことを確認します。ロールは、システムに特定の設定を適用します。これは通常、RHEL のインストール 直後で、SAP ソフトウェアの 初期 インストール 前に のみ行われます。

2) サーバーの元の設定を保持する場合は、バックアップを実行します。通常、これらのロールは RHEL のインストール直後に実行されるため、バックアップは必要ありません。

3) 次の内容で sap-netweaver.yml という名前の YAML ファイルを作成します。

- hosts: localhost
  connection: local
  roles:
    - sap-preconfigure
    - sap-netweaver-preconfigure

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

5) ローカルシステムに少なくとも 20480 MB のスワップスペースが設定されていることを確認します。

6) RHEL システムロール sap-preconfigure および sap-netweaver-preconfigure を実行して、SAP NetWeaver のインストール用に管理対象ノードを準備します。

#ansible-playbook sap-netweaver.yml

SAP ノート 2772999 によると、playbook の実行の最後に、上記のコマンドにより、sap-preconfigure ロールが SELinux の状態を enabled から disabled に変更したため再起動が必要であると報告します。

7) 新しい SELinux 状態が有効になるように、管理対象ノードを再起動します。ロール変数 sap_preconfigure_reboot_ok を yes に設定すると、ロールは実行の最後のステップとしてサーバーを再起動します。

: Playbook の実行前または実行時に、ロール変数 sap_preconfigure_selinux_state をデフォルトの disabled から permissive に変更すると、ロール sap-preconfigure で SELinux の状態を permissive に設定できます。RHEL 8 上の SAP NetWeaver でもこの設定が可能です。ロール変数の設定の詳細は、このドキュメントの例のセクションを参照してください。

5.3. ローカルシステムの確認{#53-verify}

RHEL システムの設定に加えて、RHEL System Roles for SAP を使用して、RHEL システムが正しく設定されていることも確認できます。

SAP NetWeaver のインストール用にローカルシステムが正しく設定されているかどうかを確認します。

次の手順を使用して、サーバーが SAP NetWeaver に適用される SAP ノートに準拠していることを示すレポートを取得します。

1) 次の内容で 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

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

2) RHEL System Roles for SAP バージョン 3 を使用していることを確認します。
以前のバージョンのロールでは拡張チェック (=assert) パラメーターが認識されないため、この Playbook を以前のバージョンの RHEL System Roles for SAP で実行しないことが重要です。以前のバージョンで実行すると、システム設定が意図せず変更される可能性があります。4.2 で概説されている手順に従って、RHEL System Roles for SAP バージョン 3 以降を使用していること、およびロールがデフォルトのロールパス以外の場所から呼び出されていないことを確認してください。

3) 以下のコマンドを実行します。

#ansible-playbook sap-netweaver.yml

よりコンパクトな出力を取得する場合は、出力をフィルタリングして、各アサーションの重要な FAIL または PASS 情報のみを表示できます。背景が暗い端末を使用している場合は、次のコマンドシーケンスのカラーコード [30m をすべて [37m に置き換えます。そうしないと、暗い背景に暗いフォントが表示されるため、行によっては出力が判読できません。

# ansible-playbook sap-netweaver.yml | awk '{sub ("    \"msg\": ", "")}
  /TASK/{task_line=$0}
  /fatal:/{fatal_line=$0; nfatal[host]++}
  /...ignoring/{nfatal[host]--; if (nfatal[host]<0) nfatal[host]=0}
  /^[a-z]/&&/: \[/{gsub ("\\[", ""); gsub ("]", ""); gsub (":", ""); host=$2}
  /SAP note/{print "\033[30m[" host"] "$0}
  /FAIL:/{nfail[host]++; print "\033[31m[" host"] "$0}
  /WARN:/{nwarn[host]++; print "\033[33m[" host"] "$0}
  /PASS:/{npass[host]++; print "\033[32m[" host"] "$0}
  /INFO:/{print "\033[34m[" host"] "$0}
  /changed/&&/unreachable/{print "\033[30m[" host"] "$0}
  END{print ("---"); for (var in npass) {printf ("[%s] ", var); if (nfatal[var]>0) {
        printf ("\033[31mFATAL ERROR!!! Playbook might have been aborted!!!\033[30m Last TASK and fatal output:\n"); print task_line, fatal_line
     }
     else printf ("\033[31mFAIL: %d  \033[33mWARN: %d  \033[32mPASS: %d\033[30m\n", nfail[var], nwarn[var], npass[var])}}'

背景が暗い端末で誤って上記のコマンドを実行してしまった場合は、次のコマンドを使用してデフォルトの白いフォントを再度有効にすることができます。

#awk 'BEGIN{printf ("\033[37mResetting font color\n")}'

5.4. リモートシステムの設定

コントロールノードとすべての管理対象ノードへの ssh アクセス準備

1) Red Hat Satellite サーバーまたは Red Hat カスタマーポータルから Red Hat ソフトウェアパッケージをインストールするために、管理対象ノードが正しく設定されていることを確認します。

2) ssh コマンドを使用して、パスワードを使用せずに Ansible コントロールノードからすべての管理対象ノードにログインできることを確認します。このトピックに関する詳細情報が必要な場合は、ssh-copy-id および man ssh のマニュアルページを参照してください。

SAP HANA のインストール用に 1 つ以上のリモートサーバー (管理対象ノード) を準備する

1) 設定する管理対象ノードで実稼働ソフトウェアが実行されていないことを確認します。

2) インストールする SAP HANA のバージョンが、管理対象ノードにインストールされている RHEL メジャーおよびマイナーリリースでサポートされていることを確認します。SAP HANA でサポートされている RHEL リリースについては、SAP ノート 2235581 を参照してください。

3) いずれかのサーバーの元の設定を保持する場合は、サーバーのバックアップを実行します。通常、これらのロールはインストール直後に実行されるため、バックアップは必要ありません。

4) インベントリーファイルを作成するか、ファイル /etc/ansible/hosts を変更して、ホストのグループの名前と、設定する予定の各ホスト (=管理対象ノード) が別々の行に含まれるようにします (例: sap_hana という名前のホストグループに 3 つのホストが 1 つの行にある場合)。

[sap_hana]
host01
host02
host03

5) いくつかの簡単なコマンドを使用して、パスワードなしで ssh を使用して 3 つのホストすべてにログインできることを確認します。
#ssh host01 uname -a
#ssh host02 hostname
#ssh host03 echo test

6) 以下の内容で、sap-hana.yml という名前の YAML ファイルを作成します。

- hosts: sap_hana
  roles:
    - sap-preconfigure
    - sap-hana-preconfigure

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

7) RHEL システムロール sap-preconfigure および sap-hana-preconfigure を実行して、SAP HANA のインストール用に管理対象ノードを準備します。
: これらのロールは、SAP またはその他の実稼働システムに対して実行しないでください。このロールは、管理対象ノードに特定の設定を適用します。これは通常、RHEL のインストール 直後で、SAP ソフトウェアの 初期 インストール 前に のみ行われます。

#ansible-playbook sap-hana.yml

Playbook の実行の最後に、このコマンドにより、(SAP ノート 2292690 または 2777782 の要件に従って) sap-preconfigure ロールが SELinux の状態を enabled から disabled に変更したため管理対象ノードごとに再起動が必要であることを報告します。

8) 新しい SELinux 状態が有効になるように、管理対象ノードを再起動します。

5.5. リモートシステムの確認{#55-verify}

各ホストを個別に確認することをお勧めします。5.3 の手順に従いますが、ファイルは次の yml ファイルを使用してください。

- 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

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

6. 詳細な説明

ここでは、RHEL System Roles for SAP について詳しく説明します。

3 つのロール sap-preconfiguresap-netweaver-preconfigure および sap-hana-preconfigure の目的を次の表に示します。

システムロール 目的
sap-preconfigure ソフトウェアをインストールし、SAP NetWeaver および SAP HANA のインストールに必要なすべての設定手順を実行します。
sap-netweaver-preconfigure 追加のソフトウェアをインストールし、SAP NetWeaver のみ に必要な設定手順を追加で実行します。
sap-hana-preconfigure 追加のソフトウェアをインストールし、SAP HANA のみ に必要な追加の設定手順を実行します。

注: rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

6.1. システムロールと SAP ノート

次の表には、管理対象ノードの RHEL リリースのシステムロールと対応するアクションまたは SAP ノートが含まれています。

システムロール RHEL 7 に関する SAP ノート RHEL 8 に関する SAP ノート
sap-preconfigure SAP ノート 2002167 SAP ノート 2772999
SAP ノート 1391070
SAP ノート 0941735 (TMPFS のみ)
sap-netweaver-preconfigure SAP ノート 2526952 (tuned プロファイルのみ) SAP ノート 2526952 (tuned プロファイルのみ)
sap-hana-preconfigure SAP ノート 2009879 に添付されている RHEL 7.x で実行されている SAP HANA 2.0 および RHEL 7.x で実行されている SAP HANA SPS 12 のドキュメントに従って、必要なパッケージをインストールします。 SAP ノート 2772999 に記載されているように、SAP HANA に必要なパッケージをインストールします。
ppc64le のみ: https://www14.software.ibm.com/support/customercare/sas/f/lopdiags/home.html に従って追加の必須パッケージをインストールします。 ppc64le のみ: https://www14.software.ibm.com/support/customercare/sas/f/lopdiags/home.html に従って追加の必須パッケージをインストールします。
SAP ノート 2009879 に添付されている RHEL 7.x で実行されている SAP HANA 2.0 および RHEL 7.x で実行されている SAP HANA SPS 12 のドキュメントに従って、設定手順を実行します。
ppc64le のみ: SAP ノート 2055470 ppc64le のみ: SAP ノート 2055470
SAP ノート 2292690 SAP ノート 2777782
SAP ノート 2382421 SAP ノート 2382421

6.2. SAP ノートの実装

次の表に、SAP ノートとその目的と範囲を示します。RHEL 列は、SAP ノートがサポートする特定の RHEL リリースを示します。

SAP ノート RHEL タイトル 目的と範囲
7 8
2002167 Red Hat Enterprise Linux 7.x: インストールとアップグレード SAP NetWeaver をインストールする前の一般的な RHEL 7 のインストールおよび設定手順
1391070 Linux UUID ソリューション uuidd のインストールと設定
0941735 64 ビット Linux システム用の SAP メモリー管理システム SAP および Linux カーネルパラメーターと SAP NetWeaver 用の TMPFS
2772999 Red Hat Enterprise Linux 8.x: インストールと設定 SAP NetWeaver または SAP HANA をインストールする前の一般的な RHEL 8 のインストールおよび設定手順 (uuidd を含む)
2526952 Red Hat Enterprise Linux for SAP Solutions tuned プロファイルを含む RHEL for SAP ソリューションの説明
2009879 Red Hat Enterprise Linux (RHEL) オペレーティングシステムの SAP HANA ガイドライン RHEL 6.x および RHEL 7.x 上の SAP HANA のカーネルと OS の設定
2055470 HANA on POWER の計画とインストールの詳細 - セントラルノート SAP HANA on POWER の特定のインストールおよび設定手順
2292690 SAP HANA DB: RHEL 7 の推奨 OS 設定 RHEL 7.x 上の SAP HANA の特定のパッケージ要件、カーネルおよび OS 設定
2777782 SAP HANA DB: RHEL 8 の推奨 OS 設定 RHEL 8.x 上の SAP HANA の特定のパッケージ要件、カーネルおよび OS 設定
2382421 HANA および OS レベルでのネットワーク設定の最適化 SAP HANA のネットワーク関連のカーネル設定

6.3. ロール変数

各ロールでは、デフォルトの変数設定を変更して、ロールの動作を変更できます。ディレクトリー /usr/share/ansible/roles/<role> にある各ロールの README.md ファイルには、これらの変数の目的とデフォルト設定が記述されています。変数は定義されており、インベントリーファイル、Playbook、または ansible-playbook コマンドラインパラメーター (--extra-vars または -e) を使用して、ディレクトリー /usr/share/ansible/roles/<role>/defaults の各ロールのファイル main.yml で変更できます。例については、次のセクションを参照してください。

一部の変数については、その動作と依存関係を説明するために、以下で詳しく説明します。

sap-hana-preconfigure のカーネル関連の変数

カーネル変数は、grub のカーネルコマンドラインで設定するか、tuned プロファイル sap-hana を使用して設定できます。以下に説明するケースでは、/usr/share/ansible/roles/sap-hana-preconfigure/defaults/main.yml でこれらの変数の次の組み合わせを使用します。

ケース 1: tuned プロファイル sap-hana のみを使用する

tuned プロファイル sap-hana のみを使用する場合は、デフォルト設定のままにしておきます。

sap_hana_preconfigure_use_tuned: yes

ケース 2: tuned プロファイル sap-hana を使用し、カーネルコマンドラインも変更する

tuned を使用し、カーネルコマンドラインも変更する場合は、変数 sap_hana_preconfigure_modify_grub_cmdline_linux を設定しないか、no から yes に変更します。デフォルトでは、これによりコマンド grub2-mkconfig がトリガーされます。
sap_hana_preconfigure_modify_grub_cmdline_linux: yes

ケース 3: カーネルコマンドラインを変更して tuned を使用しない

カーネルコマンドラインを変更し、tuned プロファイル sap-hana に切り替えない場合 (すべてのカーネル設定が静的に指定)、sap_hana_preconfigure_use_tunedyes から no に変更します。デフォルトでは、これによりコマンド grub2-mkconfig がトリガーされます。
sap_hana_preconfigure_use_tuned: no

7. 例

これらの例の準備手順として、このドキュメントの クイックスタート セクションの コントロールノードとすべての管理対象ノードへの ssh アクセス準備 の指示に従います。

7.1. SAP HANA 向けシステム 2 台の準備{#71-prep-two-systems}

SAP HANA をインストールするために、RHEL 7.6 x86_64 サーバー (管理対象ノード) hana-x-76 および RHEL 8.1 ppc64le (POWER9) PowerVM LPAR (管理対象ノード) hana-p-81 を設定する必要があります。これらの RHEL リリースが、インストールする SAP HANA バージョンでサポートされていることを SAP ノート 2235581 で確認済みであり、ハードウェアベンダーがこの SAP HANA バージョンのハードウェアを認定していることも確認しておく必要があります。sap-preconfigure および sap-hana-preconfigure ロールを実行する必要があります。

sap-hana-preconfigure ロールで、SAP HANA に必要なリポジトリーを有効にし、RHEL マイナーリリースを現在インストールされているリリース (7.6 および 8.1) に設定して、yum の更新によってこのリリース以降に管理対象ノード更新されないようにする必要があります。また、RHEL のマイナーリリースの最新のソフトウェアレベルにロールを更新することも必要です。ロールのデフォルトの動作 (grub を変更せず、tuned を使用してカーネルやその他のパラメーターを設定する) を使用せずに、tuned を使用し、SAP HANA のブートコマンドラインも変更します。また、必要に応じてロールで管理対象ノードを再起動する必要があります。

以下の手順を使用してください。

1) 2 つの管理対象ノードのいずれにも実稼働のソフトウェアが実行されていないことを確認します。

2) 管理対象ノードの元の設定を保持する場合は、サーバーのバックアップを実行します。通常、これらのロールは RHEL のインストール直後に実行されるため、バックアップは必要ありません。

3) インベントリーファイルを作成するか、/etc/ansible/hosts ファイルを変更して、次の行が含まれるようにします (この例では、ホストは特定のホストグループに含まれていません)。

hana-x-76
hana-p-81

4) いくつかの簡単なコマンドを使用して、パスワードなしで ssh を使用して 3 つのホストすべてにログインできることを確認します。
#ssh hana-x-76 uname -a
#ssh hana-p-81 uname -a

5) 以下の内容で、sap-hana.yml という名前のファイルを作成します。

- hosts: all
- vars:
    sap_preconfigure_reboot_ok: yes
    sap_hana_preconfigure_enable_sap_hana_repos: yes
    sap_hana_preconfigure_set_minor_release: yes
    sap_hana_preconfigure_modify_grub_cmdline_linux: yes
    sap_hana_preconfigure_reboot_ok: yes
  roles:
    - sap-preconfigure
    - sap-hana-preconfigure

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

6) 次の ansible-playbook コマンドを実行して、2 つの管理対象ノードを設定します。この例では、- hosts: all が Playbook で使用され、ファイル /etc/ansible/hosts にホストのグループ名がないため、-l コマンドラインパラメーターの後にホストの名前を指定する必要があることに注意してください。

#ansible-playbook -l hana-x-76,hana-p-81 sap-hana.yml

7.2. SAP NetWeaver 向けシステム 4 台の設定{#72-config-four-systems}

3 つの RHEL 7.7 x86_64 システム (管理対象ノード) sap-testsap-qa、および sap-prod (テスト、QA、および実動) と RHEL 8.2 s390x システム (管理対象ノード) sap-test-z を SAP NetWeaver のインストール向けに設定します。sap-test-z システムでは、root ユーザーを使用できませんが、ID が 0 で名前が root2 のユーザーを使用できます。sap-preconfigure および sap-netweaver-preconfigure を実行する必要があります。

sap-preconfigure ロールのデフォルトの動作では、管理対象ノードが最新の RHEL ソフトウェアレベルに更新されませんが、4 つの管理対象ノードすべてを最新の RHEL ソフトウェアバージョンに更新する必要があります。また、スワップ領域が 20480 MB 未満に設定されている場合や、再起動が必要な場合などに、ロールを失敗させないようにする必要があります。以下の手順を使用してください。

1) 4 つの管理対象ノードのいずれかで、他の実稼働のソフトウェアが実行されていないことを確認します。

2) いずれかのサーバーの元の設定を保持する場合は、管理対象ノードのバックアップを実行します。通常、これらのロールは RHEL のインストール直後に実行されるため、バックアップは必要ありません。

3) インベントリーファイルを作成するか、ファイル /etc/ansible/hosts を変更して、次の行が含まれるようにします。

[sap_netweaver]
sap-test
sap-qa
sap-prod
sap-test-z ansible_user=root2

4) いくつかの簡単なコマンドを使用して、パスワードなしで ssh を使用して 4 つの管理対象ノードすべてにログインできることを確認します。
#ssh sap-test uname -a
#ssh sap-qa uname -a
#ssh sap-prod uname -a
#ssh root2@sap-test-z uname -a

5) 次の内容で sap-netweaver.yml という名前の YAML ファイルを作成します。

- hosts: sap_netweaver
  roles:
    - sap-preconfigure
    - sap-netweaver-preconfigure

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

6) 次の ansible-playbook コマンドを実行して、上記のように 4 つの管理対象ノードを設定します。

#ansible-playbook sap-netweaver.yml -e "{'sap_preconfigure_update': yes,
'sap_preconfigure_fail_if_reboot_required': no,
'sap_netweaver_preconfigure_fail_if_not_enough_swap_space_configured': no}"

7) 4 つの管理対象ノードすべてを再起動して、必要な設定変更がすべて適用されていることを確認します。

7.3. RHEL システムの SAP HANA ノートコンプライアンスステータス報告{#73-report}

RHEL 8.2 システム hana-x-82 を SAP HANA 用に手動で設定しましたが、システムが該当する SAP ノートに準拠しているかどうかを確認する必要があります。また、sap-preconfigure および sap-hana-preconfigure ロールをアサートモードで実行する必要があります。
以下の手順を使用してください。

1) インベントリーファイルを作成するか、/etc/ansible/hosts ファイルを変更して、次の行が含まれるようにします (この例では、ホストは特定のホストグループに含まれていません)。
hana-x-82

2) 簡単なコマンドを使用して、パスワードなしで ssh を使用してすべてのシステムにログインできることを確認します。

#ssh hana-x-82 uname -a

3) 次の内容で sap-hana-assert.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

注記:

  • 正しいインデント (例: roles: の前のスペース 2 つ) が不可欠です。

  • rhel-system-roles-sap-3.2.0-1.el8_4 以降、1 で示されているようにロール名が変更されました。

4) RHEL System Roles for SAP のバージョン 3 以降を使用していることを確認します。

  • RHEL System Roles for SAP のバージョン 3 がインストールされていることを確認します。

#dnf list installed rhel-system-roles-sap

  • 以下のコマンドを実行します。

#ansible-playbook sap-hana-assert.yml -l hana-x-82 --step -vv

最初の質問に N で答えます。
Perform task: TASK: Gathering Facts (N)o/(y)es/(c)ontinue: N
2 番目の質問には y と回答します。
Perform task: TASK: sap-preconfigure : include os specific vars (N)o/(y)es/(c)ontinue: y
これにより、ファイル tasks/main.yml の絶対パス名が表示され、プレイが中止されます (vars ファイルが見つからなかったため)。パス名は /usr/share/ansible/roles/sap-preconfigure/tasks/main.yml である必要があります。

出力サンプル

TASK [sap-preconfigure : include os specific vars] ****************************************************************************
task path: /usr/share/ansible/roles/sap-preconfigure/tasks/main.yml:3

5) 検証を実行し、デフォルトの ansible-playbook 出力をフィルタリングして、重要な検証情報のみを表示します。背景が暗い端末を使用している場合は、次のコマンドシーケンスのカラーコード [30m をすべて [37m に置き換えます。そうしないと、行によっては出力が判読できなくなります (暗い背景に暗いフォントが表示されている場合)。

# ansible-playbook sap-hana-assert.yml | awk '{sub ("    \"msg\": ", "")}
  /TASK/{task_line=$0}
  /fatal:/{fatal_line=$0; nfatal[host]++}
  /...ignoring/{nfatal[host]--; if (nfatal[host]<0) nfatal[host]=0}
  /^[a-z]/&&/: \[/{gsub ("\\[", ""); gsub ("]", ""); gsub (":", ""); host=$2}
  /SAP note/{print "\033[30m[" host"] "$0}
  /FAIL:/{nfail[host]++; print "\033[31m[" host"] "$0}
  /WARN:/{nwarn[host]++; print "\033[33m[" host"] "$0}
  /PASS:/{npass[host]++; print "\033[32m[" host"] "$0}
  /INFO:/{print "\033[34m[" host"] "$0}
  /changed/&&/unreachable/{print "\033[30m[" host"] "$0}
  END{print ("---"); for (var in npass) {printf ("[%s] ", var); if (nfatal[var]>0) {
        printf ("\033[31mFATAL ERROR!!! Playbook might have been aborted!!!\033[30m Last TASK and fatal output:\n"); print task_line, fatal_line
     }
     else printf ("\033[31mFAIL: %d  \033[33mWARN: %d  \033[32mPASS: %d\033[30m\n", nfail[var], nwarn[var], npass[var])}}'

出力サンプル

[hana-x-82] "FAIL: Environment group 'server-product-environment' is not installed!"
[hana-x-82] "PASS: Package 'uuidd' is installed."
[hana-x-82] "PASS: Package 'libnsl' is installed."
[hana-x-82] "PASS: Package 'tcsh' is installed."
[hana-x-82] "PASS: Package 'psmisc' is installed."
[hana-x-82] "PASS: Package 'nfs-utils' is installed."
[hana-x-82] "PASS: Package 'bind-utils' is installed."
[hana-x-82] "PASS: Package 'compat-sap-c++-9' is installed."
[hana-x-82] "INFO: No minimum required package version defined (variable __sap_preconfigure_min_pkgs)."
[hana-x-82] "INFO: Not checking for possible package updates (variable sap_preconfigure_update)."
[hana-x-82] "PASS: System needs no restart."
[hana-x-82] "SAP note 2772999 Step 2: Configure SELinux"
[hana-x-82] "INFO: When running in normal mode, the role will set the SELinux state to 'disabled' (variable sap_preconfigure_selinux_state)."
[hana-x-82] "PASS: The system is configured for the SELinux state of 'disabled'"
[hana-x-82] "PASS: SELinux is currently disabled."
[...]
[hana-x-82] "SAP note 2772999 Step 6: Configure uuidd"
[hana-x-82] "PASS: Service 'uuidd' is available."
[hana-x-82] "INFO: The 'uuidd' service is in status 'indirect' and in state 'stopped'."
[hana-x-82] "PASS: Service 'uuidd.socket' is enabled."
[hana-x-82] "PASS: Service 'uuidd.socket' is active."
[hana-x-82] "SAP note 2772999 Step 7: Configure tmpfs; memtotal_mb = 64161; swaptotal_mb = 25595; sap_preconfigure_size_of_tmpfs_gb = 66"
[hana-x-82] "PASS: An entry for 'tmpfs' in /etc/fstab exists."
[hana-x-82] "FAIL: The size of tmpfs in /etc/fstab is '7G' but the expected size is '66G!"
[hana-x-82] "FAIL: The current size of tmpfs is '7G' but the expected size is '66G!"
[hana-x-82] "SAP note 2772999 Step 8: Configure Linux Kernel Parameters"
[hana-x-82] "PASS: File /etc/sysctl.d/sap.conf exist."
[hana-x-82] "PASS: File /etc/sysctl.d/sap.conf is a regular file."
[hana-x-82] "PASS: The value of 'vm.max_map_count' in '/etc/sysctl.d/sap.conf' is '2147483647'."
[hana-x-82] "PASS: The current value of 'vm.max_map_count' as per sysctl is '2147483647'."
[hana-x-82] "PASS: The value of 'kernel.pid_max' in '/etc/sysctl.d/sap.conf' is '4194304'."
[hana-x-82] "PASS: The current value of 'kernel.pid_max' as per sysctl is '4194304'."
[hana-x-82] "SAP note 2772999 Step 9: Configure Process Resource Limits"
[hana-x-82] "PASS: File /etc/security/limits.d/99-sap.conf exist."
[hana-x-82] "PASS: File /etc/security/limits.d/99-sap.conf is a regular file."
[hana-x-82] "PASS: The hard limit of nofile for group 'sapsys' in /etc/security/limits.d/99-sap.conf is '65536'."
[hana-x-82] "PASS: The soft limit of nofile for group 'sapsys' in /etc/security/limits.d/99-sap.conf is '65536'."
[hana-x-82] "PASS: The hard limit of nproc for group 'sapsys' in /etc/security/limits.d/99-sap.conf is 'unlimited'."
[hana-x-82] "PASS: The soft limit of nproc for group 'sapsys' in /etc/security/limits.d/99-sap.conf is 'unlimited'."
[hana-x-82] "SAP note 2772999 Step 10: Configure systemd-tmpfiles"
[hana-x-82] "PASS: File /etc/tmpfiles.d/sap.conf exist."
[hana-x-82] "PASS: The RHEL release 8.2 is supported for SAP HANA."
[hana-x-82] "PASS: Repository 'rhel-8-for-x86_64-baseos-e4s-rpms' is enabled."
[hana-x-82] "PASS: Repository 'rhel-8-for-x86_64-appstream-e4s-rpms' is enabled."
[hana-x-82] "PASS: Repository 'rhel-8-for-x86_64-sap-solutions-e4s-rpms' is enabled."
[hana-x-82] "PASS: The RHEL release is correctly locked to '8.2'."
[hana-x-82] "PASS: Package 'expect' is installed."
[hana-x-82] "PASS: Package 'graphviz' is installed."
[hana-x-82] "PASS: Package 'iptraf-ng' is installed."
[hana-x-82] "PASS: Package 'krb5-workstation' is installed."
[hana-x-82] "PASS: Package 'libatomic' is installed."
[...]
[hana-x-82] "PASS: Package 'xfsprogs' is installed."
[hana-x-82] "PASS: Package 'gtk2' is installed."
[hana-x-82] "PASS: Package 'libtool-ltdl' is installed."
[hana-x-82] "PASS: Package 'tuned-profiles-sap-hana' is installed."
[hana-x-82] "PASS: Package 'kernel' is already installed as kernel-4.18.0-193.40.1.el8_2 or later.Currently installed latest version: kernel-4.18.0-193.51.1.el8_2."
[hana-x-82] "INFO: Not checking for possible package updates (variable sap_hana_preconfigure_update)."
[hana-x-82] "PASS: System needs no restart."
hana-x-82 SAP ノート 2777782 ステップ 2: プロファイル sap-hana を使用するように tuned を設定する
[hana-x-82] "INFO: The installed version of package tuned is: 2.13.0"
[hana-x-82] "PASS: Service 'tuned' is available."
[hana-x-82] "PASS: Service 'tuned' is enabled."
[hana-x-82] "PASS: Service 'tuned' is active."
[hana-x-82] "INFO: The installed version of package 'tuned-profiles-sap-hana' is: 2.13.0"
[hana-x-82] "PASS: The tuned profile 'sap-hana' is currently active."
[...]
[hana-x-82] "SAP note 2777782 Step 10: Increase kernel.pid_max"
[hana-x-82] "PASS: File /etc/sysctl.d/sap.conf exists."
[hana-x-82] "PASS: File /etc/sysctl.d/sap.conf is a regular file."
[hana-x-82] "PASS: The value of 'kernel.pid_max' in /etc/sysctl.d/sap.conf is '4194304'."
[hana-x-82] "PASS: The current value of 'kernel.pid_max' as per sysctl is '4194304'."
[hana-x-82] "SAP note 2777782 Step 11: Enable TSX (Intel Transactional Synchronization Extensions)"
[hana-x-82] "SAP note 2382421: Recommended network settings for SAP HANA"
[hana-x-82] "PASS: File /etc/sysctl.d/sap_hana.conf exists."
[hana-x-82] "PASS: File /etc/sysctl.d/sap_hana.conf is a regular file."
[hana-x-82] "PASS: The value of 'net.core.somaxconn' in '/etc/sysctl.d/sap_hana.conf' is '4096'."
[hana-x-82] "PASS: The current value of 'net.core.somaxconn' as per sysctl is '4096'."
[hana-x-82] "PASS: The value of 'net.ipv4.tcp_max_syn_backlog' in '/etc/sysctl.d/sap_hana.conf' is '8192'."
[hana-x-82] "PASS: The current value of 'net.ipv4.tcp_max_syn_backlog' as per sysctl is '8192'."
[hana-x-82] "PASS: The value of 'net.ipv4.tcp_timestamps' in '/etc/sysctl.d/sap_hana.conf' is '1'."
[hana-x-82] "PASS: The current value of 'net.ipv4.tcp_timestamps' as per sysctl is '1'."
[hana-x-82] "PASS: The value of 'net.ipv4.tcp_slow_start_after_idle' in '/etc/sysctl.d/sap_hana.conf' is '0'."
[hana-x-82] "PASS: The current value of 'net.ipv4.tcp_slow_start_after_idle' as per sysctl is '0'."
[hana-x-82] "SAP note 3024346: Linux Kernel Settings for NetApp NFS"
[hana-x-82] hana-x-82                   : ok=234  changed=0    unreachable=0    failed=0    skipped=90   rescued=0    ignored=2   
---
[hana-x-82] FAIL: 3  WARN: 0  PASS: 107

8. 関連情報{#Related-Information}