작업공간 업데이트

기존 작업공간에 대한 세부사항(예: 작업공간 이름, 변수 또는 소스 제어 URL)을 업데이트합니다. 프로비저닝 또는 수정하려면 IBM Cloud, ibmcloud schematics plan 명령을 참조하세요.

IBM Cloud Schematics 는 이전 버전의 Terraform을 더 이상 지원하지 않고 최신 Terraform 버전에 대한 지원을 도입합니다. 자세한 내용은 Schematics Terraform 지원 중단 수명 주기지원 중단 일정을 참조하세요.

시작하기 전에

Schematics 워크스페이스 또는 작업을 만들거나 업데이트할 때 locationurl 엔드포인트가 같은 지역을 가리키고 있는지 확인하세요. 위치 및 엔드포인트에 대한 자세한 정보는 정보 저장 위치 를 참조하십시오.

UI를 사용하여 작업공간 업데이트

  1. IBM Cloud 콘솔에 로그인합니다.
  2. 메뉴 아이콘 햄버거 아이콘 > 플랫폼 자동화 > Schematics > 테라폼을 클릭합니다.
  3. 편집하려면 작업 공간을 클릭하세요.
  4. 설정 을 클릭하십시오. 세부 정보 > 저장소 URL 에서 편집 아이콘을 클릭하여 다음 매개변수를 편집합니다.
    • GitHub, GitLab, 또는 Bitbucket 저장소 URL<provide your Terraform template Git repository URL.

    • 개인용 액세스 토큰 <leave it blank>. 템플릿을 안전하게 검증하고 복제하려면, 템플릿 복제 버튼( Open reference picker )을 클릭하여 템플릿 키 참조( Secrets Manager )를 선택하십시오. 자세한 내용은 Secrets Manager 인스턴스 만들기를 참고하세요.

    • Terraform 버전 terraform_v1.6. 1.6 이상의 Terraform 버전을 선택해야 합니다. 예를 들어, Terraform 템플릿을 Terraform v1.6 를 사용하여 만든 경우, Terraform version 매개변수를 다음과 같이 선택합니다 terraform_v1.6. Terraform_v1.4 를 선택하면 Terraform 버전 1.4 를 사용할 수 있고, terraform_v1.6 를 선택하면 Terraform 버전 1.6 를 사용할 수 있습니다. terraform_v1.5 를 지정하면 사용자는 Terraform v1.5.0, v1.5.1, v1.5.7 등의 템플릿을 가질 수 있습니다. Schematics 는 Terraform_v1.x 를 지원하며, 30 to 45 days 이후에 HashiCorp Configuration Language(HCL) 릴리스를 사용할 수 있도록 할 계획입니다.

      Schematics 는 terraform_v1.6 를 통해 Terraform v1.4 의 현재 릴리스를 지원합니다. Terraform 템플릿은 버전 제약 조건(예: > 또는 >= 또는 ~> )을 사용하여 현재 버전을 자동으로 선택해야 합니다(예: required_version ).

      terraform {
      required_version = "~> 1.5"
      }
      
    • 저장 을 클릭하십시오.

    • 변수 섹션에서. 오버플로 메뉴에서 편집을 클릭하여 변수를 편집합니다. workspace name 의 이름을 입력하세요. 이름은 길이가 최대 128자일 수 있으며 알파벳 문자, 공백, 대시 및 밑줄을 포함할 수 있습니다.

    • 저장 을 클릭하십시오.

작업공간 업데이트 확인

  1. IBM Cloud 콘솔 에 나열된 작업공간을 클릭하여 작업공간 세부사항의 결과를 보십시오.
  2. 작업 탭을 클릭하여 작업공간 로그를 확인하십시오.
  3. 작업 히스토리 탭을 클릭하면 자동화 모듈이 실행한 작업 업데이트 조작의 결과가 표시됩니다.
  4. 설정 탭을 클릭하여 구성 요약을 보십시오.

