genvid.toolbox.TerraformTool

警告

このモジュールは廃止されました。古いモデルでは、まだコードが交差しますが、最新の Bastion API では動作しない可能性があります。新しい genvid-bastion ツールを使用してください。

class genvid.toolbox.TerraformTool(*args, **kwargs)

ベースクラス: RuntimeTool, DockerTool

Terraform を使用してクラウド環境を管理するためのメインツール。

バージョン 1.33.0 で非推奨: クラスを非推奨にする

NAME = 'terraform'

このツールのロガー名。子 class (children) で再定義する必要があります。

DESCRIPTION = 'Genvidtech Terraform Utility'

ヘルプパーサーで使用されるツールの説明。子 class (children) で再定義する必要があります。

ARTIFACTS_URL_TEMPLATE = '{images_domain_name}/'

Docker イメージを読み込むためのベース URL のテンプレート。 terraform_config プロパティの情報でフォーマットされる。

SERVER_CLASSES = ('server', 'public_worker', 'internal_worker')

サーバーノード classes のリスト。

property TF

Terraform 実行ファイルの場所。

property TFS3DIR

terraform-s3-dir 実行ファイルの場所。

property terraform_config

Terraform アウトプットと変数の辞書。

refresh() を呼び出して更新する。

status(*jobs)

すべてのサービスとジョブのステータスを出力する。

バージョン 1.20.0 で変更: bastion および cluster インスタンスのバージョンを表示する。

refresh()

terraform_config 値を更新する。

get_ip()

ローカル IP アドレスを返す。

get_consul_ip()

デフォルトの Consul サービスの IP を返す。

このメソッドは、環境変数 CONSUL_HTTP_ADDR が設定されていれば、そのホスト部分を返します。

CONSUL_HTTP_ADDR が設定されておらず、環境変数 GENVID_BASTION_URL が設定されている場合は、 url のホストを使用します。

それ以外の場合は、環境変数 GENVID_DEFAULT_IP のデフォルトが 127.0.0.1 となります。

バージョン 1.28.0 で変更: GENVID_BASTION_URL (完全に解析可能な URI) や CONSUL_HTTP_ADDR (ホスト名/IP とポートの組み合わせで、スキームを含まない) が設定されているが無効な場合、 ValueError が返されます。詳細の説明をご覧ください。

バージョン 1.34.0 で変更: CONSUL_HTTP_ADDR が不正な値であった場合に ValueError を発生させます。特に、スキームが含まれている場合は失敗します。

ssh_shell(ip=None)
ssh_config()

メインサーバーに接続するための、SSH コマンドラインパラメータを返す。

None が渡された場合、1 つ目のサーバー IP を使用する。

ssh(*cmd, ip=None)

SSH を使用して、IP で指定したサーバーで cmd を実行する。

None が渡された場合、1 つ目のサーバー IP を使用する。

run_nomad_fs(*args, ip=None, **kwargs)

SSH を使用して、サーバーで nomad fs を実行する。

これにより、リバースプロキシからのみ利用可能なノードで nomad fs が実行できる。

get_cluster_ips(public=False)

クラスタのすべてのノードのプライベート IP のリストを返す。

public が True の場合、パブリック IP を返す。

setup_jobs(**kwargs)
update_images()

Terraform 設定で、すべての Docker イメージを更新する。

run_tf(*args, cwd=None, **kwargs)

渡された引数で Terraform を実行する。

指定しない場合、cwd は self.GENVID_SDK_FOLDER に設定されることに注意してください。

plan_cluster(*args, **kwargs)

Terraform plan を実行する。

apply_cluster(*args, **kwargs)

Terraform apply を実行する。

destroy_cluster(*args, **kwargs)

Terraform destroy を実行する。

output_cluster(*args, check=False, **kwargs)

Terraform output を実行する。

show_cluster(*args, **kwargs)

Terraform show を実行する。

add_terraform_commands()

TerraformTool から利用可能なすべてのコマンドを追加する。

add_commands() から実行し、Terraform から利用可能なすべてのコマンドをパーサーに追加します。 TerraformTool から利用可能な他のコマンドについては RuntimeTool.add_runtime_commands() を参照してください。

run_terraform_command(command, options)

コマンドが Terraform コマンドかどうかを検出し、実行する。

Terraform コマンドを処理するために run_command() から呼び出されます。Terraform コマンドは add_terraform_commands() の助けを借りて追加します。

戻り値:

handled, result: コマンドを処理したかどうかを示す、ブール値のトプル。

処理した場合は結果を返す。

add_commands()

ツールのコマンドを追加。

このメソッドはオーバーライドする必要があります。 add_command() を使用して、子クラスが新しいコマンドを追加することができるようにします。既存の全てのコマンドとそのパーサーのリストは commands から取得することができます。

run_command(command, options)

optionscommand を実行する。

このメソッドはオーバーライドする必要があります。

パラメータ
  • command -- 実行するコマンド名。

  • options -- 引き渡すオプションを持つ argparse.Namespace オブジェクト。