주:

Oracle Cloud Infrastructure 리소스를 생성 및 익스포트하도록 Jenkins로 CD3 구성

소개

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

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

워크플로우

목표

필요 조건

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

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

    Deploy_To_OCI

  2. 조건 및 조항에 동의합니다. 생성할 workVM에 대한 네트워크, 컴파트먼트, VM 이름, 구성 등을 입력합니다.

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

  3. 하단의 적용 실행 섹션을 확인하고 생성을 누릅니다.

  4. 적용 작업이 성공하면 작업을 누르고 로그 끝으로 이동합니다.

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

    rmstack출력

    컨테이너에 로그인한 후 OCI 테넌시에 접속하여 OCI API를 실행합니다.

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

  1. cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/로 이동하여 tenancyconfig.properties 파일을 엽니다.

  2. Required parametersAuth Details Parameters 섹션에 필요한 구성 값을 추가합니다.

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

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

  4. 각 서비스에 대해 생성된 auto.tfvars 파일을 그룹화하려면 outdir_structure_file 매개변수를 기본값으로 둡니다.

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

  6. DevOps에 대한 고급 매개변수에서 use_oci_devops_git 매개변수로 yes를 선택합니다.

    그러면 생성된 Terraform 파일에 대한 OCI DevOps Git 저장소, 상태 파일에 대한 OCI Object Storage 버킷 및 DevOps 저장소의 변경사항에 대해 통지할 OCI 통지 토픽이 생성됩니다.

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

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

  9. 그런 다음 OCI에서 리소스를 생성하려면 작업 3을 따르거나 리소스를 익스포트하려면 작업 4를 따르십시오.

작업 3: OCI에서 리소스 생성

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

  1. 이 자습서에 대한 cd3quickstart.xlsx에서 미리 채워진 Excel 템플리트를 다운로드합니다. 환경에 따라 영역 및 컴파트먼트 값을 수정하고 컨테이너로 전환합니다.

  2. 컨테이너에서 /cd3user/tenancies/<prefix>/terraform_files/<region>/compute/variables_<region>.tf를 엽니다. instance_ssh_keys 변수에서 Excel 시트에 지정된 SSH 키에 대한 변수 이름(ssh_public_key)을 해당 값(키 콘텐츠)과 함께 추가합니다.

  3. instance_source_ocids 변수 아래에 소스 이미지 myimageocid에 대해 Excel 시트에 지정된 변수 이름을 포함하고 해당 OCID를 해당 값으로 지정합니다. 다음 스크린샷은 참조용입니다.

    ssh_key

    소스코드

  4. 다음 명령을 순서대로 실행하여 위의 로컬 변경사항을 DevOps Git 저장소와 동기화합니다.

    cd /cd3user/tenancies/<prefix>/terraform_files
    git status
    git add -A .
    git commit -m "msg"
    git push
    

작업 3.2: Jenkins에 로그인하고 setupoci 파이프라인을 실행합니다.

  1. Jenkins를 시작하고 컨테이너에서 다음 명령을 사용하여 액세스합니다.

    • Jenkins를 시작하려면 /usr/share/jenkins/jenkins.sh & 명령을 사용합니다.

    • Jenkins에 액세스하려면 이 URL https://<IP Address of the machine hosting docker container>:8443를 사용합니다.

  2. Jenkins에 로그인합니다. 대시보드에는 이름이 <prefix>인 폴더가 있습니다. 작업 중인 <prefix> 이름을 누릅니다. 해당하는 setupoci 파이프라인 및 terraform_files 폴더가 있습니다. setupoci 파이프라인매개변수를 사용하여 빌드를 누릅니다.

    주: Jenkins URL에 처음 액세스하는 경우 로그인 인증서를 설정합니다.

    excel_template

  3. Excel 템플리트 섹션에서 태스크 3.1에서 인출된 Excel 파일을 업로드합니다.

    excel_template

  4. 워크플로우에서 OCI에서 새 리소스 생성(Greenfield 워크플로우)을 선택합니다.

  5. MainOptions에서 ID, 네트워크컴퓨트를 선택합니다.

  6. SubOptions에서 그룹 추가/수정/삭제, 정책 추가/수정/삭제, 네트워크 생성, 인스턴스 추가/수정/삭제/부트 백업 정책을 선택합니다.

  7. 빌드를 누릅니다. setupoci 파이프라인 단계가 순서대로 실행됩니다.