CLI를 사용하여 워크스페이스 업데이트하기

  1. 로컬 워크스테이션에서 JSON 파일을 업데이트하고 워크스페이스 구성을 추가하세요. 작업공간을 업데이트할 때 추가 구성 옵션은 ibmcloud schematics workspace update 명령 을 참조하십시오.

     ```json {: codeblock}
     {
         "name":"testwspace03jan",
         "type":[
             "terraform_v1.4"
         ],
         "description":"terraform workspace",
         "location":"us-east",
         "tags":[
             "department:HR",
             "application:compensation",
             "environment:production"
         ],
         "template_repo":{
             "url":"https://github.com/Anil-CM/newrepo"
         },
         "workspace_status":{
             "frozen":true
         },
         "template_data":[
             {
             "folder":".",
             "type":"terraform_v1.4",
             "variablestore":[
             {
                 "name":"sample_var",
                 "secure":true,
                 "value":"THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                 "description":"Description of sample_var"
             },
             {
                 "name":"sleepy_time",
                 "value":"15"
                 }
             ]
             }
         ]
     }
     ```
    

    구문

     ```sh {: pre}
     ibmcloud schematics workspace update --id WORKSPACE_ID [--file FILE_NAME] [--github-token GITHUB_TOKEN] [--pull-latest]  [--output OUTPUT]
     ```
    
  2. 워크스페이스 이름, 변수 또는 소스 제어와 같은 기존 워크스페이스의 세부 정보를 업데이트합니다 URL.

     ```sh {: pre}
     ibmcloud schematics workspace update --id <WORKSPACE_ID>
     ```
    
  3. 워크스페이스가 업데이트되었는지 확인합니다. 워크스페이스가 비활성 상태인지 확인하세요.

     ```sh {: pre}
     ibmcloud schematics workspace list
     ```
    
  4. Terraform을 사용하여 클라우드 리소스를 생성, 업데이트 또는 삭제하려면 Schematics 사용하여 클라우드 리소스 관리 를 참조하세요.

작업공간 업데이트 확인

이전에 작성된 작업공간의 매개변수가 업데이트된 CLI 명령 업데이트를 사용하여 세부사항을 확인하십시오.

```text {: screen}
ibmcloud schematics workspace update --id <WORKSPACE_ID> --target <TARGET_RESOURCE_NAME>
Do you really want to perform this action? [y/N]> y

Activity ID   c10fc92ddfd2d9ec645fc5dbece5e341

OK

```

업데이트에 성공하면 기존 작업공간의 업데이트된 세부사항을 리턴합니다.

자세한 정보는 문제점 해결 절 을 참조하십시오.

API를 사용하여 워크스페이스 업데이트하기

  1. API를 사용하여 IAM 액세스 토큰을 검색하고 IBM Cloud Schematics을(를) 인증하기 위한 단계를 따르십시오.

  2. 워크스페이스 이름, 변수 또는 소스 제어와 같은 기존 워크스페이스의 세부 정보 업데이트하기 URL.

     ```json {: codeblock}
     PUT /v1/workspaces/{w_id} HTTP/1.1
     Host: schematics.cloud.ibm.com
     Content-Type: application/json
     Authorization: <auth_token>
     {
     "name":"testwspace03jan",
     "type":[
         "terraform_v1.4"
     ],
     "description":"terraform workspace updated",
     "location":"us-east",
     "tags":[
         "department:HR",
         "application:compensation",
         "environment:production"
     ],
     "template_repo":{
         "url":"https://github.com/Anil-CM/newrepo"
     },
     "workspace_status":{
         "frozen":true
     },
     "template_data":[
         {
             "folder":".",
             "type":"terraform_v1.4",
         "variablestore":[
             {
                 "name":"sample_var",
                 "secure":true,
                 "value":"THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                 "description":"Description of sample_var"
             },
             {
                 "name":"sleepy_time",
                 "value":"15"
                 }
             ]
         }
     ]
     }
     ```
    
  3. 작업공간이 성공적으로 업데이트되었는지 확인하십시오.

     ```sh {: pre}
     curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>"
     ```
    
  4. Schematics 를 사용하여 클라우드 리소스 관리하기 를 참조하여 Terraform으로 클라우드 리소스를 생성, 업데이트 또는 삭제하는 방법을 시작하십시오.

작업공간 업데이트 확인

출력에 표시된 대로 작업공간 업데이트가 완료되었는지 확인하십시오.

출력

