주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Cloud Infrastructure 리소스를 생성 및 익스포트하도록 Jenkins로 CD3 구성
소개
Cloud Deployment Design Deliverable(CD3) 자동화 툴킷을 사용하면 Microsoft Excel 템플릿을 완전한 기능의 Terraform 모듈로 손쉽게 변환하여 Oracle Cloud Infrastructure(OCI) 리소스를 손쉽게 구축, 내보내기 및 관리할 수 있습니다.
또한 이 툴킷은 OCI DevOps Git 서비스 및 Jenkins 파이프라인을 사용하여 원활한 리소스 관리를 지원합니다.
목표
- 한 번의 클릭으로 CD3 컨테이너를 실행한 다음 Jenkins 파이프라인을 사용하여 OCI ID, 네트워크 및 컴퓨트 리소스를 생성, 익스포트합니다.
필요 조건
-
Oracle Cloud Infrastructure Identity and Access Management(OCI IAM) 정책을 통해 사용자 또는 인스턴스 주체가 툴킷을 사용하여 생성 또는 익스포트하는 데 필요한 서비스를 관리할 수 있습니다.
-
스택을 배치하는 사용자는 OCI Resource Manager 스택, 컴퓨트 인스턴스 및 네트워크 리소스를 실행할 수 있는 액세스 권한이 있어야 합니다.
작업 1: 툴킷 컨테이너 설정
-
Oracle Cloud에 배치를 눌러 CD3 WorkVM를 생성하는 OCI 리소스 관리자 스택을 실행합니다.
-
조건 및 조항에 동의합니다. 생성할 workVM에 대한 네트워크, 컴파트먼트, VM 이름, 구성 등을 입력합니다.
주: 보안 환경을 유지하려면 VM에 액세스할 특정 소스 CIDR 범위를 제공하십시오. 사용 안함
0.0.0.0/0
. -
하단의 적용 실행 섹션을 확인하고 생성을 누릅니다.
-
적용 작업이 성공하면 작업을 누르고 로그 끝으로 이동합니다.
툴킷 컨테이너에 로그인하기 위해 실행할 생성된 VM 및 명령에 대한 세부정보를 찾습니다. 다음 이미지에 표시된 샘플 출력입니다.
컨테이너에 로그인한 후 OCI 테넌시에 접속하여 OCI API를 실행합니다.
작업 2: 컨테이너를 OCI 테넌시에 접속
-
cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/
로 이동하여tenancyconfig.properties
파일을 엽니다. -
Required parameters 및 Auth Details Parameters 섹션에 필요한 구성 값을 추가합니다.
주: 이 자습서에서는 API 키 인증을 사용합니다.
auth_mechanism
를 기본값으로 유지합니다. -
OCI 콘솔의 사용자 설정에서 퍼블릭 키를 APIkeys에 업로드합니다. 개인 키를 컨테이너 안에 넣습니다. 필요한 구성 값을 복사하여
tenancyconfig.properties
파일의 해당 매개변수 아래에 붙여넣습니다. -
각 서비스에 대해 생성된
auto.tfvars
파일을 그룹화하려면outdir_structure_file
매개변수를 기본값으로 둡니다. -
IaC 도구의 경우 terraform 또는 tofu를 선택할 수 있습니다. 기본값은 terraform입니다. OpenTofu를 사용하려면 tofu를 지정합니다.
-
DevOps에 대한 고급 매개변수에서
use_oci_devops_git
매개변수로yes
를 선택합니다.그러면 생성된 Terraform 파일에 대한 OCI DevOps Git 저장소, 상태 파일에 대한 OCI Object Storage 버킷 및 DevOps 저장소의 변경사항에 대해 통지할 OCI 통지 토픽이 생성됩니다.
-
파일을 저장하고
createTenancyConfig.py
를 실행하여 환경을 초기화하고 CD3 사용을 시작합니다.python createTenancyConfig.py tenancyconfig.properties
-
출력을 확인합니다.
-
그런 다음 OCI에서 리소스를 생성하려면 작업 3을 따르거나 리소스를 익스포트하려면 작업 4를 따르십시오.
작업 3: OCI에서 리소스 생성
작업 3.1: Excel 및 변수 파일 준비
-
이 자습서에 대한 cd3quickstart.xlsx에서 미리 채워진 Excel 템플리트를 다운로드합니다. 환경에 따라 영역 및 컴파트먼트 값을 수정하고 컨테이너로 전환합니다.
-
컨테이너에서
/cd3user/tenancies/<prefix>/terraform_files/<region>/compute/variables_<region>.tf
를 엽니다.instance_ssh_keys
변수에서 Excel 시트에 지정된 SSH 키에 대한 변수 이름(ssh_public_key)을 해당 값(키 콘텐츠)과 함께 추가합니다. -
instance_source_ocids
변수 아래에 소스 이미지myimageocid
에 대해 Excel 시트에 지정된 변수 이름을 포함하고 해당 OCID를 해당 값으로 지정합니다. 다음 스크린샷은 참조용입니다. -
다음 명령을 순서대로 실행하여 위의 로컬 변경사항을 DevOps Git 저장소와 동기화합니다.
cd /cd3user/tenancies/<prefix>/terraform_files git status git add -A . git commit -m "msg" git push
작업 3.2: Jenkins에 로그인하고 setupoci 파이프라인을 실행합니다.
-
Jenkins를 시작하고 컨테이너에서 다음 명령을 사용하여 액세스합니다.
-
Jenkins를 시작하려면
/usr/share/jenkins/jenkins.sh &
명령을 사용합니다. -
Jenkins에 액세스하려면 이 URL
https://<IP Address of the machine hosting docker container>:8443
를 사용합니다.
-
-
Jenkins에 로그인합니다. 대시보드에는 이름이
<prefix>
인 폴더가 있습니다. 작업 중인<prefix>
이름을 누릅니다. 해당하는 setupoci 파이프라인 및terraform_files
폴더가 있습니다. setupoci 파이프라인 및 매개변수를 사용하여 빌드를 누릅니다.주: Jenkins URL에 처음 액세스하는 경우 로그인 인증서를 설정합니다.
-
Excel 템플리트 섹션에서 태스크 3.1에서 인출된 Excel 파일을 업로드합니다.
-
워크플로우에서 OCI에서 새 리소스 생성(Greenfield 워크플로우)을 선택합니다.
-
MainOptions에서 ID, 네트워크 및 컴퓨트를 선택합니다.
-
SubOptions에서 그룹 추가/수정/삭제, 정책 추가/수정/삭제, 네트워크 생성, 인스턴스 추가/수정/삭제/부트 백업 정책을 선택합니다.
-
빌드를 누릅니다. setupoci 파이프라인 단계가 순서대로 실행됩니다.
작업 3.3: 각 서비스 계획에 대한 승인 제공
-
로그에 대한 ID 단계를 누르고 ID 적용 파이프라인 빌드에 대한 링크를 누릅니다. 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계 아래의 로그를 확인하여 생성된 ID 리소스를 확인합니다.
-
마찬가지로, setupoci 파이프라인의 네트워크 단계에서 로그를 누른 다음 네트워크 적용 파이프라인 빌드에 대한 링크를 누릅니다. 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계의 로그를 확인하여 생성된 네트워크 리소스를 확인합니다.
-
컴퓨트 단계 로그를 누릅니다. 링크를 눌러 적용 파이프라인 빌드를 계산합니다.
주: Terraform 파이프라인 계산이 실패했음을 알 수 있습니다. 이는 컴퓨트 리소스가 준비할 네트워크에 종속되기 때문입니다. 이 문제를 해결하려면 네트워크 적용 파이프라인이 성공한 후 수동으로 Terraform 컴퓨트 파이프라인을 트리거합니다. 다음 단계에서는 이를 실행하는 방법을 보여줍니다.
-
컴퓨트 적용 파이프라인에 대해 지금 빌드를 누릅니다. 파이프라인 단계 실행이 시작된 후 승인 가져오기 단계에서 로그를 누르고 진행을 선택합니다. 적용 단계의 로그를 확인하여 생성된 컴퓨트 리소스를 확인합니다.
-
네트워크 생성을 실행하면 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)
-
컴파트먼트 이름을 지정합니다. 빌드를 누르면 setupoci 파이프라인 단계가 실행됩니다.
-
Excel 시트는 보안 규칙, 경로 규칙, DRG 경로 규칙 데이터로 채워집니다. 이러한 서비스에 대해 Terraform
tfvars
파일이 생성됩니다. -
OCI에서 익스포트된 데이터를 포함하는 업데이트된 Excel 파일이 특정 setupoci 빌드의 아티팩트 빌드에 있습니다. Excel 파일은
/cd3user/tenancies/<prefix>
아래의 컨테이너에도 있습니다. -
네트워크 스테이지 로그를 누르고 네트워크 적용 파이프라인 빌드에 대한 링크를 누릅니다. Terraform 계획에는 OCI에서 이러한 서비스를 추론하는 변경사항 없음이 표시되어야 하며 CD3가 동기화되어 있어야 합니다.
-
이렇게 해서 OCI의 리소스 생성 프로세스가 완료되었습니다. OCI 콘솔에서 생성된 리소스를 확인합니다.
작업 4: OCI에서 리소스 익스포트
작업 4.1: CD3-Blank-template.xlsx
파일 다운로드
내보내기 워크플로우의 경우 툴킷은 특정 서비스 시트의 기존 데이터를 덮어씁니다. 따라서 기본적으로 데이터가 없는 CD3-Blank-template.xlsx
를 사용하는 것이 좋습니다.
CD3-Blank-template.xlsx에서 CD3 빈 템플리트를 다운로드합니다.
작업 4.2: Jenkins에 로그인
-
Jenkins를 시작하고 컨테이너에서 다음 명령을 사용하여 액세스합니다.
-
Jenkins를 시작하려면
/usr/share/jenkins/jenkins.sh &
명령을 사용합니다. -
Jenkins에 액세스하려면 이 URL
https://<IP Address of the machine hosting docker container>:8443
를 사용합니다.
-
-
Jenkins에 로그인합니다.
주: Jenkins URL에 처음 액세스하는 경우 로그인 인증서를 설정합니다.
작업 4.3: setupoci 파이프라인 실행
-
Jenkins 대시보드에는 이름이
<prefix>
인 폴더가 있습니다. 작업 중인<prefix>
이름을 누릅니다. 해당하는 setupoci 파이프라인 및terraform_files
폴더가 있습니다. setupoci 파이프라인 및 매개변수를 사용하여 빌드를 누릅니다. -
Excel 템플리트 섹션에서 태스크 4.1에서 인출된 Excel 파일을 업로드합니다.
-
워크플로우에서 OCI에서 기존 리소스 익스포트(비Greenfield 워크플로우)를 선택합니다.
-
MainOptions에서 ID 익스포트, 네트워크 익스포트 및 컴퓨트 익스포트를 선택합니다.
-
SubOptions에서 ID에 대해 Export Compartments/Groups/Policies, 네트워크에 대해 Export all Network Components, 컴퓨트에 대해 Export Instances (excludes instances launch by OKE)를 선택합니다.
주: 필요한 경우 AdditionalFilters 아래에 세부정보를 추가하여 리소스를 필터링합니다.
-
빌드를 누릅니다. setupoci 파이프라인 단계는 각 서비스에 대해 순서대로 실행됩니다.
-
임포트 명령 실행 단계에서 로그를 확인합니다. 성공으로 표시되면 트리거된 각 Terraform 파이프라인에 계획 단계가 변경 없음으로 표시되어야 합니다.
주: 계획에서 변경 사항을 찾은 경우 검토한 후 필요에 따라 적용합니다.
-
OCI에서 익스포트된 데이터를 포함하는 업데이트된 Excel 파일이 특정 setupoci 빌드의 아티팩트 빌드에 있습니다. Excel 파일은
/cd3user/tenancies/<prefix>
아래의 컨테이너에도 있습니다.
관련 링크
확인
- Authors - Lasya Vadavalli(Senior Cloud Engineer), Dipesh Kumar Rathod(Master Principal Cloud Architect, Infrastructure)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Configure CD3 with Jenkins to Create and Export Oracle Cloud Infrastructure Resources
F95147-04
October 2024