주:

CLI로 CD3 Toolkit을 구성하여 Oracle Cloud Infrastructure 리소스 생성 및 익스포트

소개

Cloud Deployment Design Deliverable(CD3) 자동화 툴킷을 사용하면 Excel 템플릿을 완벽하게 작동하는 Terraform 모듈로 쉽게 변환하여 OCI(Oracle Cloud Infrastructure) 리소스를 간편하게 구축, 내보내기 및 관리할 수 있습니다.

또한 이 툴킷은 OCI DevOps Git 서비스 및 Jenkins 파이프라인을 사용하여 원활한 리소스 관리를 지원합니다.

워크플로우

목표

필요 조건

작업 1: 툴킷 컨테이너 설정

  1. Oracle Cloud에 배치를 눌러 CD3 workVM를 생성하는 OCI 리소스 관리자 스택을 실행합니다.

    Deploy_To_OCI

  2. 조건 및 조항에 동의합니다. Network(네트워크), Compartment(구획), Virtual Machine(VM) Name(가상 머신) 이름), Shape(구성) 및 기타 workVM 세부정보를 입력합니다.

    주: 보안 환경을 유지 관리하려면 VM에 액세스할 특정 소스 CIDR 범위를 제공하십시오. 사용 안함 0.0.0.0/0.

  3. 적용 실행 섹션을 선택하고 생성을 누릅니다.

  4. 적용 작업이 성공한 후 작업을 누르고 로그 끝까지 아래로 스크롤합니다.

    툴킷 컨테이너에 로그인하기 위해 실행할 생성된 VM 및 명령에 대한 세부정보를 찾습니다. 다음 그림은 샘플 출력을 보여줍니다.

    rmstackoutput

    컨테이너에 로그인한 후 작업 2에 따라 OCI 테넌시에 연결하여 OCI API를 실행합니다.

작업 2: 컨테이너를 OCI 테넌시에 접속

  1. 컨테이너 내부에서 cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/로 이동하여 tenancyconfig.properties 파일을 엽니다.

  2. 필수 매개변수인증 세부정보 매개변수 섹션에서 필요한 구성 값을 추가합니다.

    주: 이 자습서에서는 API 키 인증을 사용합니다. auth_mechanism를 기본값으로 유지합니다.

  3. OCI 콘솔로 이동하여 사용자 설정에서 APIkeys에 공개 키를 업로드합니다. 컨테이너 안에 개인 키를 놓습니다. 필요한 구성 값을 복사하여 tenancyconfig.properties 파일의 해당 매개변수 아래에 붙여넣습니다.

  4. outdir_structure_file 매개변수에 대한 기본값을 유지합니다. 그러면 서비스별 폴더 아래의 각 서비스에 대해 생성된 auto.tfvars 파일이 그룹화됩니다.

  5. IaC 도구의 경우 terraform 또는 tofu를 선택할 수 있습니다. 기본값은 terraform입니다. OpenTofu를 사용하려면 tofu를 지정합니다.

    tenancyconfig_properties

    주: Jenkins 설정이 이 자습서의 범위에 없으므로 DevOps에 대한 고급 매개변수 섹션을 그대로 둡니다. Jenkins를 사용하여 툴킷을 실행하려면 Oracle Cloud Infrastructure 리소스 생성 및 익스포트를 위해 Jenkins를 사용하여 CD3 구성을 참조하십시오.

  6. 파일을 저장하고 createTenancyConfig.py를 실행하여 환경을 초기화하고 CD3 사용을 시작합니다.

    python createTenancyConfig.py tenancyconfig.properties
    
  7. 출력을 확인합니다.

    tenancyconfig_output

    그런 다음 OCI에서 리소스를 생성하고 작업 3을 따르고 리소스를 내보내려면 작업 4를 따릅니다.

작업 3: 리소스 생성

작업 3.1: Excel 및 변수 파일 준비

  1. cd3quickstart.xlsx에서 미리 채워진 Excel 템플리트를 다운로드합니다. 환경에 따라 시트에서 Region(지역)Compartment(구획) 값을 수정하고 컨테이너로 다시 전환합니다.

  2. 아래 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
    
  3. 컨테이너에서 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tf를 엽니다. instance_ssh_keys 변수에서 Excel 시트 ssh_public_key에 지정된 SSH 키의 변수 이름을 해당 값(키 콘텐츠)과 함께 추가합니다.

    ssh_key

  4. instance_source_ocids 변수 아래에 소스 이미지 myimageocid의 Excel 시트에 지정된 변수 이름을 포함하고 해당 OCID를 해당 값으로 지정합니다.

    소스 ID

