genvid.toolbox.AzureImageAPI

class genvid.toolbox.AzureImageAPI(clusters: Clusters)

ベースクラス: object

Azure でゲームのソースイメージを操作するためのビジネスロジックを格納したクラスです。

NAME = 'AzureImageAPI'
DESCRIPTION = 'Business logic for manipulations with source game images in Azure.'

指定されていない場合にデフォルトで使用される共有イメージギャラリー名

DEFAULT_RESOURCE_GROUP_NAME = 'Genvid'

指定されていない場合にデフォルトで使用するリソースグループ

DEFAULT_VHD_STORAGE_ACCOUNT_NAME = 'genvidtechpublic'

vhd ファイルが格納されたストレージアカウント名

MAX_CLUSTER_ID_LENGTH = 5

クラスタ ID プレフィックスの最大の長さ

MAX_AZURE_RESOURCE_NAME_LENGTH = 15

クラスタ ID プレフィックスの最大の長さ

CLUSTER_ID_SUFFIX = 'img'

セットアップクラスタに付与されるサフィックス。セーブクラスタには、このサフィックス + 'save' が使用されます。

create_images(module: Optional[str] = None, resource_group: Optional[str] = None, gallery_name: Optional[str] = None, storage_account_name: Optional[str] = None, container_name: Optional[str] = None, location: Optional[str] = None, timeout: float = 120, shared_gallery_image_version: Optional[str] = None, vhd_account_name: str = 'genvidtechpublic', image_source_version: Optional[str] = None, keep_intermediate_resources: bool = False) bool

vhd から Azure イメージを作成。

genvid のサブスクリプションからカスタマーサブスクリプションに vhd をコピーし、共有イメージギャラリーでイメージを作成します。

パラメータ
  • resource_group -- リソースグループ名。

  • module -- Terraform モジュール。

  • gallery_name -- 共有イメージギャラリー名。

  • storage_account_name -- 作成するストレージアカウント。

  • container_name -- 作成するコンテナ名。

  • location -- リソースが作成される Azure の場所。

  • timeout -- タイムアウト (分)。

  • image_source_version -- wingame/server イメージ url に使用するサフィックス

  • keep_intermediate_resources -- True の場合、中間イメージと Blob を保持

save(cluster_id: str, module: Optional[str] = None, plan: bool = False, timeout: float = 120, tfvars: str = '', version_suffix: Optional[str] = None, shared_gallery_image_prefix: Optional[str] = None)

Windows VM を共有イメージギャラリーでバージョン管理されたイメージに保存する

setup() で生成された VM からイメージを作成します。設定コマンドのクラスタから必要なパラメータを解決します (パラメータに 'img' が付加された cluster_id にちなんだ名前が付けられます)。設定コマンドで起動したクラスタが起動していなければならないことを意味します。VM をイメージに保存する目的で、別のクラスタが生成されます。

パラメータ
  • cluster_id -- クラスタ名。setup() と同じである必要があります。

  • module -- オプション。デフォルトで使用されているものとは異なる Terraform モジュールを使用するように設定します。

  • plan -- オプション。True に設定すると、Terraform プランを実行しないでイメージを作成するための Terraform プランを解決します。

  • timeout -- オプション。デフォルトで使用されているものとは異なるタイムアウト (分) を使用するように設定します。

  • tfvars -- オプション。Terraform 変数のデフォルト値を上書きする JSON を含むファイルパスに設定します。

  • version_suffix -- オプション。プロセスで作成した画像リソースに文字列を追加するように設定します。共有イメージギャラリーに登録されているイメージバージョンには影響しません。

  • shared_gallery_image_prefix -- オプション。イメージを登録するイメージ定義のデフォルトのプレフィックスを変更します。

clean(cluster_id: str, force: bool = False) bool

ゲーム VM を構成するために作られたクラスタをクリーンアップして保存します。

setup() および save() メソッドで作成されたクラスタを Bastion から削除します。また、処理中に Azure 上に作成された一時リソースも削除されます。

パラメータ
  • cluster_id -- クラスタ名。setup()save() と同じである必要があります。

  • force -- オプション。True に設定すると、Terraform に問題があっても setup() で作成したクラスタを強制的に削除します。

force_clean(cluster_id: str)

Bastion からクラスタを強制的にクリーンアップします。

setup(cluster_id: str, module: Optional[str] = None, plan: bool = False, tfvars: str = '', timeout: float = 120, shared_gallery_image_version: Optional[str] = None, location: Optional[str] = None, shared_gallery_resource_group_name: Optional[str] = None, gallery_name: Optional[str] = None) bool

create_images() を使用して、Genvidtech からインポートした共有イメージギャラリーのイメージから Windows VM を起動します。

Windows VM を起動して、ドライバやコンフィグレーションをユーザーが行えるようにします。VM をイメージに保存した後、 save() を使用してイメージに戻すことができます。

パラメータ
  • cluster_id -- クラスタ名。

  • module -- オプション。デフォルトで使用されているものとは異なる Terraform モジュールを使用するように設定します。

  • plan -- オプション。True に設定すると、Terraform プランを実行しないでイメージを作成するための Terraform プランを解決します。

  • tfvars -- オプション。Terraform 変数のデフォルト値を上書きする JSON を含むファイルパスに設定します。

  • timeout -- オプション。デフォルトで使用されているものとは異なるタイムアウト (分) を使用するように設定します。

  • shared_gallery_image_version -- オプション。使用している SDK のバージョンで初期化されます。Azure 共有イメージギャラリーから使用するベースイメージを選択するために使用します。

  • location -- オプション。リソースが作成される Azure の場所。ベースイメージをインポートするには、 create_images() と同じである必要があります。

  • shared_gallery_resource_group_name -- オプション。VM を起動するために選択するベースイメージを持つ共有イメージギャラリーが含まれる Azure リソースグループ。

  • gallery_name -- 共有イメージギャラリー名。オプション。VM の起動に必要なベースイメージを含む共有イメージギャラリーを指定します。

add_ip_address_to_firewall(public_ips, storage_account_name: str)

ファイアウォールと Azure ストレージアカウントの仮想ネットワークでのアクセスを許可するパブリック IP をリストに追加します。

パラメータ

public_ips -- 追加する List IP のリスト。

add_external_ip_to_azure(storage_account_name: str)

Azure ファイアウォール設定に外部 IP アドレスを追加する。

add_cluster_id_suffix(cluster_id: str) str
class azure_storage.AzureImageAPI

genvid.toolbox.AzureImageAPI の実装