주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마칠 때는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
CLI로 CD3 Toolkit을 구성하여 Oracle Cloud Infrastructure 리소스 생성 및 익스포트
소개
Cloud Deployment Design Deliverable(CD3) 자동화 툴킷을 사용하면 Excel 템플릿을 완벽하게 작동하는 Terraform 모듈로 쉽게 변환하여 OCI(Oracle Cloud Infrastructure) 리소스를 간편하게 구축, 내보내기 및 관리할 수 있습니다.
또한 이 툴킷은 OCI DevOps Git 서비스 및 Jenkins 파이프라인을 사용하여 원활한 리소스 관리를 지원합니다.
목표
-
한 번의 클릭으로 CD3 컨테이너 리소스 관리자 스택을 실행하고 CD3 CLI를 사용하여 OCI 네트워킹 및 OCI 컴퓨트 리소스를 생성합니다.
-
CD3 CLI를 사용하여 OCI 네트워킹 및 OCI 컴퓨트 리소스를 익스포트합니다.
필요 조건
-
Oracle Cloud Infrastructure Identity and Access Management(OCI IAM) 정책을 통해 사용자 또는 인스턴스 주체가 툴킷을 사용하여 생성 또는 익스포트해야 하는 서비스를 관리할 수 있습니다.
-
스택을 배치하는 사용자에게 OCI 리소스 관리자 스택, OCI 컴퓨트 인스턴스 및 OCI 네트워킹 리소스를 실행할 수 있는 액세스 권한이 있어야 합니다.
작업 1: 툴킷 컨테이너 설정
-
Oracle Cloud에 배치를 눌러 CD3 workVM를 생성하는 OCI 리소스 관리자 스택을 실행합니다.
-
조건 및 조항에 동의합니다. Network(네트워크), Compartment(구획), Virtual Machine(VM) Name(가상 머신) 이름), Shape(구성) 및 기타 workVM 세부정보를 입력합니다.
주: 보안 환경을 유지 관리하려면 VM에 액세스할 특정 소스 CIDR 범위를 제공하십시오. 사용 안함
0.0.0.0/0
. -
적용 실행 섹션을 선택하고 생성을 누릅니다.
-
적용 작업이 성공한 후 작업을 누르고 로그 끝까지 아래로 스크롤합니다.
툴킷 컨테이너에 로그인하기 위해 실행할 생성된 VM 및 명령에 대한 세부정보를 찾습니다. 다음 그림은 샘플 출력을 보여줍니다.
컨테이너에 로그인한 후 작업 2에 따라 OCI 테넌시에 연결하여 OCI API를 실행합니다.
작업 2: 컨테이너를 OCI 테넌시에 접속
-
컨테이너 내부에서
cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/
로 이동하여tenancyconfig.properties
파일을 엽니다. -
필수 매개변수 및 인증 세부정보 매개변수 섹션에서 필요한 구성 값을 추가합니다.
주: 이 자습서에서는 API 키 인증을 사용합니다.
auth_mechanism
를 기본값으로 유지합니다. -
OCI 콘솔로 이동하여 사용자 설정에서 APIkeys에 공개 키를 업로드합니다. 컨테이너 안에 개인 키를 놓습니다. 필요한 구성 값을 복사하여
tenancyconfig.properties
파일의 해당 매개변수 아래에 붙여넣습니다. -
outdir_structure_file
매개변수에 대한 기본값을 유지합니다. 그러면 서비스별 폴더 아래의 각 서비스에 대해 생성된auto.tfvars
파일이 그룹화됩니다. -
IaC 도구의 경우 terraform 또는 tofu를 선택할 수 있습니다. 기본값은 terraform입니다. OpenTofu를 사용하려면 tofu를 지정합니다.
주: Jenkins 설정이 이 자습서의 범위에 없으므로 DevOps에 대한 고급 매개변수 섹션을 그대로 둡니다. Jenkins를 사용하여 툴킷을 실행하려면 Oracle Cloud Infrastructure 리소스 생성 및 익스포트를 위해 Jenkins를 사용하여 CD3 구성을 참조하십시오.
-
파일을 저장하고
createTenancyConfig.py
를 실행하여 환경을 초기화하고 CD3 사용을 시작합니다.python createTenancyConfig.py tenancyconfig.properties
-
출력을 확인합니다.
그런 다음 OCI에서 리소스를 생성하고 작업 3을 따르고 리소스를 내보내려면 작업 4를 따릅니다.
작업 3: 리소스 생성
작업 3.1: Excel 및 변수 파일 준비
-
cd3quickstart.xlsx에서 미리 채워진 Excel 템플리트를 다운로드합니다. 환경에 따라 시트에서 Region(지역) 및 Compartment(구획) 값을 수정하고 컨테이너로 다시 전환합니다.
-
아래 scp 명령을 사용하여
/cd3user/tenancies/cd3_demo_cli/
의 컨테이너에 Excel 파일을 추가합니다.주: CD3 컨테이너의 테넌시 폴더는 컴퓨트 VM의
/cd3user/mount_path
폴더에 매핑됩니다.cd3user
로 로그인하여 권한 문제를 방지합니다.scp -i ~/.ssh/id_rsa /Users/xyz/cd3quickstart.xlsx cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/cd3quickstart.xlsx
-
컨테이너에서
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tf
를 엽니다.instance_ssh_keys
변수에서 Excel 시트ssh_public_key
에 지정된 SSH 키의 변수 이름을 해당 값(키 콘텐츠)과 함께 추가합니다. -
instance_source_ocids
변수 아래에 소스 이미지myimageocid
의 Excel 시트에 지정된 변수 이름을 포함하고 해당 OCID를 해당 값으로 지정합니다.
작업 3.2: setUpOCI.py
스크립트를 실행하여 리소스 Terraform 파일 생성
-
/cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
파일을 열고cd3file
변수 아래에 CD3 Excel 파일 경로를 추가합니다. workflow_type 변수를create_resources
로 설정하고 파일을 저장합니다. -
디렉토리를
cd /cd3user/oci_tools/cd3_automation_toolkit/
로 변경하고setUpOCI.py
스크립트를 실행합니다.python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
주: 스크립트를 처음으로 실행하는 경우 Execute Script를 선택하여 구획 OCID를 변수 파일로 인출합니다. 프롬프트는 y를 선택합니다.
-
출력 메뉴에서 Network(네트워크) 및 Compute(컴퓨트) 옵션을 선택한 다음 Create Network(네트워크 생성) 하위 옵션을 선택하여 VCN 및 서브넷을 생성하고 Add/Modify/Delete Instances/Boot Backup Policy(인스턴스/부트 백업 정책 추가/수정/삭제)를 선택하여 인스턴스를 프로비전합니다.
-
디렉토리를
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/
로 변경합니다. Terraform 명령을 실행하여 네트워크 리소스를 프로비전합니다.terraform init terraform plan -out tfplan terraform apply tfplan
-
네트워크 생성은 VCN에 아직 CD3 Excel 시트에 없는 몇 가지 규칙을 생성합니다. 해당 세부정보는 초기에 서브넷 탭에서 가져옵니다. Excel 파일에 동기화하려면 위와 동일한 Excel 시트를 사용하여
setUpOCI
스크립트를 다시 실행합니다. 워크플로우가cd3_demo_cli_setUpOCI.properties
파일에서 리소스 생성으로 설정되었는지 확인합니다. 기본 옵션 아래에서 네트워크를 선택한 다음 아래 하위 옵션을 선택합니다.Security Rules ---> Export Security Rules (From OCI into SecRulesinOCI sheet), Add/Modify/Delete Security Rules (Reads SecRulesinOCI sheet) Route Rules ---> Export Route Rules (From OCI into RouteRulesinOCI sheet), Add/Modify/Delete Route Rules (Reads RouteRulesinOCI sheet) DRG Route Rules ---> Export DRG Route Rules (From OCI into DRGRouteRulesinOCI sheet), Add/Modify/Delete DRG Route Rules (Reads DRGRouteRulesinOCI sheet)
-
성공적으로 완료되면 Excel 템플리트의
DRGRouteRulesinOCI
,RouteRulesinOCI
및SecRulesinOCI
시트가 해당 데이터로 채워지고cd3_demo_cli_seclists.auto.tfvars
,cd3_demo_cli_routetables.auto.tfvars
및cd3_demo_cli_drg-routetables.auto.tfvars
파일이/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir>
폴더 아래에 생성됩니다. -
terraform plan
및terraform apply
를 확인합니다. Terraform 적용을 실행하면 OCI에서 보안 규칙, 경로 규칙 및 DRG 경로 규칙 익스포트가 완료됩니다. 이제 Terraform 상태가 OCI와 동기화되어야 합니다. -
컴퓨트 리소스를 프로비전하려면 디렉토리를
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/
로 변경하고 Terraform 명령을 실행합니다.terraform init terraform plan -out tfplan terraform apply tfplan
OCI 콘솔에서 프로비전된 리소스를 확인합니다.
태스크 4: 자원 익스포트
작업 4.1: 컨테이너에 Excel 템플리트 추가
-
CD3-Blank-template을 다운로드하고
/cd3user/tenancies/cd3_demo_cli/
의 컨테이너에 추가합니다.주: cd3 컨테이너의 테넌시 폴더는 컴퓨트 VM의
/cd3user/mount_path
폴더에 매핑됩니다.cd3user
로 로그인하여 권한 문제를 방지합니다. -
/cd3user/tenancies/cd3_demo_cli/
폴더로 이동하여cd3_demo_cli_setUpOCI.properties
파일을 엽니다. -
CD3 Excel 파일 경로를
cd3file
변수 아래에 추가합니다. -
workflow_type 매개변수를
export_resources
로 설정하고 파일을 저장합니다.
작업 4.2: setUpOCI.py
스크립트 실행
-
디렉토리를
cd /cd3user/oci_tools/cd3_automation_toolkit/
로 변경하고setUpOCI.py
스크립트를 실행합니다.python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
주: 스크립트를 처음으로 실행하는 경우 Execute Script를 선택하여 구획 OCID를 변수 파일로 인출합니다. 프롬프트는 y를 선택합니다.
-
여러 영역에서 리소스를 익스포트해야 하는 경우 콤마로 구분된
region
값을 제공하십시오. 영역 값이 제공되지 않은 경우 툴킷은 모든 가입된 영역에서 리소스를 익스포트합니다. -
내보낼 리소스 옵션(네트워크 및 컴퓨트)을 선택합니다. 특정 구획 또는 모든 구획에서만 리소스를 익스포트하도록 선택할 수 있습니다. 구획 이름이 고유하지 않은 경우 계층을 기반으로 다음 형식으로 지정해야 합니다.
Parent Compartment::Child Compartment1::Child Compartment2
-
특정 리소스만 내보내려면 메시지가 표시될 때 필요한 필터 값을 입력합니다.
주: OCI 네트워킹 리소스 및 OCI 컴퓨트 리소스 익스포트에 대한 자세한 내용은 OCI 네트워킹 리소스 익스포트 및 OCI 컴퓨트 리소스 익스포트를 참조하십시오.
-
성공적으로 완료되면 내보낸 리소스 데이터가 입력 Excel 파일에 채워집니다. 업데이트된 Excel 시트는 컨테이너 내부의
/cd3user/tenancies/cd3_demo_cli
폴더에 있으며 scp 명령을 사용하여 로컬 시스템에 수동으로 복사해야 합니다.scp -i ~/.ssh/id_rsa cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/CD3-Blank-template.xlsx /Users/xyz/CD3-export.xlsx
-
Terraform 임포트 명령이 포함된 서비스별
.tfvars
및.sh
파일은 영역 폴더 아래의 해당 서비스 폴더 내에 생성됩니다.-
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/network/
-
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/compute/
OCI 컴퓨트의 경우 연관된 SSH 공용 키는
variables_<region>.tf
의instance_ssh_keys
변수 아래에 배치되고 소스 OCID는instance_source_ocid
변수 아래에 배치됩니다. -
작업 4.3: 생성된 .sh
파일 실행
-
network 및 compute 서비스 폴더에서 Terraform 가져오기 명령이 포함된 생성된
.sh
파일을 각각 실행합니다.주: OCI 네트워킹의 경우 다른
.sh
스크립트를 실행하기 전에 major_objects에 대해.sh
스크립트를 실행해야 합니다.sh import_commands_network_major-objects.sh
-
.sh
스크립트가 성공적으로 완료되면 Terraform 상태 파일이 생성되고 Terraform 계획이 최신으로 업데이트됩니다.
이 생성된 Terraform 코드는 OCI Resource Manager와 함께 사용하거나 추가 관리를 위해 조직 CI/CD 프로세스에서 활용할 수 있습니다.
새 리소스를 추가하거나 기존 리소스를 수정하려면 먼저 리소스를 CD3로 내보내고 내보낸 Excel 템플릿에서 필요한 변경 작업을 수행한 다음 /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
파일에서 workflow_type를 create_resources
로 수정하고 툴킷을 실행합니다.
관련 링크
확인
- 작성자 - Lasya Vadavalli(수석 클라우드 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Configure CD3 Toolkit with CLI to Create and Export Oracle Cloud Infrastructure Resources
F87017-04
September 2024