ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Linux Automation Managerでのホップ・ノードの使用
イントロダクション
Oracle Linux Automation Managerは、アップストリーム・レセプタ・プロジェクトに基づくサービス・メッシュ・テクノロジをサポートしています。サービスメッシュは、デーモンベースの受容体アプリケーションを介してコントローラ、ホップ、および実行ノードをオーバーレイネットワークにリンクします。
Oracle Linux Automation Managerでは、サービス・メッシュの一部としてホップ・ノードが導入されています。このノード・タイプを使用すると、SSHでジャンプ・ホストを使用する場合と同様に、タスクをコントロール・プレーン・ノードからリモートまたは制限されたネットワーク上の実行ノードにリレーできます。この実装により、異なる実行ノード間でジョブを実行し、自動化が必要なシステムにタスクを近づけることができます。
次のサンプル・インベントリでは、無料の演習環境でのマルチノード・クラスタ・デプロイメントを定義します。ハードウェアでのクラスタのインストールを自動化するには、ansible-playbooksプロジェクトのOracle Linux Automation Managerセクションにあるプレイブックを確認してください。
このサンプル・インベントリでは、2つのコントロール・プレーン・ノード、2つの実行ノード、1つのリモート実行ノードを持つホップ・ノードおよび1つのリモート・データベースで構成されるクラスタが作成されます。
この図は、このクラスタのサービス・メッシュ・トポロジを示しています。
このチュートリアルでは、サービス・メッシュのステータスをチェックし、様々なノード間のトポロジ通信を確認するいくつかの方法を示します。
目的
このチュートリアルでは、次の方法を学習します。
- コントロール・プレーンおよび実行ノードの容量のリスト
- 特定のクラスタノードのサービスメッシュステータスを表示します
- APIコールを使用したサービス・メッシュ・ステータスの表示
前提条件
- Oracle Linux Automation Managerがインストールされ、サービス・メッシュが構成されているクラスタ
- Oracle Cloud Infrastructure (OCI)アカウント
- コンパートメント内のリソースを操作する権限を持つOCIアカウントのユーザー
- そのアカウントの資格証明およびOCID情報へのアクセス
Oracle Linux Automation Managerのインストールの詳細は、『Oracle Linux Automation Managerインストレーション・ガイド』を参照してください。
Oracle Linux Automation Managerインスタンスのデプロイ
ノート:独自のテナンシで実行している場合は、linux-virt-labs
GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。
-
Lunaデスクトップでターミナルを開きます。
-
linux-virt-labs
GitHubプロジェクトをクローニングします。git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
作業ディレクトリに移動します。
cd linux-virt-labs/olam
-
必要なコレクションをインストールします。
ansible-galaxy collection install -r requirements.yml
-
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
-
演習環境をデプロイします。
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クラスタのデプロイ
-
新しいターミナルを開きます。
-
linux-virt-labsプロジェクトのolamディレクトリにいることを確認します。
-
基本インベントリ・ファイルを変換します。
この変換スクリプトは、インスタンス・デプロイメント・プレイブックによって生成された基本インベントリからクラスタ互換インベントリ・ファイルを作成します。
chmod +x convert_ansible_inventory.sh ./convert_ansible_inventory.sh hosts > hosts.cluster
-
クラスタ・デプロイメント・プレイブックを実行します。
ansible-playbook -i hosts.cluster deploy_olam_cluster.yml -e ansible_python_interpreter="/usr/bin/python3.6"
WebUIにログインします。
-
端末を開き、Oracle Linux Automation Managerクラスタのolam-control-01インスタンスへのSSHトンネルを構成します。
ssh -L 8444:localhost:443 oracle@<hostname_or_ip_address>
-
Webブラウザを開き、URLを入力します。
https://localhost:8444
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの**「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。
-
USERNAME
admin
および自動デプロイメント中に作成されたPASSWORDadmin
を使用して、Oracle Linux Automation Managerにログインします。 -
ログイン後、WebUIが表示されます。
WebUIのインスタンス・グループの確認
インスタンス・グループでは、ポリシーに基づいてクラスタ内のインスタンスをグループ化できます。これらのポリシーによって、インスタンス・グループの動作と、どのジョブの実行が決定されます。
-
ナビゲーション・メニューの「管理」の下の「インスタンス・グループ」をクリックします。
-
「インスタンス・グループ」ページを確認します。
ページには、ポリシー設定に基づく容量が表示されます。これらのポリシー設定の詳細は、Oracle Linux Automation Managerユーザーズ・ガイドのドキュメントのリソースの設定の章にあるインスタンス・グループの管理を参照してください。
クラスタ・トポロジのビジュアル化
-
ナビゲーション・メニューの「管理」セクションの下の「トポロジ・ビュー」をクリックします。
-
「トポロジ・ビュー」ページを確認します。
このページには、各ノードを含むクラスタのトポロジのグラフィカル・レイアウトが表示されます。ノードをロールオーバーすると、あるノードから別のノードへの矢印が表示され、そのピア・アソシエーションが示されます。
リスト・インスタンス
管理者は、awx-manage
ユーティリティを使用して、インスタンス・グループ(キュー)に関連付けられているインスタンスを構成およびリストできます。管理者は、クラスタ内の任意のコントロール・プレーン・ノードからこのアクションを実行します。
-
olam-control-01インスタンスに接続されている端末ウィンドウに切り替えます。
-
Oracle Linux Automation Managerユーザー・アカウントにログインします。
sudo su -l awx -s /bin/bash
-
インスタンスをリストします。
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
キューに表示されます。 -
Oracle Linux Automation Managerユーザーから切断します。
exit
このアクションを実行すると、olam-control-01インスタンスのoracleユーザー・アカウントに戻ります。
サービス・メッシュ・ステータスの表示
サービス メッシュが実行されていると、サービス メッシュと関連するノードのステータスを取得できます。
-
サービス メッシュのステータスを取得します。
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です。--help
をreceptorctl
コマンドに渡すと、CLIオプションおよび様々なコマンドが表示されます。 -
コントロール・プレーン・ノードからリモート実行ノードへのトレース・ルートを実行します。
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コールを使用します。
-
無料の演習環境でブラウザ・ウィンドウに切り替えて、URLを入力します。
https://localhost:8444/api/login/
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。
-
Oracle Linux Automation Manager REST APIにログインします。自動デプロイメント中に作成されたユーザー名
admin
およびパスワードadmin
を使用します。 -
ログインに成功すると、REST APIが表示されます。
-
レスポンス領域から/api/v2/ハイパーリンクのいずれかをクリックします。
クリックすると、GETリクエストが実行され、使用可能なすべてのAPIリソースが表示されます。
-
下部までスクロールし、mesh_visualizerリンクをクリックします。
-
出力を確認します。
異なるノードとその固有の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を参照してください。
Use Hop Nodes on Oracle Linux Automation Manager
G33082-02
Copyright ©2023, Oracle and/or its affiliates.