インストール


Red Hat Enterprise Linux AI 1.5

さまざまなプラットフォームのインストールドキュメント

Red Hat RHEL AI Documentation Team

概要

このドキュメントでは、起動可能なコンテナーイメージが含まれるマシンに RHEL AI をインストールする手順を説明します。

第1章 インストールの概要

Red Hat Enterprise Linux AI は、起動可能なイメージとして配布およびインストール可能です。この起動可能なイメージには、RHEL AI 用のさまざまなソフトウェアとツールを保持するコンテナーが含まれています。各イメージは、特定のハードウェアベンダーをサポートするようにコンパイルされます。各 RHEL AI イメージには以下が含まれます。

  • Red Hat Enterprise Linux 9.4: マシン用の RHEL バージョン 9.4 オペレーティングシステム (OS)。
  • InstructLab コンテナー: InstructLab と RHEL AI には、他にも必要なさまざまなツールが含まれています。ここでは、以下の点を説明します。

    • Python バージョン 3.11: InstructLab が内部で使用する Python 3.11 インストール。
    • InstructLab ツール:

      • InstructLab コマンドラインインターフェイス (CLI)。
      • 合成データ生成 (SDG) の LAB 強化手法。
      • 複数フェーズトレーニングの LAB で強化された手法。
    • InstructLab with vLLM: 大規模言語モデル (LLM) 用の高入力推論およびサービングエンジン。
    • InstructLab with DeepSpeed: トレーニングプロセスを高速化するハードウェア最適化ソフトウェア。FSDP と同様の機能。
    • InstructLab with FSDP: トレーニングをより迅速かつ効率的にするトレーニングフレームワーク。DeepSpeed と同様の機能

Red Hat Enterprise Linux AI バージョン 1.5 には、ダウンロードしてモデルのトレーニングに使用できるサンプルのスキルとナレッジを含むサンプルのタクソノミーツリーも含まれています。

一般公開のバージョンでは、Red Hat Enterprise Linux AI をインストールおよびデプロイするためのオプションが 3 つあります。

Red Hat Enterprise Linux AI の一般公開バージョンをインストールしたら、チャットや対話ができるオープンソースの Granite LLM を手動でダウンロードできます。これらのモデルのダウンロードの詳細は、追加モデルのダウンロード を参照してください。

第2章 ベアメタルへの RHEL AI のインストール

Red Hat Enterprise Linux AI をベアメタルにインストールするには、次の手順で説明するさまざまな方法を使用して、マシンを起動してデプロイし、Red Hat Enterprise Linux AI とのやり取りを開始できます。

2.1. ベアメタルへの RHEL AI のデプロイ

次の方法で、RHEL AI ISO イメージを使用して Red Hat Enterprise Linux AI をデプロイできます。

  • キックスタート
  • RHEL グラフィカルユーザーインターフェイス (GUI)

このイメージは、さまざまなハードウェアアクセラレーターで起動可能です。サポートされているハードウェアの詳細は、「スタートガイド」の「Red Hat Enterprise Linux AI ハードウェア要件」を参照してください。

前提条件

重要

Red Hat Enterprise Linux AI では、RHEL AI データ用の追加ストレージと、イメージモードの Red Hat Enterprise Linux の更新が必要です。InstructLab データのデフォルトのロケーションは、home/<user> ディレクトリー配下にあります。/home ディレクトリーのデータストレージの最小推奨値は 1 TB です。更新中、bootc コマンドは、一時データを保存するための追加のスペースを必要とします。/ パスの最小ストレージ推奨値は 120 GB です。ディスクのスキームをパーティション設定するときは、マシンのストレージを考慮する必要があります。

