ノート:

Oracle Linux Automation Managerでのホップ・ノードの使用

イントロダクション

Oracle Linux Automation Managerは、アップストリーム・レセプタ・プロジェクトに基づくサービス・メッシュ・テクノロジをサポートしています。サービスメッシュは、デーモンベースの受容体アプリケーションを介してコントローラ、ホップ、および実行ノードをオーバーレイネットワークにリンクします。

Oracle Linux Automation Managerでは、サービス・メッシュの一部としてホップ・ノードが導入されています。このノード・タイプを使用すると、SSHでジャンプ・ホストを使用する場合と同様に、タスクをコントロール・プレーン・ノードからリモートまたは制限されたネットワーク上の実行ノードにリレーできます。この実装により、異なる実行ノード間でジョブを実行し、自動化が必要なシステムにタスクを近づけることができます。

次のサンプル・インベントリでは、無料の演習環境でのマルチノード・クラスタ・デプロイメントを定義します。ハードウェアでのクラスタのインストールを自動化するには、ansible-playbooksプロジェクトのOracle Linux Automation Managerセクションにあるプレイブックを確認してください。

このサンプル・インベントリでは、2つのコントロール・プレーン・ノード、2つの実行ノード、1つのリモート実行ノードを持つホップ・ノードおよび1つのリモート・データベースで構成されるクラスタが作成されます。

プレイブック

この図は、このクラスタのサービス・メッシュ・トポロジを示しています。

ローカル- リモート- 実行- 構成

このチュートリアルでは、サービス・メッシュのステータスをチェックし、様々なノード間のトポロジ通信を確認するいくつかの方法を示します。

目的

このチュートリアルでは、次の方法を学習します。

前提条件

Oracle Linux Automation Managerのインストールの詳細は、『Oracle Linux Automation Managerインストレーション・ガイド』を参照してください。

Oracle Linux Automation Managerインスタンスのデプロイ

ノート:独自のテナンシで実行している場合は、linux-virt-labs GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。

  1. Lunaデスクトップでターミナルを開きます。

  2. linux-virt-labs GitHubプロジェクトをクローニングします。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 作業ディレクトリに移動します。

    cd linux-virt-labs/olam
    
  4. 必要なコレクションをインストールします。

    ansible-galaxy collection install -r requirements.yml
    
  5. Oracle Linuxインスタンス構成を更新します。

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-control-01"
        type: "control"
      2:
        instance_name: "olam-control-02"
        type: "control"
      3:
        instance_name: "olam-execution-01"
        type: "execution"
      4:
        instance_name: "olam-execution-02"
        type: "execution"       
      5:
        instance_name: "olam-remote-execution-01"
        type: "execution"
      6:
        instance_name: "olam-hop-01"
        type: "execution"
      7:
        instance_name: "olam-db"
        type: "db"
    passwordless_ssh: true
    olam_type: none
    add_cluster_ports: true
    EOF
    
  6. 演習環境をデプロイします。

    ansible-playbook create_instance.yml -e ansible_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
    

    無料のラボ環境では、Oracle Cloud Infrastructure SDK for Python用のRPMパッケージをインストールするため、追加の変数ansible_python_interpreterが必要です。このパッケージのインストール場所は、python3.6モジュールの下にあります。

    デフォルトのデプロイメント・シェイプでは、AMD CPUおよびOracle Linux 8が使用されます。Intel CPUまたはOracle Linux 9を使用するには、デプロイメント・コマンドに-e instance_shape="VM.Standard3.Flex"または-e os_version="9"を追加します。

    重要:プレイブックが正常に実行されるまで待機し、一時停止タスクに到達します。Oracle Linux Automation Managerのインストールはプレイブックのこの段階で完了し、インスタンスの準備ができました。デプロイするノードのパブリックIPアドレスとプライベートIPアドレスを出力する前の再生に注意してください。

Oracle Linux Automation Managerクラスタのデプロイ

  1. 新しいターミナルを開きます。

  2. linux-virt-labsプロジェクトのolamディレクトリにいることを確認します。

  3. 基本インベントリ・ファイルを変換します。

    この変換スクリプトは、インスタンス・デプロイメント・プレイブックによって生成された基本インベントリからクラスタ互換インベントリ・ファイルを作成します。

    chmod +x convert_ansible_inventory.sh
    ./convert_ansible_inventory.sh hosts > hosts.cluster
    
  4. クラスタ・デプロイメント・プレイブックを実行します。

    ansible-playbook -i hosts.cluster deploy_olam_cluster.yml -e ansible_python_interpreter="/usr/bin/python3.6"
    

