Bastion UI

Bastion UI は、Genvid クラスタの管理に使用する Web サイトです。これは、bastion-api の GUI になります。

設定ページ

このページで、Bastion-UI ページの設定の変更を行うことができます。 Global VarsModulesBackends の確認や編集もできます。

../_images/bastion_ui.png

グローバル変数

Global Vars Settings で、すべての Terraform クラスタで使用できる変数を設定できます。ここに値を追加すると、同じ名前の設定を持つすべてのクラスタが、この値をデフォルトで引き継ぎます。

../_images/bastion_ui_globalvars.PNG

モジュールセクション

Modules セクションで、編集や削除可能な既存の Terraform モジュールレポジトリを確認できます。REFRESH をクリックして、レポジトリ内のモジュールを更新できます。

../_images/bastion_ui_settings_modules.png

+ New Repository をクリックして新しいレポジトリを作成します。

../_images/bastion_ui_settings_modules_dialogue.png
ID

レポジトリフォルダ名。全て小文字。

URL

レポジトリのフォルダの URL です。

バックエンドセクション

Backends セクションで、利用可能なバックエンド設定のリストを確認できます。バックワード設定は一意の名前と、変数のリストで構成されます。

  • バックエンド構成の追加、編集、削除。

../_images/bastion_ui_backends.png
Name

バックエンドの一意の ID。

Type

有効な Terraform バックエンドタイプ。

Variables

バックエンドタイプの引数。ユーザーが追加、削除することができます。編集は、ID、値、プロパティによって構成されます。

  • Variable ID : 引数名。

  • Value : 引数の値。

  • Editable : クラスタを初期化する時に、引数が編集できるかどうか。

  • Argument : 変数がファイルで設定されるか、Terraform に引数として渡されるか。

  • Protected : クラスタ初期化時に、変数をパスワードとして表示するかどうか。

参考

Terraform のバックエンドについては、解説書の Terraform のバックエンド を参照。

Bastion-api はクラスタを初期化する前に変数の値に補完を適用します。例えば、{{.clusterID}} というテキストはそのクラスタの ID になります。ここでは clusterIDclusterUUIDbastionIDinstanceID のみをサポートしています。

Terraform

このページには、デプロイされたすべての Terraform 構成が表示されます。ここから、次の処理を行なうことができます。

  • cluster-api の開始と停止。

  • cluster-api が開始している場合に、各クラスタ専用の Cluster-UI ページにアクセスします。

../_images/bastion_ui_clusters.png

各スラスタの情報を表示します。

  • ID

    クラスタの識別子。

  • Status

    クラスタのステータス

    • VOID: クラスタが存在しません。バックエンドにはその ID を持つクラスタの記録がありません。

    • ERROR: クラスタのチェックでエラーが発生。

    • STATIC: クラスタが作成され、静的な状態です。

    • BUSY: コマンドを実行中です。

    • EMPTY: クラスタが作成されていますが、モジュールが読み込まれていません。

    • CONFIGURED: モジュールがインポートされている間の一時的な状態。

    • DOWN: モジュールがクラスタにインポートされていますが、適用されていないか、リソースが作成されていません。

    • UP: サーバーに1つ以上のリソースが作成されています。

    • INVALID: 無効、またはステータスが不明。

    ステータスにはカッコの間に数字が入っています。これは Terraform が報告したクラスタが実際に管理しているリソースの数です。

  • Module

    モジュールがこのクラスタに読み込まれている場合、名前が表示されます。

  • Backend

    Terraform の状態を保持するために使用されるバックエンド。

  • Job Control

    クラスタジョブが開始されていない場合は Start Job、開始されている場合は Stop Job ボタンが表示されます。

  • URI

    Cluster-UI を開くリンク。

  • Ready

    SDK がクラスタ内にロードされたかどうかを示します。

  • Copy icon

    クリックするとクラスタ構成のクローンを作成します。

  • Trash can icon

    クリックするとクラスタ Terraform の構成と状態を削除します。リソースが割り当てられている場合は、アクティブなリソースを持つ設定を削除しないよう警告するポップアップが表示されます。

Terraform の構成を作成する

Add Config をクリックして New Config ダイアログを開きます。

../_images/bastion_ui_create_cluster.png
ID

クラスタの一意の ID。

Category

Terraform 構成を確認するのに役立ちます。デフォルトは cluster です。

Backend

使用する Terraform バックエンドです。ドロップダウンに、使用可能なバックエンドが一覧表示されます。

Type

使用されている Terraform バックエンドのタイプです。

Variables

バックエンドを構成する追加変数です。

Terraform モジュールをインポートする

重要

この手順は必須です。

../_images/bastion_ui_cluster_module.png

Commands ページで Terraform の構成を初期化するには:

  1. 適切なモジュールを選択します。

  2. IMPORT MODULE をクリックします。

デフォルトでは、一覧には cluster-api をサポートするモジュールのみが表示されます。利用可能なモジュールについては、Display all modules を参照してください。

モジュールのインポート後は、モジュールを選択することができなくなります。モジュールの変更や再インポートは REIMPORT MODULE をクリックして行ってください。

Terraform コマンド

構成の初期化後、このページで Terraform コマンドが実行されます。

../_images/bastion_ui_cluster_terraform.png
Plan Apply

terraform plan を実行します。

Plan Destroy

terraform plan -destroy を実行します。

Refresh

terraform refresh を実行します。

Init

terraform init を実行します。

Output

terraform output を実行して、別ウィンドウに結果を表示します。

実行中、コマンドを終了したり、キルしたりできます。

Terminate

