oceanbase-deploy について
oceanbase-deployは、OBDによるOceanBaseのデプロイと運用を案内するスキルです。製品形態や実行方法の選択から、ホスト確認、パッケージ取得、クラスタ構成、運用手順まで扱います。
主な機能
- 01OBDによるデプロイと運用の案内
- 02ホストと既存クラスタ状態の確認
- 03デプロイ用パッケージ依存関係の解決
- 04クラスタのパスとリソース設定の既定値
- 05ライフサイクル、アップグレード、障害復旧
活用シーン
- 01新規OceanBaseクラスタ用ホストの準備
- 02操作前の既存デプロイ確認
- 03必要なコンポーネント一式の取得
- 04クラスタのアップグレードや障害復旧の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oceanbase/ oceanbase-skills --skill oceanbase-deployインストール後、Claude Code で/oceanbase-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEcluster-management/references/component-changes.mdcomponent-reinstall.mdconfig-deployment.mdconfig-server.mdconfiguration-changes.mdenvironment-initialization.mdlifecycle.mdmaximum-utilization.mdmirror-management.mdmonitoring.mdnetwork-access.mdocp-ce.mdocp.mdupgrade.mdcluster-management/references/deployment-templates/commercial-distributed.mdcommunity.mdcluster-management/scripts/obd-edit-config-pty.pyobd-administration/references/controller-maintenance.mdcontroller-uninstall.mdcredential-storage.mddeployment-tools.mdhost-tools.mdinstallation.mdmirror-and-repositories.mdoffline-repository.mdruntime-environment.mdtool-lifecycle.mdtrace-evidence.mdweb-api.md詳細
obd を使用した OceanBase のデプロイと運用
このエントリーポイントを使用して、製品形態、実行モード、担当するスキルを特定してください。説明、構成のレビュー、診断の依頼をデプロイに変えてはいけません。
コミュニティ版と商用版の分散環境における同等性
oceanbase-ce と oceanbase は、同じ OBD 管理下の分散環境向け製品群に属する、別々のアーティファクト識別子として扱ってください。インストール済みの公開ヘルプ/スキーマ/プラグイン、またはバージョンに対応した公式ドキュメントで違いが明示的に確認されない限り、分散構成の構造、事前チェック、環境の初期化、デプロイ、ライフサイクル、テナント、コンポーネント、モニタリング、アップグレード、障害復旧、受け入れの各ワークフローには、両方に同じものを適用してください。例でたまたま oceanbase-ce が使われていても、OBD の機能がコミュニティ版に限られる証拠にはなりません。
確認済みの違いだけを個別に扱ってください。具体的には、正確なコンポーネント名/パッケージ名と依存関係の範囲、アーティファクトの配布経路と利用権、選択した製品で実際に公開されている互換モードまたはライセンス対象機能、正確な移行元/移行先パッケージの互換性です。製品ラベルだけを根拠に、エディションによる制限を設けないでください。
パッケージ取得の必須順序
オンラインで検索またはリクエストを行う前に、OBD、データベースおよびプロキシの各コンポーネント、関連ライブラリ、クライアント、テストツール、診断ツールなど、OceanBase の公開リポジトリで提供されるすべてのパッケージにこのルールを適用してください。まず実際に使用するアーティファクトソースを選び、その後でダウンロード方法を選択します。
候補となる各パッケージについて、実際に使用するアーティファクトソースは、次の順に使用してください。(1)https://mirrors.oceanbase.com 配下の実際のパッケージディレクトリ、次に(2)https://mirrors.aliyun.com/oceanbase 配下の実際のパッケージディレクトリです。OceanBase パッケージへの最初の実リクエストは、必ずソース 1 を対象にしてください。ソース 2 に移る前に、同じソースで意味のある取得を 3 回試してください。両方のソースを使い切った後、そのパッケージファミリーで EL サフィックス版が公開されている場合は、対象 OS のサフィックスから EL8、次に EL7 へと移ってください。一般的な接続テストを、ソース 1 への最初のリクエストの代わりにしたり、その前に行ったりすることはできません。
パッケージマネージャーの .repo ファイルはリポジトリ設定であり、パッケージソースでもパッケージのダウンロードでもありません。.repo ファイルを提供したホストではなく、パッケージのバイトデータを提供する実効ベース URL または最終候補 URL を基準にしてください。リポジトリ定義を使用したり、パッケージマネージャーでの試行回数に数えたりする前に、その実効 URL を解決して記録し、現在のソースに属していることを確認してください。Rocky BaseOS/AppStream などのオペレーティングシステム依存関係リポジトリは別のチャネルです。これらを変更しても OceanBase ソースへの試行には数えられず、この順序も変わりません。また、OceanBase の取得と同じ不透明なコマンドに隠してはいけません。
現在のソースでは、バージョンに対応した OBD/ツールの方法、直接の curl または wget、オペレーティングシステムのパッケージマネージャーなど、適用可能なコントローラー上のローカル手段を使用してください。obd mirror は、すでにローカルにあるアーティファクトをインポートまたはインデックス化するためのものです。ネットワークからのダウンロードには使用しないでください。最初のパッケージネットワークリクエストの前に、詳細な固定パッケージソースのワークフローをお読みください。
**OBD のブートストラップ:**コントローラーパッケージは ob-deploy です。Community と Commercial の OceanBase デプロイでは、公開 community ツリーにある同じ OBD パッケージを使用します。OBD がなく、検証済みのコントローラー上のローカル RPM もない場合は、https://mirrors.oceanbase.com/community/ を起点とし、選択したコントローラー上で curl または wget を使って正確な RPM をダウンロードし、そのローカル RPM をオペレーティングシステムのパッケージマネージャーでインストールすることを既定とします。OBD に依存するデプロイの実行依頼は、この確認済みの初回インストールと、-y などのパッケージマネージャーで通常使用される非対話形式の承認オプションを許可します。インストールコマンドの実行について、別途許可を求めないでください。この例外は、OBD の置き換え、アップグレード、ダウングレード、未確認のパッケージ候補、または広範なリポジトリ変更を許可するものではありません。OBD のブートストラップ方法として、永続的な OceanBase .repo を既定で追加しないでください。実効パッケージ URL が現在のソース順序に従うと確認できた場合に限り、リポジトリ定義を使用してください。
**その他のパッケージ:**オンラインモードを既定とし、インストール済みの OBD/リポジトリまたはパッケージを所有するツールのワークフローで、確認済みの取得対象を解決してダウンロードしてください。コントローラー上での直接ダウンロードまたは承認済みの中継が成功した場合は、アーティファクトを実際に利用する経路に従ってください。OBD コンポーネントの RPM は obd mirror clone でインポートし、ローカルで必要な依存関係一式を分離します。クライアント、テストツール、診断ツール、イメージ、RPM 以外のアーティファクトには、バージョンが確認されたローカル登録またはインストール方法を使用します。オペレーティングシステムの依存関係は、それを使用するマシンにのみインストールしてください。ダウンロードしたパッケージを、すべてのクラスターノードでパッケージマネージャーによるインストールの対象にしないでください。
デフォルトのコントローラー、SSH、既存状態の検出
構成ファイル、対話型、自動デプロイ、デモ、パフォーマンスの各パスを含む、OBD ベースのすべてのクラスターデプロイモードで、ユーザーが別のコントローラーを明示的に選択していない限り、コントローラーはクラスターデプロイ先ホスト上に配置してください。OBD を選択またはインストールする前に、ユーザーが指定した対象ホストを元の順序で調査してください。意図された登録済みデプロイを保持する対象ホスト、またはそれ以外で既存のコントローラーが明確に特定できる対象ホストを再利用してください。すべての対象ホストに到達でき、OBD 実行ファイル、パッケージ所有権、コントローラーメタデータのいずれも存在しないことが確認できた場合に限り、最初の対象ホストに OBD をインストールしてください。その際、パッケージマネージャーの確認を非対話的に受け入れ、インストールコマンドの選択や承認をユーザーに求めないでください。自動化ランナー上で OBD をインストールまたは実行することをデフォルトにしないでください。
すべてのデプロイ対象マシンで、ユーザーが指定した SSH ログインユーザーを使用してください。ログインユーザーが指定されていない場合は、root を使用してください。認証情報が提供されていない場合は、パスワードなしの SSH を使用してください。ログイン後は、そのログインセッションのユーザーを後続のすべての作業での実行ユーザーとして維持してください。ホストの調査と準備、OBD のインストールと実行、コントローラーメタデータとファイルの所有、およびコントローラーから他のすべてのノード上の同じログインユーザーへの接続には、このユーザーを使用してください。別の OBD 実行ユーザーを導き出したり、切り替えたりしないでください。コントローラーからノードへのパスワードなし認証に失敗した場合でも、ランナーが対象にすでに確認済みのアクセス権を持っているなら、コントローラーのログインユーザーの公開鍵を、同じログインユーザーの authorized_keys に直接追加してください。既存のエントリとアクセス権を維持し、追加のプロンプトなしで BatchMode アクセスを確認してください。権限昇格は、それを必要とするコマンドに限って使用し、OBD/コントローラーの所有者を変更してはなりません。秘密鍵をコピーしたり、authorized_keys を置き換えたり、パスワードや sshd_config を変更したり、ホスト鍵の不一致を回避したり、トンネルを使用したりしないでください。すでに承認された方法では対象を変更できない場合、または対象の識別が依然として曖昧な場合に限り、アクセスを求めてください。
クラスターがすでにデプロイされているかどうかをユーザーに尋ねないでください。候補となるコントローラーの登録情報、およびすべての対象ホスト上の関連するパッケージ/サービスの状態、プロセス、リスナー、デプロイパス、到達可能な場合はデータベースの識別情報を読み取り専用で調査し、判断してください。登録が見つからないことや、プロセスが停止していることだけでは、存在しないことの証明になりません。アクセスに失敗した場合、または調査を完了しても識別情報や所有権に真の曖昧さが残る場合に限り、質問してください。詳細はコントローラー、SSH、クラスター検出の契約に従ってください。
新規デプロイ時のデフォルトディレクトリ
新規デプロイで、ユーザーがデプロイパスまたはストレージパスを指定していない場合は、確立済みのログインセッションユーザーのもと、各対象で個別にデフォルトを選択してください。そのユーザーが安全な親ディレクトリを実際に読み取り、書き込み、通過できる永続マウント済みファイルシステムのうち、使用可能な空き容量が最も大きいものを選び、その配下にデプロイ専用のベースディレクトリを新規作成してください。インストール済みのスキーマで許可される範囲で、コンポーネントのホーム、データ、redo、ログ、その他デプロイ所有のサブディレクトリをそのベースディレクトリの配下に配置してください。より大容量の書き込み可能な永続ファイルシステムが存在する場合は、ユーザーのホームディレクトリをデフォルトにしないでください。また、ホストを調査せずに /data/1 のようなパスがあると想定しないでください。ユーザーが明示したパスはこのデフォルトより優先します。登録済みの既存パスは、サポート対象のパス移行ワークフローをユーザーが要求しない限り、変更できません。詳細はデフォルトのデプロイディレクトリの選択に従ってください。
新規クラスターのデフォルトサイジング
新しい OceanBase クラスターをデプロイする際、ユーザーがリソース値、リソース上限、または最大以外のサイジングプロファイルを指定していない場合は、ユーザーにサイズを選ばせず、デフォルトで最大利用ワークフローを使用します。分散型の最大構成デプロイでは、obd cluster autodeployをデフォルトの実行経路とします。ユーザーにこのコマンドを指定させたり、各ステージのほうが確認しやすいという理由だけで、個別のdeployとstartに置き換えたりしないでください。ユーザーが明示した値や上限がある場合は、そちらを優先します。このデフォルトが最大化するのは、解決済みの対象ホストのみです。ユーザーが要求していないホスト、コンポーネント、テナント、またはトポロジを追加しないでください。
複数の Observer ホストがユーザーから指定され、ゾーンの明示的な割り当てがない状態で新しい分散型デプロイを行う場合は、ホストの決定的な順序に従って、各ホストをそれぞれ異なる新しいゾーンに割り当てます。デフォルトの配置についてユーザーに選ばせないでください。明示されたゾーン割り当てはそのまま維持し、ホストやレプリカを追加で推測せず、単一の物理的な障害ドメインを共有する論理ゾーンによって高可用性が実現すると主張しないでください。
デプロイパッケージの依存関係の網羅
デプロイ、コンポーネントの追加、アップグレード、または再インストールにおいて、最初にパッケージを検索または取得する前に、共通のデプロイパッケージの依存関係を読みます。選択した*-libs、JRE、クライアントライブラリ、イメージ、および条件付きユーティリティの依存関係を含め、最終的に要求されたコンポーネントグラフから完全なパッケージセットを作成します。明らかな主要コンポーネントの RPM をダウンロードしただけで終わらせないでください。クラスターのデプロイ前に、互換性のあるコントローラー側の SQL クライアントがあることも確認し、存在しない場合はデプロイ前の依存関係一式にobclientと対応するlibobclientを追加します。オンラインモードでは、依存関係一式の各項目を解決できることを確認します。ローカルパッケージ/オフラインモードでは、パッケージを選択する前に、完全な依存関係一式を選択したリモートコントローラーに配置して確認し、必要なノードローカルのイメージもすべて配置して確認します。
商用パッケージの境界とプラットフォームのフォールバック
上記の必須の公開ソースの順序が適用されるのは、OceanBase の公開/コミュニティリポジトリで公開されているアーティファクトに限られます。商用データベース/コンポーネント、およびスタンドアロン/集中型アーティファクトについては、まず選択したコントローラーの OBD ローカルリポジトリを調べ、依存関係一式が完全にそろっているか確認します。必要なパッケージが1つでも不足している場合は処理を中止し、ユーザーに正確なファイル、または既存のアクセス可能なパスを提供するよう依頼します。コミュニティミラーを調べたり、ポータルにサインインしたり、サポートに連絡したり、これらのアーティファクトを自動でダウンロードしたりしないでください。詳細な商用パッケージ取得ワークフローを読みます。
ソースチャネルとプラットフォームのフォールバックは、独立して扱います。OBD が管理する RPM 形式のアーティファクトについては、公開/商用を問わず、コンポーネント、バージョン、リリース、アーキテクチャを維持し、ランタイムの互換性を確認したうえで、正確な対象 OS サフィックス、次に EL8、次に EL7 の順に試します。商用またはスタンドアロン/集中型アーティファクトの場合、この順序はユーザーに依頼する正確なファイルを特定するためのものであり、ダウンロードを許可するものではありません。エディションに依存しないob-deployパッケージは明示的な例外であり、常に上記の公開community経路に従います。
データベースのデフォルト初期化パスワード
新しい OceanBase クラスターをデプロイする際、ユーザーがすでに指定していない限り、初期データベースのroot/sysパスワードをユーザーに選ばせないでください。上書き値が指定されていない場合は、初期化パスワード欄を未設定のままにし、インストール済み OBD ワークフローで確認済みのランダムパスワード生成経路を使用します。エージェント側で値を生成したり、空の値に置き換えたりしないでください。生成された値を保護し、値を表示せずに認証を確認します。デプロイ YAML を生成する前に、クラスターのワークフローにあるデータベース初期化パスワードのデフォルトを読みます。
リクエストの振り分け
| スキル | 使用する場面 |
|---|---|
| cluster-management | コミュニティ版または商用の分散 OceanBase クラスター、および OBD 管理コンポーネントをデプロイまたは運用する場合。構成、アップグレード、ライフサイクル、モニタリング、OCP、Config Server、ネットワークアクセスを管理する場合。 |
| obd-administration | OBD コントローラーをインストールまたは更新する場合。ミラー/リポジトリ、保存された認証情報、動的ツール、OBD Web/API、トップレベルのホストコマンド、トレース証跡、ランタイム環境、テレメトリーを管理する場合。 |
| tenant-management | 物理プライマリ/スタンバイテナントを作成、検査、最適化、バックアップ、復元、削除、または管理する場合。 |
| testing-and-benchmark | obd test を通じて Sysbench、TPC-H、TPC-C、または mysqltest を実行する場合。 |
| obdiag-diagnostics | obd obdiag を通じて、インストール要件のある診断情報の収集、分析、チェック、シーン、または RCA を実行する場合。 |
リクエストが 1 つの子スキルに該当したら、その子スキルと、その振り分けテーブルで選択された参照資料だけを読み進めてください。リクエストが実際に複数の領域にまたがる場合や、新たな証拠によって当初の振り分けが曖昧になった場合を除き、兄弟スキルを読み込んだり、親スキルを運用チェックリストとして読み直したりしないでください。共有のパッケージソースと安全性の要約は、直接呼び出し可能な子スキルにも意図的に記載されています。リンク先の共有参照資料が、詳細な手順の正式な参照先です。
まず製品と機能を特定する
実行可能なコマンドや構成を提案する前に、製品と機能の特定を読んでください。上記の共通運用モデルを使用して、コミュニティ版と商用の分散デプロイをサポートするとともに、構成を提示する前に実際のコンポーネントキー、パッケージ、リポジトリ、成果物、および確認できた機能差を特定してください。
次のことは行わないでください。
- リクエストまたは成果物が商用デプロイを示しているのに、コミュニティ版コンポーネントや公開ミラーをデフォルトとして使用する。
- ソースツリーの機能を、インストール済みの OBD パッケージで利用できる証拠として扱う。
- OCP CE、エンタープライズ OCP、obshell Dashboard を相互に代替する。
- リクエストされたパッケージがすべてリポジトリに存在するという理由だけで、互換性があると推測する。
ユーザーの実行モードを維持する
- 説明、計画、レビュー、監査: 読み取り専用にとどめてください。ユーザーが範囲を拡大しない限り、提供されたファイルと、すでに利用可能なローカルの証拠だけを調べてください。
- 診断: 関連する最小限の読み取り専用の証拠から始めてください。負荷の高い収集やツールのインストールは別の操作です。
- 実装: 実行前に、特定した対象、変更内容、影響、受け入れ計画を提示してください。リスククラスで求められるタイミングで承認を得てください。
稼働中のコントローラー/ホスト/デプロイへの問い合わせ、SSH/SQL/API/ネットワークアクセス、ダウンロード、書き込み、その他の外部から確認できる操作を行う前に、共有の操作契約を読んでください。子スキルは直接選択される場合があるため、振り分けテーブルの各子スキルからもこの契約にリンクし、不可欠な安全境界を維持する必要があります。
完了条件と失敗時の対応を定める
コマンドの終了、タスクの受け入れ、プロセスの状態、コントロールプレーンの状態、データプレーンの利用可能性は、それぞれ異なる結果です。
- 操作の完了を宣言する前に、完了条件を読んでください。
- 失敗、タイムアウト、中断、または状態の不一致が発生した場合は、再試行やクリーンアップを行う前に、失敗時の復旧と証拠を読んでください。
- クリーンアップ、削除、リセット、プルーニング、ドロップ、アンインストール、または消去を行う前に、クリーンアップと所有権の境界を読み、削除されるオブジェクトと保持されるオブジェクトを正確に列挙してください。
汎用的な修復手段として、redeploy、destroy、--force、メタデータの削除、リポジトリのクリーンアップ、テナントのドロップ、またはその他の広範な変更を決して使用しないでください。
クイックスタートの境界
無条件の obd demo コマンドや obd perf コマンドを、デフォルトのクイックスタートとして公開しないでください。クイックなローカルデプロイでは、クラスタースキルに誘導し、レビュー済みの設定ワークフローを使用してください。ユーザーがいずれかのショートカットを明示的に選択した場合は、まず、その固定デプロイ名、生成されるコンポーネント、パス、ポート、既存のプロセス、暗黙的な強制実行/クリーンアップの動作、復旧の境界を確認してください。
機密情報
パスワード、パスキー、アクセスキー、トークン、秘密鍵、認証情報を含む URI を、再利用可能な例、チャット出力、保護された入力手段がある場合のプロセス引数、レポートに含めないでください。障害の再現に必要な機密ではない証拠を保持しながら、秘密情報をマスキングしてください。