워크스페이스 생성 및 Terraform 가져오기
Schematics 를 사용하여 Terraform을 통해 IBM Cloud Schematics 리소스를 관리하세요. 워크스페이스 설정에서는 Git 저장소에 호스팅된 Terraform 엔진을 사용할지 여부를 지정하고, 템플릿을 사용자 정의하기 위한 입력 변수를 정의합니다.
IBM Cloud Schematics 이전 버전의 Terraform을 더 이상 지원하지 않고, 최신 버전의 Terraform에 대한 지원을 도입하고 있습니다. 자세한 내용은 ‘ Schematics ’의 Terraform 사용 중단 라이프사이클 및 사용 중단 일정을 참조하십시오.
시작하기 전에
- Terraform 구성을 작성하고
GitHub,GitLab또는Bitbucket저장소에 구성을 저장하십시오. 또한 로컬 워크스테이션에 있는 테이프 아카이브 파일(.tar)을 업로드하여 IBM Cloud Schematics 에 템플릿을 제공할 수도 있습니다. 자세한 내용은ibmcloud schematics workspace upload명령을 참조하고, 작업 공간에tar파일을 업로드하는 API를 확인하십시오. - 워크스페이스를 생성할 수 있는 권한이 있는지 확인하십시오.
Schematics 작업 공간 및 액션을 생성하거나 업데이트할 때는 location 및 url 엔드포인트가 동일한 리전을 가리키도록 해야 합니다. 위치 및 엔드포인트에 대한 자세한 정보는 정보 저장 위치 를 참조하십시오.
UI를 사용하여 작업 공간 만들기
- IBM Cloud 콘솔에 로그인합니다.
- 메뉴 아이콘
> 플랫폼 자동화 > Schematics > 테라폼 > 작업 공간 만들기를 클릭합니다.
- '템플릿 지정 ' 섹션에서:
-
GitHub,, GitLab, 또는
Bitbucket저장소 URL-<provide your Terraform Git repository URL. -
개인 액세스 토큰-
<leave it blank>.Open reference picker을 클릭하여 Secrets Manager 키 참조를 선택할 수 있습니다. 자세한 내용은 Secrets Manager 인스턴스 만들기를 참고하세요. -
Terraform 버전 -
terraform_v1.4. Terraform 버전 1.4 이상 버전을 선택해야 합니다. 예를 들어, Terraform 템플릿이 Terraform v1.4 를 사용하여 생성된 경우, ‘Terraform version’ 매개변수를 다음과 같이 선택하십시오 terraform_v1.4 로 설정하십시오.Terraform_v1.5를 선택하면 Terraform 버전 1.5 을,terraform_v1.4를 선택하면 Terraform 버전 1.4 을 사용할 수 있습니다.terraform_v1.5를 지정하면 사용자는 Terraformv1.5.0,v1.5.1또는v1.5.7등의 주소를 사용할 수 있습니다. Schematics 은Terraform_v1.x을 지원하며, HashiCorp 구성 언어(HCL)의30 to 45 days이후 버전도 제공할 계획입니다.Schematics 는
Terraform_v1.6를 통해Terraform v1.4의 현재 릴리스를 지원합니다. Terraform은 현재 버전을 자동으로 선택하기 위해, Terraform의required_version에 대해>,>=또는~>과 같은 버전 제약 조건을 사용해야 합니다.terraform { required_version = "~> 1.1" } -
Next을(를) 클릭하십시오.
-
- ‘작업 공간 세부 정보 ’ 섹션에서.
workspace name의 이름을 입력하십시오. 이름은 길이가 최대 128자일 수 있으며 알파벳 문자, 공백, 대시 및 밑줄을 포함할 수 있습니다.- 작업공간 이름 을
schematics-agent-service로 지정하십시오. - 태그 를
my-tags로 설정하십시오. 선택사항: 작업공간에 대한 태그를 입력하십시오. 나중에 이 태그를 활용하면 작업 공간을 더 빨리 찾을 수 있습니다. - 자원 그룹 은 이 작업공간에 대한
default또는 기타 자원 그룹으로 사용됩니다. - 위치 는 이 작업공간의
North America또는 기타 리젼 으로 사용됩니다. 작업 공간을 어디에 만들지 결정하셨나요? 위치에 따라 Schematics 작업이 실행되는 곳과 작업 공간 데이터가 저장되는 곳이 결정되나요? 북미와 같은 지역이나 프랑크푸르트, 런던과 같은 대도시 중에서 선택할 수 있습니다. 장소를 선택하면, Schematics 에서 이용 가능 여부를 바탕으로 해당 장소를 결정합니다. 메트로 도시를 선택하는 경우 작업공간이 이 위치에 작성됩니다. 데이터가 어디에 저장되는지에 대한 자세한 내용은 “정보는 어디에 저장되나요?”를 참조하세요 선택하는 위치는 클라우드 리소스를 프로비저닝하려는 지역과 무관합니다. 이 콘솔은 사용 가능한 모든 위치를 지원하지는 않습니다. 다른 위치에 작업공간을 작성하려면 대신 CLI 또는 API를 사용하십시오. - 선택사항: 작업공간에 대한 설명적인 이름을 입력하십시오.
Next을(를) 클릭하십시오.
- 작업공간 이름 을
Create을(를) 클릭하십시오. 작업공간은 드래프트 상태로 작성되고 설정 페이지가 열립니다.
- '템플릿 지정 ' 섹션에서:
Terraform 템플리트 가져오기
작업공간을 Git 저장소에 가져오는 대신 테이프 아카이브 파일(.tar)을 업로드하려면 ibmcloud schematics workspace upload 명령을 사용하고 작업공간에 tar 파일 업로드 API를 참조해야 합니다.
-
작업공간 설정 페이지에서 편집 아이콘을 입력하여
Repository URL을(를) 편집하십시오. 이 링크는master분기, 기타 분기 또는 서브디렉토리를 가리킬 수 있습니다.master분기의 예:https://github.com/myorg/myrepo- 기타 분기의 예:
https://github.com/myorg/myrepo/tree/mybranch - 서브디렉토리의 예:
https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
-
개인용 Git 저장소를 사용하려면 개인 액세스 토큰을 입력하십시오. 개인 액세스 토큰은 Terraform 템플리트에 액세스하기 위해 Git 저장소로 인증하는 데 사용됩니다.
Open reference picker를 클릭하여 Secrets Manager 키 참조를 선택할 수 있습니다. 자세한 내용은 ‘명령줄용 개인 액세스 토큰 생성’을 참조하세요. 그리고 템플릿을 안전하게 검증하고 복제하려면, 템플릿 복제 버튼(Open reference picker)을 클릭하여 템플릿 키 참조( Secrets Manager )를 선택하면 됩니다. 자세한 내용은 Secrets Manager 인스턴스 만들기를 참고하세요. -
Terraform 구성 파일이 작성되는
Terraform version을(를) 선택하십시오. -
선택란
I understand the changes that could happen if I edit this URL and I agree to these happening옵션을 클릭하십시오. -
저장을 클릭하십시오. IBM Cloud Schematics은(는) 저장소에서 Terraform 구성 파일을 자동으로 다운로드하고, 구문 오류를 검사하고, 구성 파일에 선언한 모든 입력 변수를 검색합니다. 모든 구성 파일을 다운로드하고 구문 오류가 발생하지 않는 경우 작업공간 상태는 비활성으로 변경됩니다.
Terraform 구성 파일이 스캔되면 작업공간 활동 페이지에서 결과를 볼 수 있습니다. 소스 저장소에서 스캔된 총 파일 수는
scanned로 표시됩니다. 지원되지 않는 파일 확장자와 같이 취약한 총 파일 수는discarded로 표시됩니다. 작업을 클릭하여 스캔되고 삭제된 파일의 세부사항을 찾으십시오. 로그 확인에 대한 자세한 내용은 ‘ Schematics 작업 세부 정보 검토’를 참조하십시오. -
Terraform 템플리트에 대한 기본 입력 변수 값을 검토하십시오. 입력 변수의 값을 변경하려면 작업 공간 작업 메뉴에서 ‘편집’을 클릭하십시오. 변수가 사용하는 데이터 유형에 따라 값을 특정 형식으로 입력해야 합니다. 지원되는 각 데이터 유형에 대한 예시 값은 다음 표를 참조하십시오.
| 유형 | 예제 | | --- | -- | |
number| 4.56 | |string| 예제 값 | |bool| false | |map(string)| {key1 = "value1", key2 = "value2"} | |set(string)| ["hello", "he"] | |map(number)| {internal = 8080, external = 2020} | |list(string)| ["us-south", "eu-gb"] | |list| ["value", 30] | |list(list(string))| :[{internal = 8300 external = 8300 protocol ="tcp"},{internal = 8301 external = 8301 protocol ="ldp"}] : list(object({internal = number external = number protocol = string})) : [{internal = 8300 external = 8300 protocol ="tcp"} {internal = 8301 external = 8301 protocol ="ldp"}]|
IBM Cloud 에서 Terraform 템플리트 사용
Schematics 를 사용하여 클라우드 리소스를 관리하면 Terraform으로 클라우드 리소스를 생성, 업데이트 또는 삭제할 수 있습니다.
CLI를 사용하여 작업 공간 만들기
-
로컬 워크스테이션에 JSON 파일을 생성하고 워크스페이스 구성을 추가하십시오. 작업 공간을 생성할 때 사용할 수 있는 추가 구성 옵션에 대해서는
[ibmcloud schematics workspace new명령어를](/docs/schematics?topic=schematics-schematics-cli-reference#schematics-workspace-new) 참조하십시오.에이전트를 사용하여 작업공간을 작성하려면 에이전트를 사용하는 ibmcloud schematics workspace new with Agent 명령을 참조하십시오.
{ "name": "<workspace_name>", "type": [ "<terraform_version>" ], "location": "<location>", "description": "<workspace_description>", "tags": [], "template_repo": { "url": "<github_source_repo_url>" "branch": "master" }, "template_data": [ { "folder": ".", "type": "<terraform_version>", "variablestore": [ { "name": "<variable_name1>", "value": "<variable_value1>", "type": "string", "secure": true }, { "name": "<variable_name2>", "value": "<variable_value2>", "type": "bool", "secure": false } ] } ] }JSON 파일 컴포넌트 설명 매개변수 설명 workspace_name작업공간의 이름을 입력하십시오. 문자 한계의 최대 길이는 1MB로 설정됩니다. 자세한 정보는 작업공간 구조 디자인을 참조하십시오. terraform_versionTerraform 코드를 실행하는 데 사용할 Terraform 버전입니다. Terraform version 1.4를 사용하려면terraform_v1.4,terraform_v1.5및terraform_v1.6를 입력하십시오. Terraform 구성 파일은 사용자가 지정하는 Terraform 버전과 호환 가능해야 합니다. Terraform 변수 version이 지정되지 않은 경우, 기본적으로 Schematics 은 템플릿에서 버전을 선택합니다.location작업공간을 작성할 위치를 입력하십시오. 이 위치에 따라 Schematics 조치가 실행되는 위치와 작업공간 데이터가 저장되는 위치가 결정됩니다. 위치는 IBM Cloud 서비스를 작성할 지역과 관련이 없습니다. description작업공간에 대한 설명을 입력하십시오. github_source_repo_urlTerraform 구성 파일이 저장된 GitHub 또는 GitLab 저장소의 URL을 입력하십시오. GitHub 저장소 없이 작업공간을 작성하도록 선택하는 경우 작업공간은 드래프트 상태로 작성됩니다. 나중에 작업공간을 GitHub 저장소에 연결하려면 ibmcloud schematics workspace update명령을 사용해야 합니다.variable_name선택사항: Terraform 구성 파일에서 선언한 입력 변수에 대한 이름을 입력하십시오. variable_type선택사항: 입력 변수의 데이터 유형을 입력하십시오. 지원되는 데이터 유형은 ibmcloud schematics workspace new명령을 참조하십시오. -
작업공간을 작성하십시오.
ibmcloud schematics workspace new --file workspace.json -
작업공간이 작성되었는지 확인하십시오. 작업 공간이 ‘비활성’ 상태인지 확인하십시오.
ibmcloud schematics workspace list -
Schematics 를 사용하여 클라우드 리소스 관리하기 를 참조하여 Terraform으로 클라우드 리소스를 업데이트하거나 삭제하십시오.
API를 사용하여 작업공간 작성
-
API를 사용하여 IAM 액세스 토큰을 검색하고 IBM Cloud Schematics을(를) 인증하기 위한 단계를 따르십시오.
-
Terraform을 사용하여 작업공간을 작성하십시오.
curl --request POST --url https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -d '{"name": "<workspace_name>","type": ["<terraform_version>"],"location": "<location>","description": "<description>","template_repo": {"url": "<github_source_repo_url>"},"template_data": [{"folder": ".","type": "<terraform_version>","variablestore": [{"value": "<variable_value>","name": "<variable_name>","type": "<variable_type>","secure": true}]}]}'JSON 파일 컴포넌트 설명 매개변수 설명 iam_access_token1단계에서 검색한 IAM 액세스 토큰을 입력하십시오. workspace_name작업공간의 이름을 입력하십시오. 문자 한계의 최대 길이는 1MB로 설정됩니다. 자세한 정보는 작업공간 구조 디자인을 참조하십시오. terraform_versionTerraform 코드를 실행하는 데 사용할 Terraform 버전입니다. Terraform 버전 1.4및 이와 유사하게 terraform_v1.5및terraform_v1.6를 사용하려면terraform_v1.4를 입력하십시오. Terraform 구성 파일은 사용자가 지정하는 Terraform 버전과 호환 가능해야 합니다. Terraform 변수 version이 지정되지 않은 경우, 기본적으로 Schematics 은 템플릿에서 버전을 선택합니다.location작업공간을 작성할 위치를 입력하십시오. 이 위치에 따라 Schematics 조치가 실행되는 위치와 작업공간 데이터가 저장되는 위치가 결정됩니다. 위치는 IBM Cloud 서비스를 작성할 지역과 관련이 없습니다. description작업공간에 대한 설명을 입력하십시오. github_source_repo_urlTerraform 구성 파일이 저장된 GitHub 또는 GitLab 저장소의 URL에 접속하세요variable_name선택사항: Terraform 구성 파일에서 선언한 입력 변수에 대한 이름을 입력하십시오. variable_value선택사항: 입력 변수의 데이터 유형을 입력하십시오. variable_type선택사항: 입력 변수의 데이터 유형을 입력하십시오. 지원되는 데이터 유형은 ibmcloud schematics workspace new명령을 참조하십시오. -
작업공간이 작성되었는지 확인하십시오.
curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -
Schematics 를 사용하여 클라우드 리소스 관리하기 를 참조하여 클라우드 리소스를 업데이트하거나 삭제하십시오.
Terraform을 사용하여 작업공간 작성
-
Terraform을 사용하여 작업공간을 작성하려면 Schematics용 Terraform 설정의 단계를 따르십시오.
-
Schematics 를 사용하여 클라우드 리소스 관리하기 를 참조하여 클라우드 리소스를 업데이트하거나 삭제하십시오.
다음 단계
워크스페이스 작업의 다음 단계는 워크스페이스 배포 입니다.