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 実行ファイルの場所。
- 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)
options で command を実行する。
このメソッドはオーバーライドする必要があります。
- パラメータ
command -- 実行するコマンド名。
options -- 引き渡すオプションを持つ
argparse.Namespace
オブジェクト。