手順

  • インタラクティブ GUI

    インタラクティブな Red Hat Enterprise Linux グラフィカルインストーラーと RHEL AI ISO イメージを使用して、マシンに RHEL AI をデプロイできます。GUI を使用して ISO ファイルから RHEL を起動する方法は、インストールメディアからの RHEL の対話型インストール を参照してください。

  • 埋め込みコンテナーイメージを使用したキックスタート

    1. 独自のキックスタートファイルを使用して、RHEL AI インストールをカスタマイズできます。

      1. 任意のパラメーターを使用して、独自のキックスタートファイルを作成します。キックスタートファイルの作成の詳細は、RHEL ドキュメントの キックスタートファイルの作成 を参照してください。

        RHEL AI のサンプルキックスタートファイル rhelai-bootc.ks

        # use the embedded container image
        ostreecontainer --url=/run/install/repo/container --transport=oci --no-signature-verification
        
        # switch bootc to point to Red Hat container image for upgrades
        %post
        bootc switch --mutate-in-place --transport registry registry.redhat.io/rhelai1/bootc-nvidia-rhel9:1.5
        touch /etc/cloud/cloud-init.disabled
        %end
        
        ## user customizations follow
        
        # customize this for your target system network environment
        network --bootproto=dhcp --device=link --activate
        
        # customize this for your target system desired disk partitioning
        clearpart --all --initlabel --disklabel=gpt
        reqpart --add-boot
        part / --grow --fstype xfs
        
        # services can also be customized via Kickstart
        firewall --disabled
        services --enabled=sshd
        
        # optionally add a user
        user --name=cloud-user --groups=wheel --plaintext --password <password>
        sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....."
        
        # if desired, inject an SSH key for root
        rootpw --iscrypted locked
        sshkey --username root "ssh-ed25519 AAAAC3Nza..."
        reboot

        サンプルキックスタートは、ISO ファイルに埋め込まれたコンテナーイメージを使用します。これは、--url=/run/install/repo/container パラメーターを指定した ostreecontainer コマンドで指示します。bootc switch パラメーターは、今後の更新用に Red Hat レジストリーを参照し、独自のカスタマイズを追加できます。

      2. マシンを再起動して RHEL AI をデプロイできるように、キックスタートを RHEL AI ISO に埋め込む必要があります。次の例では、rhelai-bootc.ks はブート ISO に埋め込むキックスタートファイルの名前です。mkksiso ユーティリティーは、lorax rpm パッケージにあります。

        $ mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso

        ここでは、以下のようになります。

        <downloaded-iso-image>
        RHEL AI ダウンロードページ からダウンロードした ISO イメージを指定します。
      3. その後、このブート ISO を使用してマシンを起動すると、インストールが自動的に開始します。インストールが完了すると、ホストが再起動し、キックスタートファイルで使用された認証情報を使用して新しいシステムにログインできるようになります。

        重要

        ISO にカスタムキックスタートが含まれていると、ユーザーにプロンプトを表示せずに、インストールとディスクのパーティション設定が自動的に開始することに注意してください。設定によっては、ローカルストレージが完全に消去されるか、上書きされる可能性があります。

  • カスタムのコンテナーイメージを使用したキックスタート

    任意のパラメーターでキックスタートファイルをカスタマイズして、マシン上で Red Hat Enterprise Linux AI を起動できます。

    1. 任意のパラメーターを使用して、独自のキックスタートファイルを作成します。キックスタートファイルの作成の詳細は、RHEL ドキュメントの キックスタートファイルの作成 を参照してください。

      RHEL AI のサンプルキックスタートファイル rhelai-bootc.ks

      # customize this for your target system network environment
      network --bootproto=dhcp --device=link --activate
      
      # customize this for your target system desired disk partitioning
      clearpart --all --initlabel --disklabel=gpt
      reqpart --add-boot
      part / --grow --fstype xfs
      
      # customize this to include your own bootc container
      ostreecontainer --url quay.io/<your-user-name>/nvidia-bootc:latest
      
      # services can also be customized via Kickstart
      firewall --disabled
      services --enabled=sshd
      
      # optionally add a user
      user --name=cloud-user --groups=wheel --plaintext --password <password>
      sshkey --username cloud-user "ssh-ed25519 AAAAC3Nza....."
      
      # if desired, inject an SSH key for root
      rootpw --iscrypted locked
      sshkey --username root "ssh-ed25519 AAAAC3Nza..."
      reboot

    2. マシンを再起動して RHEL AI をデプロイできるように、キックスタートを RHEL AI ISO に埋め込む必要があります。次の例では、rhelai-bootc.ks はブート ISO に埋め込むキックスタートファイルの名前です。mkksiso ユーティリティーは、lorax rpm パッケージにあります。

      $ mkksiso rhelai-bootc.ks <downloaded-iso-image> rhelai-bootc-ks.iso

      ここでは、以下のようになります。

      <downloaded-iso-image>
      RHEL AI ダウンロードページ からダウンロードした ISO イメージを指定します。
    3. その後、このブート ISO を使用してマシンを起動すると、インストールが自動的に開始します。インストールが完了すると、ホストが再起動し、キックスタートファイルで使用された認証情報を使用して新しいシステムにログインできるようになります。

      重要

      ISO にカスタムキックスタートが含まれていると、ユーザーにプロンプトを表示せずに、インストールとディスクのパーティション設定が自動的に開始することに注意してください。設定によっては、ローカルストレージが完全に消去されるか、上書きされる可能性があります。