```text {: screen}
{
    "id": "us-east.workspace.testwspace03jan.cf74cc48",
    "name": "testwspace03jan",
    "crn": "crn:v1:bluemix:public:schematics:us-south:a/1f7277194bb748cdb1d35fd8fb85a7cb:9ae7be42-0d59-415c-a6ce-0b662f520a4d:workspace:us-east.workspace.testwspace03jan.cf74cc48",
    "type": [
        "terraform_v1.4"
    ],
    "description": "terraform workspace updated successfully",
    "resource_group": "Default",
    "location": "us-east",
    "tags": [
        "department:HR",
        "application:compensation",
        "environment:production"
    ],
    "created_at": "2023-01-03T07:02:38.369965717Z",
    "created_by": "test@in.ibm.com",
    "status": "DRAFT",
    "failure_reason": "",
    "workspace_status_msg": {
        "status_code": "200",
        "status_msg": ""
    },
    "workspace_status": {
        "frozen": true,
        "frozen_by": "test@in.ibm.com",
        "frozen_at": "2023-01-05T13:44:32.400019282Z",
        "locked": false
    },
    "template_repo": {
        "url": "https://github.com/Anil-CM/newrepo",
        "commit_id": "3dc60ea7fb30f236dbadfa817cf4beb5d337808d",
        "full_url": "https://github.com/Anil-CM/newrepo",
        "has_uploadedgitrepotar": false
    },
    "template_data": [
        {
            "id": "b44c147b-81fb-4e",
            "folder": ".",
            "compact": false,
            "type": "terraform_v1.4",
            "values_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/template_data/b44c147b-81fb-4e/values",
            "values": "",
            "values_metadata": [
                {
                    "default": "testvpcone",
                    "description": "",
                    "name": "vpc_name",
                    "type": "string"
                },
                {
                    "default": "[\"tag:test1\", \"tag:test2\"]",
                    "description": "",
                    "name": "vpc_tags",
                    "type": "list(string)"
                }
            ],
            "variablestore": [
                {
                    "name": "sample_var",
                    "secure": true,
                    "value": "THIS IS IBM CLOUD TERRAFORM CLI DEMO",
                    "type": "",
                    "description": "Description of sample_var"
                },
                {
                    "name": "sleepy_time",
                    "secure": false,
                    "value": "15",
                    "type": "",
                    "description": ""
                }
            ],
            "has_githubtoken": false
        }
    ],
    "runtime_data": [
        {
            "id": "b44c147b-81fb-4e",
            "engine_name": "terraform",
            "engine_version": "v1.0.11",
            "state_store_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/runtime_data/b44c147b-81fb-4e/state_store",
            "log_store_url": "https://us.schematics.cloud.ibm.com/v1/workspaces/us-east.workspace.testwspace03jan.cf74cc48/runtime_data/b44c147b-81fb-4e/log_store"
        }
    ],
    "shared_data": {
        "resource_group_id": ""
    },
    "applied_shareddata_ids": null,
    "updated_by": "test@in.ibm.com",
    "updated_at": "2023-01-05T13:44:32.483034358Z",
    "last_health_check_at": "0001-01-01T00:00:00Z",
    "cart_id": "",
    "last_action_name": "WORKSPACE_UPDATE",
    "last_activity_id": "fe1591c02c66167b41fefac1ab5445cb",
    "last_job": {
        "job_id": "fe1591c02c66167b41fefac1ab5445cb",
        "job_name": "WORKSPACE_UPDATE",
        "job_status": ""
    }
}
```

작업 공간 업데이트가 성공적으로 완료되면, 업데이트된 구성에 대한 세부 정보(작업 공간 이름, 변수, 작업 공간의 소스 제어 URL 등)가 반환됩니다.

자세한 정보는 문제점 해결 절 을 참조하십시오.

Terraform을 사용하여 작업공간 업데이트

  1. Terraform을 사용하여 작업공간을 작성하려면 Schematics용 Terraform 설정의 단계를 따르십시오.

  2. Schematics 를 사용하여 클라우드 리소스를 관리 하여 Terraform으로 클라우드 리소스를 생성, 업데이트 또는 삭제하는 방법을 확인해 보세요.

다음 단계

워크스페이스 작업의 다음 단계는 워크스페이스 배포 입니다.