WebUIにログインします。

  1. 端末を開き、Oracle Linux Automation Managerクラスタのolam-control-01インスタンスへのSSHトンネルを構成します。

    ssh -L 8444:localhost:443 oracle@<hostname_or_ip_address>
    
  2. Webブラウザを開き、URLを入力します。

    https://localhost:8444
    

    ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの**「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。

  3. USERNAME adminおよび自動デプロイメント中に作成されたPASSWORD adminを使用して、Oracle Linux Automation Managerにログインします。

    olam2- ログイン

  4. ログイン後、WebUIが表示されます。

    olam2-webui

WebUIのインスタンス・グループの確認

インスタンス・グループでは、ポリシーに基づいてクラスタ内のインスタンスをグループ化できます。これらのポリシーによって、インスタンス・グループの動作と、どのジョブの実行が決定されます。

  1. ナビゲーション・メニューの「管理」の下の「インスタンス・グループ」をクリックします。

    olam2-instance-grp-menu

  2. 「インスタンス・グループ」ページを確認します。

    olam2-instnace-grp-page

    ページには、ポリシー設定に基づく容量が表示されます。これらのポリシー設定の詳細は、Oracle Linux Automation Managerユーザーズ・ガイドのドキュメントのリソースの設定の章にあるインスタンス・グループの管理を参照してください。

クラスタ・トポロジのビジュアル化

  1. ナビゲーション・メニューの「管理」セクションの下の「トポロジ・ビュー」をクリックします。

    olam2-top-view-menu

  2. 「トポロジ・ビュー」ページを確認します。

    olam2- トップビュー

    このページには、各ノードを含むクラスタのトポロジのグラフィカル・レイアウトが表示されます。ノードをロールオーバーすると、あるノードから別のノードへの矢印が表示され、そのピア・アソシエーションが示されます。

リスト・インスタンス

管理者は、awx-manageユーティリティを使用して、インスタンス・グループ(キュー)に関連付けられているインスタンスを構成およびリストできます。管理者は、クラスタ内の任意のコントロール・プレーン・ノードからこのアクションを実行します。

  1. olam-control-01インスタンスに接続されている端末ウィンドウに切り替えます。

  2. Oracle Linux Automation Managerユーザー・アカウントにログインします。

    sudo su -l awx -s /bin/bash
    
  3. インスタンスをリストします。

    awx-manage list_instances
    

    出力例:

    [awx@olam-control-01 ~]$ awx-manage list_instances
    [controlplane capacity=594]
    	10.0.0.50 capacity=297 node_type=control version=23.7.0 heartbeat="2025-04-26 17:23:59"
    	10.0.0.52 capacity=297 node_type=control version=23.7.0 heartbeat="2025-04-26 17:23:59"
    
    [execution capacity=891]
    	10.0.0.57 capacity=297 node_type=execution version=23.7.0 heartbeat="2025-04-26 17:23:38"
    	10.0.0.59 capacity=297 node_type=execution version=23.7.0 heartbeat="2025-04-26 17:23:59"
    	10.0.0.61 capacity=297 node_type=execution version=23.7.0 heartbeat="2025-04-26 17:23:59"
    
    [ungrouped capacity=0]
    	10.0.0.53 node_type=hop heartbeat="2025-04-26 17:23:32"
    

    出力には、controlplaneキューとexecutionキュー、および関連する各ノードが表示されます。ホップ・ノードは、容量を含むアクティブ・キューに関連付けられていないため、ungroupedキューに表示されます。

  4. Oracle Linux Automation Managerユーザーから切断します。

    exit
    

    このアクションを実行すると、olam-control-01インスタンスのoracleユーザー・アカウントに戻ります。

サービス・メッシュ・ステータスの表示