작업 3.3: 각 서비스 계획에 대한 승인 제공

  1. 로그에 대한 ID 단계를 누르고 ID 적용 파이프라인 빌드에 대한 링크를 누릅니다. 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계 아래의 로그를 확인하여 생성된 ID 리소스를 확인합니다.

    테라폼파이프라인

  2. 마찬가지로, setupoci 파이프라인의 네트워크 단계에서 로그를 누른 다음 네트워크 적용 파이프라인 빌드에 대한 링크를 누릅니다. 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계의 로그를 확인하여 생성된 네트워크 리소스를 확인합니다.

  3. 컴퓨트 단계 로그를 누릅니다. 링크를 눌러 적용 파이프라인 빌드를 계산합니다.

    주: Terraform 파이프라인 계산이 실패했음을 알 수 있습니다. 이는 컴퓨트 리소스가 준비할 네트워크에 종속되기 때문입니다. 이 문제를 해결하려면 네트워크 적용 파이프라인이 성공한 후 수동으로 Terraform 컴퓨트 파이프라인을 트리거합니다. 다음 단계에서는 이를 실행하는 방법을 보여줍니다.

  4. 컴퓨트 적용 파이프라인에 대해 지금 빌드를 누릅니다. 파이프라인 단계 실행이 시작된 후 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계의 로그를 확인하여 생성된 컴퓨트 리소스를 확인합니다.

  5. 네트워크 생성을 실행하면 VCN에 아직 CD3 Excel 시트에 없는 규칙이 몇 개 생성됩니다. 해당 세부정보는 초기에 [서브넷] 탭에서 가져옵니다. Excel 파일에 동기화하려면 위와 동일한 Excel 시트를 사용하여 setupoci 파이프라인을 다시 빌드하고 워크플로우를 OCI에서 리소스 생성으로 설정하고 기본 옵션에서 네트워크를 선택한 다음 아래 하위 옵션을 선택합니다.

    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. 컴파트먼트 이름을 지정합니다. 빌드를 누르면 setupoci 파이프라인 단계가 실행됩니다.

  7. Excel 시트는 보안 규칙, 경로 규칙, DRG 경로 규칙 데이터로 채워집니다. 이러한 서비스에 대해 Terraform tfvars 파일이 생성됩니다.

  8. OCI에서 익스포트된 데이터를 포함하는 업데이트된 Excel 파일이 특정 setupoci 빌드의 아티팩트 빌드에 있습니다. Excel 파일은 /cd3user/tenancies/<prefix> 아래의 컨테이너에도 있습니다.

  9. 네트워크 스테이지 로그를 누르고 네트워크 적용 파이프라인 빌드에 대한 링크를 누릅니다. Terraform 계획에는 OCI에서 이러한 서비스를 추론하는 변경사항 없음이 표시되어야 하며 CD3가 동기화되어 있어야 합니다.

  10. 이렇게 해서 OCI의 리소스 생성 프로세스가 완료되었습니다. OCI 콘솔에서 생성된 리소스를 확인합니다.

작업 4: OCI에서 리소스 익스포트

작업 4.1: CD3-Blank-template.xlsx 파일 다운로드

내보내기 워크플로우의 경우 툴킷은 특정 서비스 시트의 기존 데이터를 덮어씁니다. 따라서 기본적으로 데이터가 없는 CD3-Blank-template.xlsx를 사용하는 것이 좋습니다.

CD3-Blank-template.xlsx에서 CD3 빈 템플리트를 다운로드합니다.

작업 4.2: Jenkins에 로그인

  1. Jenkins를 시작하고 컨테이너에서 다음 명령을 사용하여 액세스합니다.

    1. Jenkins를 시작하려면 /usr/share/jenkins/jenkins.sh & 명령을 사용합니다.

    2. Jenkins에 액세스하려면 이 URL https://<IP Address of the machine hosting docker container>:8443를 사용합니다.

  2. Jenkins에 로그인합니다.

    주: Jenkins URL에 처음 액세스하는 경우 로그인 인증서를 설정합니다.

    excel_template

작업 4.3: setupoci 파이프라인 실행

  1. Jenkins 대시보드에는 이름이 <prefix>인 폴더가 있습니다. 작업 중인 <prefix> 이름을 누릅니다. 해당하는 setupoci 파이프라인 및 terraform_files 폴더가 있습니다. setupoci 파이프라인매개변수를 사용하여 빌드를 누릅니다.

  2. Excel 템플리트 섹션에서 태스크 4.1에서 인출된 Excel 파일을 업로드합니다.

  3. 워크플로우에서 OCI에서 기존 리소스 익스포트(비Greenfield 워크플로우)를 선택합니다.

  4. MainOptions에서 ID 익스포트, 네트워크 익스포트컴퓨트 익스포트를 선택합니다.

  5. SubOptions에서 ID에 대해 Export Compartments/Groups/Policies, 네트워크에 대해 Export all Network Components, 컴퓨트에 대해 Export Instances (excludes instances launch by OKE)를 선택합니다.

    주: 필요한 경우 AdditionalFilters 아래에 세부정보를 추가하여 리소스를 필터링합니다.

  6. 빌드를 누릅니다. setupoci 파이프라인 단계는 각 서비스에 대해 순서대로 실행됩니다.

    excel_template

  7. 임포트 명령 실행 단계에서 로그를 확인합니다. 성공으로 표시되면 트리거된 각 Terraform 파이프라인에 계획 단계가 변경 없음으로 표시되어야 합니다.

    주: 계획에서 변경 사항을 찾은 경우 검토한 후 필요에 따라 적용합니다.

  8. OCI에서 익스포트된 데이터를 포함하는 업데이트된 Excel 파일이 특정 setupoci 빌드의 아티팩트 빌드에 있습니다. Excel 파일은 /cd3user/tenancies/<prefix> 아래의 컨테이너에도 있습니다.

확인

추가 학습 자원

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

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