実行中のコマンドに終了信号を送ります。Terraform は1回目の試行で正常にシャットダウンしようとします。2 回目の試行では、Terraform はすぐにプロセスを停止します。この場合、データが失われる可能性があります

Kill

Terraform プロセスをすぐに破棄します。 データが失われる可能性があります。

Terraform ローカル設定

Terraform 設定で、インフラストラクチャを構築するために Terraform に必要な変数を構成します。3 種類の必要な値が存在します。

default

選択した Terraform モジュールのデフォルト値です。

Global

グローバル値は、Global Vars Settings で設定し、同じ名称のすべての変数のデフォルト値を上書きします。

Local

ローカル値は、デフォルト値、グローバル値の両方を上書きするカスタム値です。

../_images/bastion_ui_cluster_settings.png

各変数の横のラベルで DefaultGlobalLocal を判別できます。下にあるボタンをクリックすると、対応する変数を Default 、または Global に変更できます。

../_images/bastion_ui_terraform_setting.png

上級者向けエディタ

../_images/bastion_ui_cluster_settings_advanced_editor_button.png

上級ユーザー向けに、JSON エディタで設定を編集するオプションも存在します。 Advanced Editor をクリックすると、JSON エディタが次のように表示されます。

../_images/bastion_ui_cluster_settings_json.png

Form Editor をクリックすると、いつでもフォームに戻ることができます。

編集した値は、エディタの切り替え中も保持されており、 Save をクリックすると保存することができます。

ジョブ

このページで、bastion クラスタのジョブを管理します。このページでは次の操作を実行できます。

  • 各ジョブのステータスを参照する。

  • スタックおよびジョブの開始と停止。

  • 対応する hashi-ui Job ページにアクセスする。

../_images/bastion_ui_jobs.png

上の写真では、すべてのジョブが起動しており、ステータスが 'running' になっています。1つ以上のサービスの起動に失敗し、すべての再起動の試みが失敗した場合、ジョブは 'dead' と表示されます。 'dead' のジョブサービスの自動試行は行われません。ただし、障害の根本原因に対処した後は、サービスを手動で再起動することができます。そのためには、ジョブ名の横にあるドロップダウンボタンをクリックし、実行されていないサービスを探します。次に黄色い下向きの矢印をクリックし、緑色の上向きの矢印をクリックします。下の図は、このシナリオで使用するサービスと上下の矢印が表示されたジョブを示しています。

../_images/cluster_ui_displayed_services.png

ジョブの編集方法

  1. Settings をクリックして**設定**ページを開きます。

  2. Jobs セッションに移動します。

Jobs Setting ページには、構成されたすべてのジョブが表示されます。

  • Download をクリックして、ジョブテンプレートをダウンロードします。テンプレートは、.nomad.tmpl の拡張子を持つテキストフォーマットです。

  • ジョブ構成の設定と削除

../_images/bastion_ui_settings_job.png

+ ADD JOB をクリックして Add new job ダイアログを開きます。

../_images/bastion_ui_settings_job_form.png
Name

ジョブ名はテンプレートファイル名、およびテンプレートファイル内のジョブ名に対応させる必要があります。

Dependencies

ジョブ開始前に待機するサービスのリスト。デフォルトは None です。

Autostart

引数なしの start コマンドでジョブを自動的に開始する場合にチェックします。

By cluster

ジョブをクラスタごとに、個別に開始する必要がある場合にチェックします。ジョブ名に Cluster ID が追加されます。

Cluster categories

ジョブを実行する必要のあるクラスタカテゴリを指定します。By cluster オプションがチェックされている場合にのみ使用できます。

Template

ASCII ファイルをドラッグアンドドロップしてテンプレートを更新することができます。スクリプトを正しく機能させるため、ジョブ名は、テンプレート名と同じでなければなりません。詳細は、 Nomad テンプレート を参照してください。

ログ

このページには、タスクログが表示されます。サービスの実行中、ログは自動的に更新されます。ログレベルは、デフォルトまたは、ロガーごとに割り当てることができます。

../_images/bastion_ui_logs.png

ログの編集方法

  1. Settings をクリックして**設定**ページを開きます。

  2. Logs セッションに移動します。

../_images/bastion_ui_settings_log.png

+ADD LOG をクリックして Add New Log ダイアログを開きます。

../_images/bastion_ui_settings_log_form.png
ID

ログの一意の ID。一度作成した ID は変更できません。

File Name

保存されたログのファイル名。例: stderr, stdout

Job

記録中のログの ID。ジョブがクラスタで設定される場合、ログはその名前にクラスタ ID を含みます。

Group

タスクグループの ID。

Task

タスクの ID。

Log Level

動的ログレベルをログでサポートする必要がある場合は、このオプションをチェックします。記録されるログの情報量が変化します。ログレベルには、 debug、info、warning、error、fatalpanic があります。

ヘルス

このページには、すべてのサービスのヘルスが表示されます。

../_images/tool_ui_consul_health.png

左側の列は、サービスとそのインスタンスを示します。インスタンスは、ヘルスに応じて色が異なります。

  • 緑色: すべてのヘルスチェックは合格しています。

  • オレンジ色: 少なくとも 1 つのヘルスチェックが動作状態です。

  • 赤色: 少なくとも 1 つのヘルスチェックはクリティカルな状態です。

このページでは:

  • 重要なサービスに集中するためにシステムサービスを非表示にする。

  • ステータスを更新する。

  • サービスインスタンスをクリックして詳細を確認する。

サービスをクリックすると、詳細セクションに情報が表示されます。

Information

サービスの詳細です。

Node

サービスが実行されているノードです。

Checks

このサービスのヘルスチェック。