サービス メッシュが実行されていると、サービス メッシュと関連するノードのステータスを取得できます。

  1. サービス メッシュのステータスを取得します。

    sudo receptorctl  --socket /var/run/receptor/receptor.sock status
    

    出力例:

    [oracle@olam-control-01 ~]$ sudo receptorctl  --socket /var/run/receptor/receptor.sock status
    Node ID: 10.0.0.50
    Version: 1.4.2
    System CPU Count: 4
    System Memory MiB: 31804
    
    Connection   Cost
    10.0.0.59    1
    10.0.0.61    1
    10.0.0.53    1
    
    Known Node   Known Connections
    10.0.0.50    10.0.0.53: 1 10.0.0.59: 1 10.0.0.61: 1 
    10.0.0.52    10.0.0.53: 1 10.0.0.59: 1 10.0.0.61: 1 
    10.0.0.53    10.0.0.50: 1 10.0.0.52: 1 10.0.0.57: 1 
    10.0.0.57    10.0.0.53: 1 
    10.0.0.59    10.0.0.50: 1 10.0.0.52: 1 
    10.0.0.61    10.0.0.50: 1 10.0.0.52: 1 
    
    Route        Via
    10.0.0.52    10.0.0.53
    10.0.0.53    10.0.0.53
    10.0.0.57    10.0.0.53
    10.0.0.59    10.0.0.59
    10.0.0.61    10.0.0.61
    
    Node         Service   Type       Last Seen             Tags
    10.0.0.50    control   Stream     2025-04-26 17:29:26   {'type': 'Control Service'}
    10.0.0.52    control   Stream     2025-04-26 17:28:54   {'type': 'Control Service'}
    10.0.0.61    control   Stream     2025-04-26 17:28:54   {'type': 'Control Service'}
    10.0.0.59    control   Stream     2025-04-26 17:28:54   {'type': 'Control Service'}
    10.0.0.53    control   Stream     2025-04-26 17:28:32   {'type': 'Control Service'}
    10.0.0.57    control   Stream     2025-04-26 17:28:33   {'type': 'Control Service'}
    
    Node         Work Types
    10.0.0.50    local
    10.0.0.52    local
    10.0.0.61    ansible-runner
    10.0.0.59    ansible-runner
    10.0.0.53    local
    10.0.0.57    ansible-runner
    

    receptorctlコマンドは、制御ソケット・インタフェースを介してサービス・メッシュと対話するフロントエンドCLIです。--helpreceptorctlコマンドに渡すと、CLIオプションおよび様々なコマンドが表示されます。

  2. コントロール・プレーン・ノードからリモート実行ノードへのトレース・ルートを実行します。

    sudo receptorctl  --socket /var/run/receptor/receptor.sock traceroute $(ssh olam-remote-execution-01 hostname -i)
    

    出力例:

    [oracle@olam-control-01 ~]$ sudo receptorctl  --socket /var/run/receptor/receptor.sock traceroute $(ssh olam-remote-execution-01 hostname -i)
    0: 10.0.0.50 in 282.074µs
    1: 10.0.0.53 in 817.948µs
    2: 10.0.0.57 in 817.226µs
    

    ノート:出力にレンダリングに失敗した特殊文字が表示された場合は、メニューの「ターミナル」→「エンコーディングの設定」→「Unicode」をクリックして、ターミナル・ウィンドウでエンコーディングをUTF-8に切り替えます。

    前述の例では、ルートは最初のコントロール・プレーン・ノードで始まり、ホップ・ノードを通過し、リモート実行ノードに置かれます。

WebUIのサービス・メッシュ・ステータスの確認

Oracle Linux Automation Manager APIは、管理者がサービス・メッシュ・クラスタ内の各ノードに関するステータス情報を表示できるRest APIコールを使用します。

  1. 無料の演習環境でブラウザ・ウィンドウに切り替えて、URLを入力します。

    https://localhost:8444/api/login/
    

    ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。

  2. Oracle Linux Automation Manager REST APIにログインします。自動デプロイメント中に作成されたユーザー名adminおよびパスワードadminを使用します。

    olam2-restapi-login

  3. ログインに成功すると、REST APIが表示されます。

    olam2-restapi

  4. レスポンス領域から/api/v2/ハイパーリンクのいずれかをクリックします。

    クリックすると、GETリクエストが実行され、使用可能なすべてのAPIリソースが表示されます。

  5. 下部までスクロールし、mesh_visualizerリンクをクリックします。

    olam2- メッシュ・ビジュアライザ

  6. 出力を確認します。

    異なるノードとその固有のnode_typeに注意してください。「リンク」セクションには、各ノードがサービス・メッシュ内で相互に関連付けられる方法が表示されます。

次のステップ

様々な出力は、Oracle Linux Automation Managerを使用してプレイブックを実行するためのホップ・ノードと実行ノードを含む実行中のクラスタを示しています。次に、いくつかのプレイブックを実行して、Oracle Linuxトレーニング・ステーションの他のチュートリアルを確認して、追加の演習を行います。

Oracle Linux Automation Managerドキュメント
Oracle Linux Automation Managerトレーニング
Oracle Linuxトレーニング・ステーション

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。