Terraform を使用した Schematics の構成
Terraform on IBM Cloud® は、Infrastructure as Code ( IaC ) の原則に従って、複雑な多層クラウド環境を迅速に構築するために、 IBM Cloud サービスの予測可能で一貫性のあるプロビジョニングを可能にする。 同様に、Terraformを使用して、 IBM Cloud Schematics ワークスペースとアクションインスタンスのプロビジョニング、更新、削除を自動化できる。
IBM Cloud ソリューションでマネージド型 Terraform をお探しですか。 IBM Cloud Schematics をお試しください。 Schematics を使えば、使い慣れたTerraform言語を使うことができるが、Terraformコマンドラインや IBM Cloud Providerプラグインのセットアップやメンテナンスを心配する必要はない。 Schematics は、 IBM Cloud カタログからインストールできる定義済みのTerraformテンプレートも提供する。
始める前に、IBM Cloud Schematics ワークスペースを作成してそれを使用するために必要なアクセス権限を持っていることを確認してください。
例 - Terraformを使って Schematics ワークスペースを作成する
Terraform を使用して Schematics ワークスペースを作成するには、以下の手順を実行します。
-
IBM Cloud 入門チュートリアルの Terraform に従って Terraform CLI をインストールし、IBM Cloud Provider Plug-in for Terraform を構成します。 このプラグインは、 Schematics リソースのプロビジョニング、更新、削除に使用される IBM Cloud
APIsを抽象化する。 -
main.tf、terraform.tfvars、およびversions.tfという名前の Terraform 構成ファイルを作成します。Terraform のサンプル Git URL
https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gatewayを使用できます。 この例では、サービス・インスタンスを使用して任意の IBM Cloud サービスのために API をセットアップします。 サービスへのアクセスに使用する API エンドポイントを指定し、サブスクリプション・キーを定義して API を安全に取り込むことができます。us以外の地域で作成されたワークスペースがある場合は、API エンドポイントをその地域に設定する必要があります。 例えば、指定されたリージョンがeuの場合、環境変数で API エンドポイントをIBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.comに指定する必要があります。 Schematics ワークスペースの場所と使用するエンドポイントの詳細については、「 私の情報はどこに保存されていますか?そして、リージョンの
defaultリソースグループに Schematics ワークスペースtf-testwks-apigwyを作成します。 このワークスペースは、Terraform バージョンterraform_v1.5を必要とする任意の Terraform テンプレートを指しています。versions.tfワークスペースの作成に必要なプロバイダー・バージョンを指定する
versions.tfファイルのサンプル。terraform { required_version = ">=1.0.0, <2.0" required_providers { ibm = { source = "IBM-Cloud/ibm" } } }terraform.tfvars資格情報などの機密情報を保管する
terraform.tfvarsファイルのサンプル。 詳しくは、terraform.tfvarsファイルからの資格情報の参照を参照してください。 API キーを作成するには、API キーの作成を参照してください。schematics_workspace_name="tf-testwks-apigwy" schematics_workspace_description="Sample workspace created with terraform with URL" schematics_workspace_type="terraform_v1.5" schematics_workspace_location="us-south" schematics_workspace_resource_group="default" ibmcloud_api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"main.tf以下のサンプル
main.tfファイルを確認します。 このファイルは、Git URL を使用してterraform.tfvarsファイルから変数を呼び出し、IBM Cloud API キーを使用して Schematics ワークスペースを作成します。variable "schematics_workspace_name" {} variable "schematics_workspace_description" {} variable "schematics_workspace_type" {} variable "schematics_workspace_location" {} variable "schematics_workspace_resource_group" {} variable "ibmcloud_api_key" {} resource "ibm_schematics_workspace" "schematics_workspace_instance" { name = var.schematics_workspace_name description = var.schematics_workspace_description location = var.schematics_workspace_location resource_group = var.schematics_workspace_resource_group tags = ["sample"] template_env_settings = [ { env1 = "val1" }, { env2 = "val2" } ] template_type= var.schematics_workspace_type template_git_url = "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway" } provider "ibm" { region = "us-south" ibmcloud_api_key = var.ibmcloud_api_key }次の表は、Terraform を使用してサービス・インスタンスを作成して初期化するときにサポートされるパラメーターのリストです。 ワークスペースを作成するための詳細なパラメーターについては
ibm_schematics_workspaceリソースを参照してください。Terraform を使用した Schematics ワークスペースの作成でサポートされるパラメーター。 パラメーター 説明 descriptionワークスペースの説明。 locationSchematics ワークスペースを作成して Schematics アクションを実行するロケーション。 resource_groupワークスペースをプロビジョンするリソース・グループの ID。 nameワークスペースの名前。 名前は最大 128 文字の長さで、英数字、スペース、ダッシュ、およびアンダースコアーを含めることができます。 独自の Terraform テンプレート用のワークスペースを作成する場合は、Terraform テンプレートでセットアップするマイクロサービス・コンポーネントと、リソースをデプロイする IBM Cloud 環境を名前に含めることを検討してください。 tagsワークスペースに関連付けられたタグのリスト。 template_env_settingsTerraform アクションの実行中に適用する環境変数のリスト。 template_git_urlリソースをプロビジョンするための構成の詳細がある Git リポジトリーの URL。 template_typeSchematics ワークスペースで適用する Terraform バージョンを指定します。 -
Terraform CLI を初期設定します。
terraform initTerraform の環境変数パスが設定されていない場合、
command not found: terraformエラーが表示されます。 Terraform インストール済みディレクトリーへのパスを設定して、エラーを修正してください。 -
Terraform 実行プランを作成します。 Terraform 実行プランは、アカウントで Schematics ワークスペースを作成するために実行する必要があるすべてのアクションを要約したものです。
terraform plan -
Schematics 内に IBM Cloud ワークスペース・インスタンスと IAM アクセス・ポリシーを作成します。
terraform applyterraform applyコマンドエラーのトラブルシューティングの詳細については、 Schematics apply が失敗する根本原因を見つけるを 参照してください。 -
Schematics ダッシュボードで、
tf-testwks-apigwyワークスペースが作成されたことを確認します。 そして、リソースは IBM Cloud Schematics リソースリストからプロビジョニングされる。 -
アクセス・ポリシーが正常に割り当てられていることを確認します。 詳細については、割り当てられたアクセス権限をコンソールで確認を参照してください。
次のステップ
Terraform on Schematics を使用して最初の IBM Cloud ワークスペースを正常に作成したので、以下のタスクから選択できます。
- IBM Cloud で Terraform テンプレートを実行するための IBM Cloud Schematics ジョブリソースの作成方法を学ぶ。
- IBM Cloud で
Ansible playbooksを実行するには、 IBM Cloud Schematics アクション ・リソースをチェックアウトします。 - の他のサポートされているTerraformリソースとデータソースを調べる。 IBM Cloud Schematics または、例で使用したTerraformリソースに使用できる他の引数や属性を確認してください。
- オープンソース、セキュアバイデフォルト、エンタープライズ対応の Terraform IBM Modules(TIM )を使用してプロビジョニングを簡素化します。