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
このサービスのヘルスチェック。