検証

  • Red Hat Enterprise Linux AI ツールが正しくインストールされていることを確認するには、ilab コマンドを実行する必要があります。

    $ ilab

    出力例

    $ ilab
    Usage: ilab [OPTIONS] COMMAND [ARGS]...
    
      CLI for interacting with InstructLab.
    
      If this is your first time running ilab, it's best to start with `ilab
      config init` to create the environment.
    
    Options:
      --config PATH  Path to a configuration file.  [default:
                     /Users/kellybrown/.config/instructlab/config.yaml]
      -v, --verbose  Enable debug logging (repeat for even more verbosity)
      --version      Show the version and exit.
      --help         Show this message and exit.
    
    Commands:
      config    Command Group for Interacting with the Config of InstructLab.
      data      Command Group for Interacting with the Data generated by...
      model     Command Group for Interacting with the Models in InstructLab.
      system    Command group for all system-related command calls
      taxonomy  Command Group for Interacting with the Taxonomy of InstructLab.
    
    Aliases:
      chat      model chat
      generate  data generate
      serve     model serve
      train     model train

Red Hat Enterprise Linux AI の更新

RHEL AI の最新の z-stream バージョンに更新するには、Red Hat Enterprise Linux AI の更新 ドキュメントの手順に従ってください。

第3章 AWS への RHEL AI のインストール

AWS に Red Hat Enterprise Linux AI をインストールしてデプロイする方法は複数あります。

RAW ファイルを使用して RHEL AI をインストールおよびデプロイするには、まず RHEL AI イメージを Amazon Machine Image (AMI) に変換する必要があります。

3.1. RHEL AI イメージの AWS AMI への変換

RHEL AI を AWS マシンにデプロイする前に、S3 バケットを設定し、RHEL AI イメージを AWS AMI に変換する必要があります。

次のプロセスでは、次のリソースを作成します。

  • RHEL AI イメージを含む S3 バケット
  • AWS EC2 スナップショット
  • AWS AMI
  • AWS インスタンス

前提条件

手順

  1. AWS のドキュメント に従って、AWS コマンドラインツールをインストールします。
  2. S3 バケットを作成し、イメージファイルの AWS スナップショットへの変換を許可する権限を設定する必要があります。

    1. 次のコマンドを実行して、必要な環境変数を作成します。

      $ export BUCKET=<custom_bucket_name>
      $ export RAW_AMI=nvidia-bootc.ami
      $ export AMI_NAME="rhel-ai"
      $ export DEFAULT_VOLUME_SIZE=1000
      注記

      AWS では、DEFAULT_VOLUME_SIZE は GB 単位で測定されます。

    2. 以下のコマンドを実行して S3 バケットを作成できます。

      $ aws s3 mb s3://$BUCKET
    3. バケットに S3 ロールを生成するために必要な設定で trust-policy.json ファイルを作成する必要があります。

      $ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json
    4. 名前を付けることができるバケットの S3 ロールを作成します。以下のコマンド例では、vmiport がロールの名前です。

      $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
    5. バケットにポリシーを生成するために必要な設定で role-policy.json ファイルを作成する必要があります。

      $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json
    6. 以下のコマンドを実行してバケットのポリシーを作成します。

      $ aws iam put-role-policy --role-name vmimport --policy-name vmimport-$BUCKET --policy-document file://role-policy.json
  3. S3 バケットがセットアップされました。Red Hat Enterprise Linux AI ダウンロードページ から RAW イメージをダウンロードする必要があります。
  4. RAW イメージリンクをコピーし、次のコマンドに追加します。

    $ curl -Lo disk.raw.gz <link-to-raw-file>
  5. 次のコマンドで raw.gz ファイルを展開します。

    $ gunzip disk.raw.gz
  6. 次のコマンドを使用して、イメージを S3 バケットにアップロードします。

    $ aws s3 cp disk.raw s3://$BUCKET/$RAW_AMI
  7. 次のコマンドを実行して、イメージをスナップショットに変換し、task_id 変数名に保存します。

    $ printf '{ "Description": "my-image", "Format": "raw", "UserBucket": { "S3Bucket": "%s", "S3Key": "%s" } }' $BUCKET $RAW_AMI > containers.json
    $ task_id=$(aws ec2 import-snapshot --disk-container file://containers.json | jq -r .ImportTaskId)
  8. 次のコマンドを使用して、ディスクイメージからスナップショットへの変換ジョブの進行状況を確認できます。

    $ aws ec2 describe-import-snapshot-tasks --filters Name=task-state,Values=active
  9. 変換ジョブが完了したら、次のコマンドを実行してスナップショット ID を取得し、それを snapshot_id という変数に保存できます。

    $ snapshot_id=$(aws ec2 describe-import-snapshot-tasks | jq -r '.ImportSnapshotTasks[] | select(.ImportTaskId=="'${task_id}'") | .SnapshotTaskDetail.SnapshotId')
  10. 次のコマンドを実行して、スナップショットにタグ名を追加し、識別しやすくします。

    $ aws ec2 create-tags --resources $snapshot_id --tags Key=Name,Value="$AMI_NAME"
  11. 次のコマンドを使用して、スナップショットから AMI を登録します。

    $ ami_id=$(aws ec2 register-image  \
        --name "$AMI_NAME" \
        --description "$AMI_NAME" \
        --architecture x86_64 \
        --root-device-name /dev/sda1 \
        --block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeSize=${DEFAULT_VOLUME_SIZE},SnapshotId=${snapshot_id}}" \
        --virtualization-type hvm \
        --ena-support \
        | jq -r .ImageId)
  12. 次のコマンドを実行して、別のタグ名を追加して AMI を識別できます。

    $ aws ec2 create-tags --resources $ami_id --tags Key=Name,Value="$AMI_NAME"

3.2. CLI を使用した AWS へのインスタンスのデプロイ

AWS Web コンソールまたは CLI から、新しい RHEL AI AMI を使用して AWS インスタンスを起動できます。インスタンスを起動するには、どちらのデプロイメント方法でも使用できます。次の手順では、CLI を使用してカスタム AMI で AWS インスタンスを起動する方法を示します。

デプロイメントオプションとして CLI を使用する場合、「前提条件」に示すように、いくつかの設定を作成する必要があります。

前提条件

  • RHEL AI AMI を作成している。詳細は、「RHEL AI イメージの AWS AMI への変換」を参照してください。
  • AWS コマンドラインツール がインストールされており、aws_access_key_id および aws_secret_access_key で適切に設定されている。
  • Virtual Private Cloud (VPC) が設定されている。
  • インスタンスのサブネットが作成されている。
  • SSH キーペアを作成している。
  • AWS にセキュリティーグループを作成している。

手順

  1. さまざまなパラメーターには、変数の ID を収集する必要があります。

    1. イメージ ID にアクセスするには、次のコマンドを実行します。

      $ aws ec2 describe-images --owners self
    2. セキュリティーグループ ID にアクセスするには、次のコマンドを実行します。

      $ aws ec2 describe-security-groups
    3. サブネット ID にアクセスするには、次のコマンドを実行します。

      $ aws ec2 describe-subnets
  2. インスタンスを作成するときに環境変数を設定します。

    $ instance_name=rhel-ai-instance
    $ ami=<ami-id>
    $ instance_type=<instance-type-size>
    $ key_name=<key-pair-name>
    $ security_group=<sg-id>
    $ disk_size=<size-of-disk>
  3. 次のコマンドを実行し、変数を使用してインスタンスを作成します。

    $ aws ec2 run-instances \
        --image-id $ami \
        --instance-type $instance_type \
        --key-name $key_name \
        --security-group-ids $security_group \
        --subnet-id $subnet \
        --block-device-mappings DeviceName=/dev/sda1,Ebs='{VolumeSize='$disk_size'}' \
        --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value='$instance_name'}]'

ユーザーアカウント

RHEL AI AMI のデフォルトのユーザーアカウントは cloud-user です。パスワードなしで sudo 経由ですべての権限が与えられています。

検証

  • Red Hat Enterprise Linux AI ツールが正しくインストールされていることを確認するには、ilab コマンドを実行する必要があります。

    $ ilab

    出力例

    $ ilab
    Usage: ilab [OPTIONS] COMMAND [ARGS]...
    
      CLI for interacting with InstructLab.
    
      If this is your first time running ilab, it's best to start with `ilab
      config init` to create the environment.
    
    Options:
      --config PATH  Path to a configuration file.  [default:
                     /home/<user>/.config/instructlab/config.yaml]
      -v, --verbose  Enable debug logging (repeat for even more verbosity)
      --version      Show the version and exit.
      --help         Show this message and exit.
    
    Commands:
      config    Command Group for Interacting with the Config of InstructLab.
      data      Command Group for Interacting with the Data generated by...
      model     Command Group for Interacting with the Models in InstructLab.
      system    Command group for all system-related command calls
      taxonomy  Command Group for Interacting with the Taxonomy of InstructLab.
    
    Aliases:
      chat      model chat
      generate  data generate
      serve     model serve
      train     model train

Red Hat Enterprise Linux AI の更新

RHEL AI の最新の z-stream バージョンに更新するには、Red Hat Enterprise Linux AI の更新 ドキュメントの手順に従ってください。

第4章 IBM クラウドへの RHEL AI のインストール

IBM Cloud に Red Hat Enterprise Linux AI をインストールしてデプロイするには、まず RHEL AI イメージを IBM Cloud イメージに変換する必要があります。その後、IBM Cloud イメージを使用してインスタンスを起動し、IBM Cloud マシンに RHEL AI をデプロイできます。

4.1. RHEL AI イメージの IBM Cloud イメージへの変換

IBM Cloud で起動可能なイメージを作成するには、IBM Cloud アカウントを設定し、Cloud Object Storage (COS) バケットをセットアップして、RHEL AI イメージを使用して IBM Cloud イメージを作成する必要があります。

前提条件

手順

  1. 次のコマンドを使用して、IBM Cloud にログインします。

    $ ibmcloud login

    プロンプトが表示されたら、ログインするアカウントを選択します。

    ログインの出力例

    $ ibmcloud login
    API endpoint: https://cloud.ibm.com
    Region: us-east
    
    Get a one-time code from https://identity-1.eu-central.iam.cloud.ibm.com/identity/passcode to proceed.
    Open the URL in the default browser? [Y/n] >
    One-time code >
    Authenticating...
    OK
    
    Select an account:
    1. <account-name>
    2. <account-name-2>
    
    API endpoint:     https://cloud.ibm.com
    Region:           us-east
    User:             <user-name>
    Account:          <selected-account>
    Resource group:   No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP'

  2. QCOW2 イメージを生成する前に、さまざまな IBM Cloud 設定を設定し、COS バケットを作成する必要があります。

    1. 次のコマンドを実行すると、必要な IBM Cloud プラグインをインストールできます。

      $ ibmcloud plugin install cloud-object-storage infrastructure-service
    2. 任意のリソースグループを設定します。次のコマンド例では、Default という名前のリソースグループを設定します。

      $ ibmcloud target -g Default
    3. 任意のリージョンを設定します。次のコマンド例では us-east リージョンを設定します。

      $ ibmcloud target -r us-east
    4. サービスインスタンスのデプロイメントプランを選択する必要があります。IBM Cloud Web サイトでプロパティーと価格を確認してください。

      1. 次のコマンドを実行すると、利用可能なデプロイメントプランをリスト表示できます。

        $ ibmcloud catalog service cloud-object-storage --output json | jq -r '.[].children[] | select(.children != null) | .children[].name'
      2. 次のコマンド例では、premium-global- デプロイメント プランを使用し、それを環境変数 cos_deploy_plan に格納します。

        $ cos_deploy_plan=premium-global-deployment
      3. Cloud Object Storage (COS) サービスインスタンスを作成し、cos_si_name という名前の環境変数に名前を保存し、次のコマンドを実行して cloud-object-storage を作成します。

        $ cos_si_name=THE_NAME_OF_YOUR_SERVICE_INSTANCE
        $ ibmcloud resource service-instance-create ${cos_si_name} cloud-object-storage standard global -d ${cos_deploy_plan}
    5. 次のコマンドを実行して、cos_crn という変数内の Cloud Object Storage (COS) バケットの Cloud Resource Name (CRN) を取得します。

      $ cos_crn=$(ibmcloud resource service-instance ${cos_si_name} --output json| jq -r '.[] | select(.crn | contains("cloud-object-storage")) | .crn')
      $ ibmcloud cos config crn --crn ${cos_crn} --force
    6. 次のコマンドを使用して、環境変数 bucket_name という名前の Cloud Object Storage (COS) バケットを作成します。

      $ bucket_name=NAME_OF_MY_BUCKET
      $ ibmcloud cos bucket-create --bucket ${bucket_name}
    7. 次のコマンドを実行して、インフラストラクチャーサービスにより、サービスインスタンス ${cos_si_guid} 変数にあるバケットが読み取れるように許可します。

      $ cos_si_guid=$(ibmcloud resource service-instance ${cos_si_name} --output json| jq -r '.[] | select(.crn | contains("cloud-object-storage")) | .guid')
      $ ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id ${cos_si_guid}
  3. IBM Cloud Object Storage (CoS) サービスインスタンスバケットがセットアップされました。Red Hat Enterprise Linux AI ダウンロードページ から QCOW2 イメージをダウンロードする必要があります。
  4. QCOW2 イメージリンクをコピーし、次のコマンドに追加します。

    $ curl -Lo disk.qcow2 "PASTE_HERE_THE_LINK_OF_THE_QCOW2_FILE"
  5. RHEL AI IBM Cloud イメージとして使用する名前を設定します

    $ image_name=rhel-ai-20240703v0
  6. 次のコマンドを実行して、選択したリージョンの Cloud Object Storage (COS) バケットに QCOW2 イメージをアップロードします。

    $ ibmcloud cos upload --bucket ${bucket_name} --key ${image_name}.qcow2 --file disk.qcow2 --region <region>
  7. 次のコマンドを使用して、アップロードした QCOW2 を IBM Cloud イメージに変換します。

    $ ibmcloud is image-create ${image_name} --file cos://<region>/${bucket_name}/${image_name}.qcow2 --os-name red-ai-9-amd64-nvidia-byol
  8. ジョブが起動したら、次のコマンドを実行して、IBM Cloud イメージ設定を image_id という変数に設定します。

    $ image_id=$(ibmcloud is images --visibility private --output json | jq -r '.[] | select(.name=="'$image_name'") | .id')
  9. 次のコマンドでジョブの進行状況を表示できます。

    $ while ibmcloud is image --output json ${image_id} | jq -r .status | grep -xq pending; do sleep 1; done
  10. 次のコマンドで、新しく作成されたイメージの情報を表示できます。

    $ ibmcloud is image ${image_id}

4.2. CLI を使用した IBM Cloud へのインスタンスのデプロイ

IBM Cloud Web コンソールまたは CLI から、新しい RHEL AI IBM Cloud イメージを使用してインスタンスを起動できます。インスタンスを起動するには、どちらのデプロイメント方法でも使用できます。次の手順では、CLI を使用してカスタム IBM Cloud イメージで IBM Cloud インスタンスを起動する方法を示します。

デプロイメントオプションとして CLI を使用する場合は、「前提条件」に示すように、いくつかの設定を作成する必要があります。

前提条件

  • RHEL AI IBM Cloud イメージを作成している。詳細は、「RHEL AI イメージの IBM Cloud イメージへの変換」を参照してください。
  • IBM CLI を特定のマシンにインストールしている。スタンドアロンの IBM Cloud CLI のインストール を参照してください。
  • Virtual Private Cloud (VPC) が設定されている。
  • インスタンスのサブネットが作成されている。

手順

  1. IBM Cloud アカウントにログインし、次のコマンドを実行してアカウント、リージョン、リソースグループを選択します。

    $ ibmcloud login -c <ACCOUNT_ID> -r <REGION> -g <RESOURCE_GROUP>
  2. CLI で IBM Cloud インスタンスを起動する前に、インスタンス用にいくつかの設定変数を作成する必要があります。

    1. 次のコマンドを実行して、IBM Cloud の infrastructure-service プラグインをインストールします。

      $ ibmcloud plugin install infrastructure-service
    2. IBM Cloud アカウントの SSH 公開鍵を作成する必要があります。IBM Cloud は RSA 鍵と ed25519 鍵をサポートしています。次のコマンド例では、ed25519 鍵タイプを使用し、ibmcloud という名前を付けます。

      $ ssh-keygen -f ibmcloud -t ed25519
    3. これで、次のサンプルコマンドに従って、公開鍵を IBM Cloud アカウントにアップロードできます。

      $ ibmcloud is key-create my-ssh-key @ibmcloud.pub --key-type ed25519
    4. サンプルコマンドに従って、IBM Cloud インスタンスの Floating IP を作成する必要があります。必ずリージョンを希望のゾーンに変更してください。

      $ ibmcloud is floating-ip-reserve my-public-ip --zone <region>
  3. デプロイメントに使用するインスタンスプロファイルを選択する必要があります。次のコマンドを実行して、すべてのプロファイルをリスト表示します。

    $ ibmcloud is instance-profiles

    希望するインスタンスプロファイルをメモしておきます。インスタンスのデプロイメントに必要になります。

  4. これで、IBM Cloud インスタンスの作成を開始できます。インスタンスを作成するときに環境変数を設定します。

    name=my-rhelai-instance
    vpc=my-vpc-in-us-east
    zone=us-east-1
    subnet=my-subnet-in-us-east-1
    instance_profile=gx3-64x320x4l4
    image=my-custom-rhelai-image
    sshkey=my-ssh-key
    floating_ip=my-public-ip
    disk_size=250
  5. 次のコマンドを実行して、インスタンスを起動できます。

    $ ibmcloud is instance-create \
        $name \
        $vpc \
        $zone \
        $instance_profile \
        $subnet \
        --image $image \
        --keys $sshkey \
        --boot-volume '{"name": "'${name}'-boot", "volume": {"name": "'${name}'-boot", "capacity": '${disk_size}', "profile": {"name": "general-purpose"}}}' \
        --allow-ip-spoofing false
  6. 次のコマンドを実行して、Floating IP をインスタンスにリンクします。

    $ ibmcloud is floating-ip-update $floating_ip --nic primary --in $name

ユーザーアカウント

RHEL AI AMI のデフォルトのユーザーアカウントは cloud-user です。パスワードなしで sudo 経由ですべての権限が与えられています。

検証

  • Red Hat Enterprise Linux AI ツールが正しくインストールされていることを確認するには、ilab コマンドを実行します。

    $ ilab

    出力例

    $ ilab
    Usage: ilab [OPTIONS] COMMAND [ARGS]...
    
      CLI for interacting with InstructLab.
    
      If this is your first time running ilab, it's best to start with `ilab
      config init` to create the environment.
    
    Options:
      --config PATH  Path to a configuration file.  [default:
                     /home/<user>/.config/instructlab/config.yaml]
      -v, --verbose  Enable debug logging (repeat for even more verbosity)
      --version      Show the version and exit.
      --help         Show this message and exit.
    
    Commands:
      config    Command Group for Interacting with the Config of InstructLab.
      data      Command Group for Interacting with the Data generated by...
      model     Command Group for Interacting with the Models in InstructLab.
      system    Command group for all system-related command calls
      taxonomy  Command Group for Interacting with the Taxonomy of InstructLab.
    
    Aliases:
      chat      model chat
      generate  data generate
      serve     model serve
      train     model train

4.3. IBM Cloud インスタンスへのストレージの追加

[ibm-c] では、メインの IBM Cloud ディスクのストレージに 250 GB のサイズ制限があります。RHEL AI では、モデルと生成データ用にさらに多くのストレージが必要になる場合があります。

インスタンスに追加のディスクをアタッチし、それを使用して RHEL AI のデータを保持することで、ストレージを追加できます。

前提条件

  • IBM Cloud RHEL AI インスタンスがある。

手順

  1. 次のコマンドを実行して、name と呼ばれる環境変数を作成し、使用するインスタンスの名前を代入します。

    $ name=my-rhelai-instance
  2. 次のコマンドを実行して、新しいボリュームのサイズを設定します。

    $ data_volume_size=1000
  3. 次のコマンドを実行して、インスタンスボリュームを作成してアタッチします。

    $ ibmcloud is instance-volume-attachment-add data ${name} \
        --new-volume-name ${name}-data \
        --profile general-purpose \
        --capacity ${data_volume_size}
  4. 次のコマンドですべてのディスクをリスト表示できます。

    $ lsblk
  5. 使用しているディスクパスの内容を指定して disk 変数を作成します。以下のコマンド例は、/dev/vdb パスを使用します。

    $ disk=/dev/vdb
  6. 次のコマンドを実行して、ディスク上にパーティションを作成します。

    $ sgdisk -n 1:0:0 $disk
  7. 次のコマンドを実行して、パーティションをフォーマットし、ラベルを付けます。

    $ mkfs.xfs -L ilab-data ${disk}1
  8. システムを任意のディレクトリーに自動的にマウントするように設定できます。以下のコマンド例では、/mnt ディレクトリーを使用しています。

    $ echo LABEL=ilab-data /mnt xfs defaults 0 0 >> /etc/fstab
  9. 次のコマンドを実行して、マウントの新しい設定を確認するために systemd サービスを再ロードします。

    $ systemctl daemon-reload
  10. 次のコマンドでディスクをマウントします。

    $ mount -a
  11. 次のコマンドを実行して、新しいファイルシステムのすべてのユーザーに書き込み権限を付与します。

    $ chmod 1777 /mnt/

Red Hat Enterprise Linux AI の更新

RHEL AI の最新の z-stream バージョンに更新するには、Red Hat Enterprise Linux AI の更新 ドキュメントの手順に従ってください。

第5章 Google Cloud Platform (GCP) への RHEL AI のインストール

Google Cloud Platform に Red Hat Enterprise Linux AI をインストールしてデプロイするには、まず RHEL AI イメージを GCP イメージに変換する必要があります。その後、GCP イメージを使用してインスタンスを起動し、Google Cloud Platform マシンに RHEL AI をデプロイできます。

5.1. RHEL AI イメージの Google Cloud Platform イメージへの変換

Google Cloud Platform で起動可能なイメージを作成するには、Google Cloud Platform アカウントを設定して、Google Cloud Storage バケットを作成し、RHEL AI raw イメージを使用して Google Cloud Platform イメージを作成する必要があります。

前提条件

  • 特定のマシンに Google Cloud Platform CLI をインストールしている。GCP CLI のインストールの詳細は、Linux に Google Cloud Platform CLI をインストールする を参照してください。
  • Red Hat Enterprise Linux バージョン 9.2 - 9.4 システムを使用している。
  • マシンに追加の 100 GB のディスク容量がある。

手順

  1. 次のコマンドで Google Cloud Platform にログインします。

    $ gcloud auth login

    ログインの出力例

    $ gcloud auth login
    Your browser has been opened to visit:
    
        https://accounts.google.com/o/oauth2/auth?XXXXXXXXXXXXXXXXXXXX
    
    
    You are now logged in as [user@example.com].
    Your current project is [your-project].  You can change this setting by running:
      $ gcloud config set project PROJECT_ID

  2. GCP イメージを作成する前に、いくつかの Google Cloud Platform 設定をセットアップし、GCP Storage Container を作成する必要があります。

    1. プロジェクトを使用するように Google Cloud Platform CLI を設定します。

      $ gcloud_project=your-gcloud-project
      $ gcloud config set project $gcloud_project
    2. 操作するリージョンを定義する環境変数を作成します。

      $ gcloud_region=us-central1
    3. Google Cloud Platform Storage Container を作成します。

      $ gcloud_bucket=name-for-your-bucket
      $ gsutil mb -l $gcloud_region gs://$gcloud_bucket
  3. GCP ストレージコンテナーがセットアップされました。Red Hat Enterprise Linux AI ダウンロードページ から GCP tar.gz イメージをダウンロードする必要があります。
  4. 次のコマンドで tar.gz ファイルを展開します。

    $ gunzip <downloaded-gcp-gz-image>
  5. RHEL AI Google Cloud Platform イメージとして使用する名前を設定します。

    $ image_name=rhel-ai-1-2
  6. 次のコマンドを実行して、tar.gz ファイルを Google Cloud Platform Storage Container にアップロードします。

    $ gsutil cp rhelai_gcp.tar.gz "gs://${gcloud_bucket}/$image_name.tar.gz"
  7. 次のコマンドを使用して、アップロードしたばかりの tar.gz ファイルから Google Cloud Platform イメージを作成します。

    $ gcloud compute images create \
        "$image_name" \
        --source-uri="gs://${gcloud_bucket}/$image_name.tar.gz" \
        --family "rhel-ai" \
        --guest-os-features=GVNIC

5.2. CLI を使用した Google Cloud Platform へのインスタンスのデプロイ

Google Cloud Platform Web コンソールまたは CLI から、新しい RHEL AI Google Cloud Platform イメージを使用してインスタンスを起動できます。インスタンスを起動するには、どちらのデプロイメント方法でも使用できます。次の手順では、CLI を使用してカスタム Google Cloud Platform イメージで Google Cloud Platform インスタンスを起動する方法を示します。

デプロイメントオプションとして CLI を使用する場合は、「前提条件」に示すように、いくつかの設定を作成する必要があります。

前提条件

  • RHEL AI Google Cloud Platform イメージを作成している。詳細は、「RHEL AI イメージの Google Cloud Platform イメージへの変換」を参照してください。
  • 特定のマシンに Google Cloud Platform CLI をインストールしている。Linux に Google Cloud Platform CLI をインストールする を参照してください。

手順

  1. 次のコマンドを実行して、Google Cloud Platform アカウントにログインします。

    $ gcloud auth login
  2. CLI で Google Cloud Platform インスタンスを起動する前に、インスタンス用にいくつかの設定変数を作成する必要があります。
  3. デプロイメントに使用するインスタンスプロファイルを選択する必要があります。次のコマンドを実行して、目的のリージョン内のすべてのプロファイルをリスト表示します。

    $ gcloud compute machine-types list --zones=<zone>

    希望するマシンタイプをメモしてください。インスタンスのデプロイメントに必要になります。

  4. これで、Google Cloud Platform インスタンスの作成を開始できます。インスタンスを作成するときに環境変数を設定します。

    name=my-rhelai-instance
    zone=us-central1-a
    machine_type=a3-highgpu-8g
    accelerator="type=nvidia-h100-80gb,count=8"
    image=my-custom-rhelai-image
    disk_size=1024
    subnet=default
  5. 使用するゾーンを設定します。

    $ gcloud config set compute/zone $zone
  6. 次のコマンドを実行して、インスタンスを起動できます。

    $ gcloud compute instances create \
        ${name} \
        --machine-type ${machine_type} \
        --image $image \
        --zone $zone \
        --subnet $subnet \
        --boot-disk-size ${disk_size} \
        --boot-disk-device-name ${name} \
        --accelerator=$accelerator

検証

  • Red Hat Enterprise Linux AI ツールが正しくインストールされていることを確認するには、ilab コマンドを実行します。

    $ ilab

    出力例

    $ ilab
    Usage: ilab [OPTIONS] COMMAND [ARGS]...
    
      CLI for interacting with InstructLab.
    
      If this is your first time running ilab, it's best to start with `ilab
      config init` to create the environment.
    
    Options:
      --config PATH  Path to a configuration file.  [default:
                     /home/<user>/.config/instructlab/config.yaml]
      -v, --verbose  Enable debug logging (repeat for even more verbosity)
      --version      Show the version and exit.
      --help         Show this message and exit.
    
    Commands:
      config    Command Group for Interacting with the Config of InstructLab.
      data      Command Group for Interacting with the Data generated by...
      model     Command Group for Interacting with the Models in InstructLab.
      system    Command group for all system-related command calls
      taxonomy  Command Group for Interacting with the Taxonomy of InstructLab.
    
    Aliases:
      chat      model chat
      generate  data generate
      serve     model serve
      train     model train

Red Hat Enterprise Linux AI の更新

RHEL AI の最新の z-stream バージョンに更新するには、Red Hat Enterprise Linux AI の更新 ドキュメントの手順に従ってください。

第6章 Azure への RHEL AI のインストール

Azure に Red Hat Enterprise Linux AI をインストールしてデプロイする方法は複数あります。

VHD を使用して Azure に Red Hat Enterprise Linux AI をインストールしてデプロイするには、まず RHEL AI イメージを Azure イメージに変換する必要があります。その後、Azure イメージを使用してインスタンスを起動し、Azure マシンに RHEL AI をデプロイできます。

6.1. RHEL AI イメージの Azure イメージへの変換

Azure で起動可能なイメージを作成するには、Azure アカウントを設定し、Azure ストレージコンテナーを作成し、RHEL AI VHD イメージを使用して Azure イメージを作成する必要があります。

前提条件

手順

  1. 次のコマンドを実行して、Azure にログインします。

    $ az login

    ログインの出力例

    $ az login
    A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
    [
      {
        "cloudName": "AzureCloud",
        "homeTenantId": "c7b976df-89ce-42ec-b3b2-a6b35fd9c0be",
        "id": "79d7df51-39ec-48b9-a15e-dcf59043c84e",
        "isDefault": true,
        "managedByTenants": [],
        "name": "Team Name",
        "state": "Enabled",
        "tenantId": "0a873aea-428f-47bd-9120-73ce0c5cc1da",
        "user": {
          "name": "user@example.com",
          "type": "user"
        }
      }
    ]

  2. 次のコマンドを使用して、azcopy ツールでログインします。

    $ keyctl new_session
    $ azcopy login
  3. Azure イメージを作成する前に、さまざまな Azure 設定をセットアップし、Azure Storage Container を作成する必要があります。

    1. 次のコマンドを使用して、インスタンスのロケーションを定義する環境変数を作成します。

      $ az_location=eastus
    2. リソースグループを作成し、その名前を az_resource_group という名前の環境変数に保存します。次の例では、eastus のロケーションに Default という名前のリソースグループを作成します。(既存のリソースグループを使用する場合は、この手順を省略できます)。

      $ az_resource_group=Default
      $ az group create --name ${az_resource_group} --location ${az_location}
    3. 次のコマンドを実行して、Azure ストレージアカウントを作成し、az_storage_account という名前の環境変数に名前を保存します。

      $ az_storage_account=THE_NAME_OF_YOUR_STORAGE_ACCOUNT
      $ az storage account create \
          --name ${az_storage_account} \
          --resource-group ${az_resource_group} \
          --location ${az_location} \
          --sku Standard_LRS
    4. 次のコマンドを使用して、環境変数 az_storage_container という名前の Azure Storage Container を作成します。

      $ az_storage_container=NAME_OF_MY_BUCKET
      $ az storage container create \
          --name ${az_storage_container} \
          --account-name ${az_storage_account} \
          --public-access off
    5. 次のコマンドを実行すると、Azure アカウントリストからサブスクリプション ID を取得できます。

      $ az account list --output table
    6. サブスクリプション ID を使用して `az_subscription_id` という名前の変数を作成します。

      $ az_subscription_id=46c08fb3-83c5-4b59-8372-bf9caf15a681
    7. ユーザーにストレージコンテナーへの azcopy 書き込み権限を付与します。この例では、ユーザー user@example.com に権限を付与します。

      $ az role assignment create \
          --assignee user@example.com \
          --role "Storage Blob Data Contributor" \
          --scope /subscriptions/${az_subscription_id}/resourceGroups/${az_resource_group}/providers/Microsoft.Storage/storageAccounts/${az_storage_account}/blobServices/default/containers/${az_storage_container}
  4. Azure ストレージコンテナーがセットアップされました。Red Hat Enterprise Linux AI ダウンロードページ から Azure VHD イメージをダウンロードする必要があります。
  5. 次のコマンドで vhd.gz ファイルを展開します。

    $ gunzip <downloaded-azure-gz-image>
  6. RHEL AI Azure イメージとして使用する名前を設定します。

    $ image_name=rhel-ai-1.5
  7. 次のコマンドを実行して、VHD ファイルを Azure Storage Container にアップロードします。

    $ az_vhd_url="https://${az_storage_account}.blob.core.windows.net/${az_storage_container}/$(basename ${vhd_file})"
    $ azcopy copy "$vhd_file" "$az_vhd_url"
  8. 次のコマンドを使用して、アップロードしたばかりの VHD ファイルから Azure イメージを作成します。

    $ az image create --resource-group $az_resource_group \
        --name "$image_name" \
        --source "${az_vhd_url}" \
        --location ${az_location} \
        --os-type Linux \
        --hyper-v-generation V2

6.2. CLI を使用した Azure へのインスタンスのデプロイ

Azure Web コンソールまたは CLI から、新しい RHEL AI Azure イメージを使用してインスタンスを起動できます。インスタンスを起動するには、どちらのデプロイメント方法でも使用できます。次の手順では、CLI を使用してカスタム Azure イメージで Azure インスタンスを起動する方法を示します。

デプロイメントオプションとして CLI を使用する場合は、「前提条件」に示すように、いくつかの設定を作成する必要があります。

前提条件

  • RHEL AI Azure イメージを作成している。詳細は、「RHEL AI イメージの Azure イメージへの変換」を参照してください。
  • 特定のマシンに Azure CLI をインストールしている。Linux に Azure CLI をインストールする を参照してください。

手順

  1. 次のコマンドを実行して、Azure アカウントにログインします。

    $ az login
  2. デプロイメントに使用するインスタンスプロファイルを選択する必要があります。次のコマンドを実行して、目的のリージョン内のすべてのプロファイルをリスト表示します。

    $ az vm list-sizes --location <region> --output table

    希望するインスタンスプロファイルをメモしておきます。インスタンスのデプロイメントに必要になります。

  3. これで、Azure インスタンスの作成を開始できます。インスタンスを作成するときに環境変数を設定します。

    name=my-rhelai-instance
    az_location=eastus
    az_resource_group=my_resource_group
    az_admin_username=azureuser
    az_vm_size=Standard_ND96isr_H100_v5
    az_image=my-custom-rhelai-image
    sshpubkey=$HOME/.ssh/id_rsa.pub
    disk_size=1024
  4. 次のコマンドを実行して、インスタンスを起動できます。

    $ az vm create \
        --resource-group $az_resource_group \
        --name ${name} \
        --image ${az_image} \
        --size ${az_vm_size} \
        --location ${az_location} \
        --admin-username ${az_admin_username} \
        --ssh-key-values @$sshpubkey \
        --authentication-type ssh \
        --nic-delete-option Delete \
        --accelerated-networking true \
        --os-disk-size-gb 1024 \
        --os-disk-name ${name}-${az_location}

検証

  • Red Hat Enterprise Linux AI ツールが正しくインストールされていることを確認するには、ilab コマンドを実行します。

    $ ilab

    出力例

    $ ilab
    Usage: ilab [OPTIONS] COMMAND [ARGS]...
    
      CLI for interacting with InstructLab.
    
      If this is your first time running ilab, it's best to start with `ilab
      config init` to create the environment.
    
    Options:
      --config PATH  Path to a configuration file.  [default:
                     /home/<user>/.config/instructlab/config.yaml]
      -v, --verbose  Enable debug logging (repeat for even more verbosity)
      --version      Show the version and exit.
      --help         Show this message and exit.
    
    Commands:
      config    Command Group for Interacting with the Config of InstructLab.
      data      Command Group for Interacting with the Data generated by...
      model     Command Group for Interacting with the Models in InstructLab.
      system    Command group for all system-related command calls
      taxonomy  Command Group for Interacting with the Taxonomy of InstructLab.
    
    Aliases:
      chat      model chat
      generate  data generate
      serve     model serve
      train     model train

Red Hat Enterprise Linux AI の更新

RHEL AI の最新の z-stream バージョンに更新するには、Red Hat Enterprise Linux AI の更新 ドキュメントの手順に従ってください。

第7章 インスタンスへのストレージの追加

一部のクラウドインスタンスでは、デフォルトのディスクに RHEL AI エンドツーエンドワークフローを実行するための十分なストレージがありません。追加データを保持するディレクトリーを追加できます。

7.1. インスタンスへのデータストレージディレクトリーの追加

デフォルトでは、RHEL AI は設定データを $HOME ディレクトリーに保持します。InstructLab データを保持するために、このデフォルトを別のディレクトリーに変更できます。

前提条件

  • Red Hat Enterprise Linux AI インスタンスがある。
  • インスタンスに別のストレージディスクが追加されている。

手順

  1. 次のコマンドを実行して $HOME/.bash_profile ファイルに書き込むことで、ILAB_HOME 環境変数を設定できます。

    $ echo 'export ILAB_HOME=/mnt' >> $HOME/.bash_profile
  2. 次のコマンドを使用して $HOME/.bash_profile ファイルを再ロードすると、変更が有効になります。

    $ source $HOME/.bash_profile
  3. 次に、以下のコマンドで containers ディレクトリーを作成する必要があります。

    $ mkdir /mnt/.config/containers
  4. 以下のコマンドを使用して、storage.conf ファイルを containers ディレクトリーにコピーします。

    $ cp /etc/skel/.config/containers/storage.conf /mnt/.config/containers/

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る