Code Engine에 대한 Terraform 설정
IBM Cloud® 의 Terraform을 사용하면 예측 가능하고 일관된 IBM Cloud 서비스를 생성할 수 있으므로 코드형 인프라( IaC ) 원칙에 따라 복잡한 다계층 클라우드 환경을 빠르게 구축할 수 있습니다. IBM Cloud CLI 또는 API 및 SDK를 사용하는 것과 유사하게 HashiCorp 구성 언어(HCL)를 사용하여 Code Engine 워크로드의 생성, 업데이트 및 삭제를 자동화할 수 있습니다.
관리되는 Terraform on IBM Cloud® 솔루션을 찾고 있습니까? IBM Cloud® Schematics을 사용해 보십시오. Schematics을(를) 사용하면 익숙한 Terraform 스크립트 언어를 사용할 수 있지만 Terraform 명령행 및 IBM Cloud® 제공자 플러그인을 설정하고 유지보수하는 것에 대해서는 걱정할 필요가 없습니다. Schematics은(는) IBM Cloud® 카탈로그에서 쉽게 설치할 수 있는 사전 정의된 Terraform 템플리트도 제공합니다.
Terraform 설치 및 Code Engine에 대한 리소스 구성
Terraform을 사용하여 워크로드를 작성하기 전에 다음 전제조건을 완료했는지 확인하십시오.
- Code Engine 리소스를 만들고 작업하는 데 필요한 액세스 권한이 있는지 확인하세요.
- Terraform CLI를 설치하고 Terraform에 대한 IBM Cloud 제공자 플러그인을 구성하십시오. 자세한 정보는 IBM Cloud® 에 대한 튜토리얼을 참조하십시오. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.
- 이름이
main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서 HashiCorp 구성 언어를 사용하여 자원을 정의합니다. 자세한 내용은 테라폼 문서를 참조하세요.
-
main.tf파일에서code_engine_project자원 인수를 사용하여 Code Engine 프로젝트를 작성하십시오.data "ibm_resource_group" "resource_group" { name = "<your_resource_group_name>" } resource "ibm_code_engine_project" "code_engine_project_instance" { name = "<your_project_name>" resource_group_id = data.ibm_resource_group.resource_group.id } -
구성 파일 빌드를 완료한 후 Terraform CLI를 초기화하십시오. 자세한 정보는 작업 디렉토리 초기화를 참조하십시오.
terraform init -
main.tf파일에서 프로젝트를 프로비저닝하십시오. 자세한 정보는 Terraform을 사용하여 인프라 프로비저닝을 참조하십시오.-
terraform plan를 실행하여 제안된 조치를 미리보기 위한 Terraform 실행 플랜을 생성하십시오.terraform plandata.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "<your_project_name>" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "<your_resource_group_id>" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. -
terraform apply를 실행하여 계획에 정의된 자원을 작성하십시오.terraform applydata.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. Changes to Outputs: + ibm_code_engine_project = { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) + timeouts = null } Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ibm_code_engine_project.code_engine_project_instance: Creating... ibm_code_engine_project.code_engine_project_instance: Still creating... [10s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [20s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [30s elapsed] ibm_code_engine_project.code_engine_project_instance: Creation complete after 30s [id=13468527-84sa-619g-gr99-168fe364w98f] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ibm_code_engine_project = { "account_id" = "<your_account_id>" "created_at" = "2023-03-16T10:44:24.150838188Z" "crn" = "crn:v1:bluemix:public:codeengine:eu-de:a/dc5e6392e5d14021846031b83e95f190:13468527-84sa-619g-gr99-168fe364w98f::" "href" = "https://api.eu-de.codeengine.cloud.ibm.com/v2/projects/13468527-84sa-619g-gr99-168fe364w98f" "id" = "13468527-84sa-619g-gr99-168fe364w98f" "name" = "my-project" "project_id" = "<your_project_id>" "region" = "eu-de" "resource_group_id" = "<your_resource_group_id>" "resource_type" = "project_v2" "status" = "active" "timeouts" = null /* object */ }
-
-
Code Engine 콘솔의 프로젝트 목록에서 프로젝트를 볼 수 있습니다. 또는
Containers카테고리를 펼치고 프로젝트 이름을 찾아서 IBM Cloud 리소스 목록에서 프로젝트를 볼 수 있습니다.
다음에 수행할 작업
IBM Cloud에서 Terraform을 사용하여 첫 번째 Code Engine 프로젝트를 작성했으므로 추가 리소스를 작성할 수 있습니다.
자원
데이터 소스
ibm_code_engine_allowed_outbound_destinationibm_code_engine_appibm_code_engine_bindingibm_code_engine_buildibm_code_engine_config_mapibm_code_engine_domain_mappingibm_code_engine_functionibm_code_engine_jobibm_code_engine_projectibm_code_engine_secret
IBM Cloud 및 Terraform에 대한 자세한 정보는 IBM Cloud 제공자를 참조하십시오.