작업 3.2: setUpOCI.py 스크립트를 실행하여 리소스 Terraform 파일 생성

  1. /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties 파일을 열고 cd3file 변수 아래에 CD3 Excel 파일 경로를 추가합니다. workflow_type 변수를 create_resources로 설정하고 파일을 저장합니다.

    이미지

  2. 디렉토리를 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를 선택합니다.

    이미지

  3. 출력 메뉴에서 Network(네트워크)Compute(컴퓨트) 옵션을 선택한 다음 Create Network(네트워크 생성) 하위 옵션을 선택하여 VCN 및 서브넷을 생성하고 Add/Modify/Delete Instances/Boot Backup Policy(인스턴스/부트 백업 정책 추가/수정/삭제)를 선택하여 인스턴스를 프로비전합니다.

  4. 디렉토리를 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/로 변경합니다. Terraform 명령을 실행하여 네트워크 리소스를 프로비전합니다.

    terraform init
    terraform plan -out tfplan
    terraform apply tfplan
    
  5. 네트워크 생성은 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)
    
  6. 성공적으로 완료되면 Excel 템플리트의 DRGRouteRulesinOCI, RouteRulesinOCISecRulesinOCI 시트가 해당 데이터로 채워지고 cd3_demo_cli_seclists.auto.tfvars, cd3_demo_cli_routetables.auto.tfvarscd3_demo_cli_drg-routetables.auto.tfvars 파일이 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir> 폴더 아래에 생성됩니다.

  7. terraform planterraform apply를 확인합니다. Terraform 적용을 실행하면 OCI에서 보안 규칙, 경로 규칙 및 DRG 경로 규칙 익스포트가 완료됩니다. 이제 Terraform 상태가 OCI와 동기화되어야 합니다.

  8. 컴퓨트 리소스를 프로비전하려면 디렉토리를 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/로 변경하고 Terraform 명령을 실행합니다.

    terraform init
    terraform plan -out tfplan
    terraform apply tfplan
    

    OCI 콘솔에서 프로비전된 리소스를 확인합니다.

태스크 4: 자원 익스포트

작업 4.1: 컨테이너에 Excel 템플리트 추가

  1. CD3-Blank-template을 다운로드하고 /cd3user/tenancies/cd3_demo_cli/의 컨테이너에 추가합니다.

    주: cd3 컨테이너의 테넌시 폴더는 컴퓨트 VM의 /cd3user/mount_path 폴더에 매핑됩니다. cd3user로 로그인하여 권한 문제를 방지합니다.

  2. /cd3user/tenancies/cd3_demo_cli/ 폴더로 이동하여 cd3_demo_cli_setUpOCI.properties 파일을 엽니다.

  3. CD3 Excel 파일 경로를 cd3file 변수 아래에 추가합니다.

  4. workflow_type 매개변수를 export_resources로 설정하고 파일을 저장합니다.

작업 4.2: setUpOCI.py 스크립트 실행

  1. 디렉토리를 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를 선택합니다.

    이미지

  2. 여러 영역에서 리소스를 익스포트해야 하는 경우 콤마로 구분된 region 값을 제공하십시오. 영역 값이 제공되지 않은 경우 툴킷은 모든 가입된 영역에서 리소스를 익스포트합니다.

  3. 내보낼 리소스 옵션(네트워크컴퓨트)을 선택합니다. 특정 구획 또는 모든 구획에서만 리소스를 익스포트하도록 선택할 수 있습니다. 구획 이름이 고유하지 않은 경우 계층을 기반으로 다음 형식으로 지정해야 합니다.

    Parent Compartment::Child Compartment1::Child Compartment2
    
  4. 특정 리소스만 내보내려면 메시지가 표시될 때 필요한 필터 값을 입력합니다.

    주: OCI 네트워킹 리소스 및 OCI 컴퓨트 리소스 익스포트에 대한 자세한 내용은 OCI 네트워킹 리소스 익스포트OCI 컴퓨트 리소스 익스포트를 참조하십시오.

  5. 성공적으로 완료되면 내보낸 리소스 데이터가 입력 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
    
  6. 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>.tfinstance_ssh_keys 변수 아래에 배치되고 소스 OCID는 instance_source_ocid 변수 아래에 배치됩니다.

작업 4.3: 생성된 .sh 파일 실행

  1. networkcompute 서비스 폴더에서 Terraform 가져오기 명령이 포함된 생성된 .sh 파일을 각각 실행합니다.

    주: OCI 네트워킹의 경우 다른 .sh 스크립트를 실행하기 전에 major_objects에 대해 .sh 스크립트를 실행해야 합니다. sh import_commands_network_major-objects.sh

  2. .sh 스크립트가 성공적으로 완료되면 Terraform 상태 파일이 생성되고 Terraform 계획이 최신으로 업데이트됩니다.

이 생성된 Terraform 코드는 OCI Resource Manager와 함께 사용하거나 추가 관리를 위해 조직 CI/CD 프로세스에서 활용할 수 있습니다.

새 리소스를 추가하거나 기존 리소스를 수정하려면 먼저 리소스를 CD3로 내보내고 내보낸 Excel 템플릿에서 필요한 변경 작업을 수행한 다음 /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties 파일에서 workflow_typecreate_resources로 수정하고 툴킷을 실행합니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.