Terraform을 사용하여 Schematics 구성

IBM Cloud® 의 Terraform은 예측 가능하고 일관된 IBM Cloud 서비스 프로비저닝을 통해 코드형 인프라( IaC ) 원칙에 따라 복잡한 다계층 클라우드 환경을 신속하게 구축할 수 있습니다. 마찬가지로 Terraform을 사용하여 IBM Cloud Schematics 작업 공간 및 작업 인스턴스의 프로비저닝, 업데이트 및 삭제를 자동화할 수 있습니다.

IBM Cloud 솔루션에서 관리되는 Terraform을 찾으십니까? IBM Cloud Schematics을(를) 시도하십시오. Schematics 에서는 익숙한 Terraform 언어를 사용할 수 있지만, Terraform 명령줄과 IBM Cloud 공급자 플러그인을 설정하고 유지 관리하는 것에 대해 걱정할 필요가 없습니다. Schematics 에서는 IBM Cloud 카탈로그에서 설치할 수 있는 미리 정의된 Terraform 템플릿도 제공합니다.

시작하기 전에 IBM Cloud Schematics 작업공간을 작성하고 관련 작업을 수행하기 위해 필요한 액세스 권한이 있는지 확인하십시오.

예 - Terraform을 사용하여 Schematics 워크스페이스 만들기

Terraform을 사용하여 Schematics 작업공간을 작성하려면 다음 단계를 완료하십시오.

  1. IBM Cloud의 Terraform 시작하기 튜토리얼에 따라 Terraform CLI를 설치하고 IBM Cloud Provider Plug-in for Terraform을(를) 구성하십시오. 플러그인은 프로비저닝, 업데이트 또는 삭제에 사용되는 IBM Cloud APIs 리소스를 추상화합니다( Schematics ).

  2. main.tf, terraform.tfvarsversions.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 resource를 참조하세요.

    Terraform을 사용하여 Schematics 작업공간을 작성하기 위해 지원되는 매개변수입니다.
    매개변수 설명
    description 작업공간에 대한 설명입니다.
    location Schematics작업공간을 작성하고 Schematics 조치를 실행할 위치입니다.
    resource_group 작업공간을 프로비저닝할 리소스 그룹의 ID입니다.
    name 작업공간의 이름입니다. 이름은 길이가 최대 128자일 수 있으며 알파벳 문자, 공백, 대시 및 밑줄을 포함할 수 있습니다. 고유한 Terraform 템플리트에 대한 작업공간을 작성할 때 Terraform 템플리트를 사용하여 설정한 마이크로서비스 컴포넌트 및 리소스를 배치할 IBM Cloud 환경을 이름에 포함하는 것을 고려하십시오.
    tags 작업공간과 연관된 태그 목록입니다.
    template_env_settings Terraform 조치 실행 중에 적용할 환경 변수의 목록입니다.
    template_git_url 리소스를 프로비저닝하기 위한 구성 세부사항이 있는 Git 저장소 URL입니다.
    template_type Schematics 작업공간에 적용할 Terraform 버전을 지정하십시오.
  3. Terraform CLI를 초기화하십시오.

    terraform init
    

    Terraform의 환경 변수 경로가 설정되지 않은 경우 command not found: terraform 오류가 표시됩니다. Terraform 설치 디렉토리에 대한 경로를 설정하여 오류를 수정하십시오.

  4. Terraform 실행 플랜을 작성하십시오. Terraform 실행 플랜은 해당 계정에 Schematics 작업공간을 작성하기 위해 실행해야 하는 모든 조치를 요약합니다.

    terraform plan
    
  5. Schematics에서 IBM Cloud 작업공간 인스턴스 및 IAM 액세스 정책을 작성하십시오.

    terraform apply
    

    terraform apply 명령 오류 문제 해결에 대한 자세한 내용은 Schematics 적용이 실패하는 근본 원인 찾기를 참조하세요.

  6. Schematics 대시보드에서 tf-testwks-apigwy 작업공간이 작성되었는지 확인하십시오. 리소스는 IBM Cloud Schematics 리소스 목록에서 프로비저닝됩니다.

  7. 액세스 정책이 정상적으로 지정되었는지 확인하십시오. 자세한 정보는 콘솔에서 지정된 액세스 권한 검토를 참조하십시오.

다음에 수행할 작업

Schematics에서 Terraform을 사용하여 첫 번째 IBM Cloud 작업공간을 정상적으로 작성한 경우 다음 태스크 중에서 선택할 수 있습니다.

  • IBM Cloud 에서 테라폼 템플릿을 실행하기 위한 IBM Cloud Schematics 작업 리소스를 만드는 방법을 알아보세요.
  • IBM Cloud 에서 Ansible playbooks 를 실행하려면 IBM Cloud Schematics 조치 리소스를 확인하십시오.
  • 지원되는 다른 테라폼 리소스 및 데이터 소스를 살펴보거나 IBM Cloud Schematics 에 사용할 수 있는 다른 인수와 속성을 확인하거나 예제에서 사용된 Terraform 리소스에 사용할 수 있는 다른 인수를 확인하세요.
  • 기본적으로 안전한 오픈 소스 및 엔터프라이즈급 Terraform IBM 모듈(TIM)을 사용하여 프로비저닝을 간소화하세요.