온라인으로 검색하면 Azure DevOps에 대한 다양한 블로그 포스트, 문서 및 튜토리얼을 찾을 수 있습니다. 이 모든 항목은 유용한 자료입니다. 그러나 실제 시나리오를 안내해주는 것은 드물습니다. 많은 자료들은 보안 측면을 넘기거나, 비밀번호를 평문으로 남겨두거나, 아무런 기능이 없는 최종 제품을 제공하기도 합니다. 그런 상황을 바꿔봅시다.
이 기사/튜토리얼에서는 실제로 인프라를 자동화하는 Azure DevOps 릴리스 파이프라인을 구축하는 방법을 처음부터 끝까지 배울 것입니다. 더 구체적으로는 Azure DevOps를 사용하여 Azure 가상 머신을 프로비저닝하는 지속적인 배포 파이프라인을 만드는 방법을 배울 것입니다.
이 프로젝트의 끝에는 완전히 작동하는 Azure 파이프라인이 있을 것입니다. 단일 GitHub 저장소 커밋으로부터 다음을 수행할 것입니다:
- 임시 Azure 리소스 그룹 생성
- ARM 템플릿을 통해 Azure VM 프로비저닝
- CI/CD 파이프라인에서 해당 ARM 템플릿 설정
- 템플릿 변경 시 템플릿 유효성 검사 테스트 시작
- ARM 템플릿을 Azure에 배포
- 배포된 인프라 테스트
- 모든 Azure 리소스 제거
바로 시작해봅시다!
프로젝트 개요
이 프로젝트는 여섯 가지 주요 섹션으로 분할됩니다. 다음과 같습니다:
Azure 리소스 준비
이 섹션에서는 Azure에서 필요한 모든 사전 준비 리소스를 설정하는 방법을 배우게 될 것입니다. 여기서 다음을 수행합니다:
- 파이프라인에서 다양한 작업을 위해 Azure 서비스 주체를 생성합니다.
- 파이프라인에서 사용할 Azure Key Vault에 비밀을 설정합니다.
- ARM 배포 및 파이프라인 사용을 위한 적절한 액세스 정책을 설정합니다.
Azure DevOps 준비
모든 Azure 리소스를 설정한 후, 파이프라인을 위해 Azure DevOps를 준비합니다. 이 섹션에서는 다음을 수행합니다:
- Azure DevOps 조직에 Pester Test Runner 빌드 작업을 설치합니다.
- 필요한 리소스 액세스를 제공하기 위해 서비스 연결을 생성합니다.
- Azure Key Vault 비밀에 액세스하기 위해 키 보트를 연결하는 Azure DevOps 변수 그룹을 생성합니다.
스크립트/템플릿 개요
이 프로젝트에는 서버를 구축하기 위한 ARM 템플릿과 Pester 테스트를 포함한 다양한 아티팩트가 있습니다. 이 섹션에서는 템플릿이 어떤 것을 프로비저닝하고 Pester가 파이프라인에서 어떤 것을 테스트하는지 간단히 설명하겠습니다.
파이프라인 생성
이 섹션에서 실질적인 작업을 시작합니다. 실제 파이프라인을 설정하기 시작할 것입니다. 여기에서는 단일 YAML 파일을 통해 이 전체 오케스트레이션을 설정하는 방법을 배우게 됩니다.
다중 단계 파이프라인 UI 경험을 사용하여 파이프라인을 구축할 것입니다. 글을 쓰는 시점에서 이 기능은 미리보기 상태입니다.
파이프라인 데모
파이프라인이 구축되면 실행되는 모습을 보아야 합니다! 이 섹션에서는 파이프라인을 트리거하고 마법이 일어나는 것을 간단히 관찰하는 방법을 배우게 됩니다.
정리
마지막으로, 이것은 단지 데모이므로 튜토리얼 중에 구축된 모든 것을 해체하는 스크립트에 액세스할 수 있게 될 것입니다.
많이 들리나요? 그렇습니다! 하지만 걱정하지 마세요. 한 번에 한 작업을 공격하는 방법을 단계별로 배우게 될 것입니다.
이 파이프라인을 구축하는 데 사용된 모든 Azure CLI 명령의 스크립트를 원하신다면 ServerAutomationDemo GitHub 저장소의 demo.ps1에서 찾을 수 있습니다.
전제조건
당신은 많은 것을 배우게 될 것이지만, 몇 가지를 준비해야 할 것으로 예상됩니다. 따라오기를 계획한다면 다음 사항을 확인하십시오:
- Azure DevOps 조직 – 이를 수행하는 방법에 대한 지침은 Microsoft QuickStart 가이드를 확인하십시오. 이 문서에서는 ServerAutomationDemo라는 프로젝트를 사용합니다.
- A GitHub repo – In this article, you’ll be learning from a GitHub repo called ServerAutomationDemo. Sorry, we’re not using Azure repos in this article.
- A GitHub personal access token – Be sure to create the token with the permissions of admin:repo_hook, all repo and all user options.

- Cloud Shell 또는 PowerShell 6+ (로컬에서 실행하는 경우) – 예제는 Windows PowerShell에서 작동할 수 있지만 테스트되지는 않았습니다. 모든 예제는 PowerShell 콘솔을 통해 로컬로 수행되지만 Cloud Shell도 작동합니다. 파이프라인을 자동화할 것입니다.
- Azure CLI 설치 (로컬에서 실행하는 경우) – 이 문서에서 Azure CLI를 사용하여 작업을 수행하는 방법을 배우게 될 것입니다. 그러나 동일한 절차는 Azure Portal, PowerShell 또는 Azure SDK를 통해서도 수행할 수 있습니다.
경고: 수행할 작업은 Azure 크레딧이 없는 경우 실제 비용이 발생합니다. Azure에서 가장 비용이 많이 드는 리소스는 임시로만 사용되는 VM입니다.
시작하기 전에
이 자습서에서 많은 구성 작업을 수행하게 될 것입니다. 시작하기 전에 다음 사항을 준비해 주십시오.
- 리소스가 배포될 Azure 구독의 이름 – 예제에서는 Adam the Automator를 사용합니다.
- 구독 ID
- Azure AD 테넌트 ID
- DevOps 조직 이름 – 예시에서는 adbertram을 사용합니다.
- 리소스를 배치할 지역 – 예시에서는 eastus를 사용합니다.
- 임시 키 보관소를 만들 Azure 리소스 그룹의 이름 – 예시에서는 ServerAutomationDemo를 사용합니다.
- A password to assign to the local administrator account on a deployed VM – the examples will use “I like azure.”.
- GitHub 리포지토리 URL – 예시에서는 https://github.com/adbertram/ServerAutomationDemo를 사용합니다.
Azure CLI로 로그인
이 문서에서는 Azure CLI를 많이 사용해야 합니다. Azure PowerShell cmdlet을 좋아하지만, 현재 Azure CLI는 더 많은 DevOps 작업을 수행할 수 있습니다.
첫 번째 작업은 PowerShell 6+ 콘솔에 접속하는 것입니다. 콘솔에 접속한 후에는 az login
명령을 사용하여 Azure에 인증합니다. 이 명령은 브라우저 창을 열고 계정을 입력하도록 요청합니다.
인증이 완료되면 구독을 기본값으로 설정하십시오. 기본값으로 설정하면 매번 지정할 필요가 없습니다.
Azure 리소스 준비하기
Azure CLI로 로그인한 후에는 본업에 들어가는 시간입니다. Azure 파이프라인에는 다양한 종속성과 다양한 조작 가능한 항목이 있습니다. 이 첫 번째 섹션에서는 일부 설정을 수행하고 파이프라인을 위한 환경을 준비하는 방법을 배우게 될 것입니다.
Azure CLI DevOps 확장 기능 설치
Azure CLI로 다양한 Azure DevOps 구성 요소를 빌드하기 위한 방법이 필요합니다. 기본적으로 이 기능이 포함되어 있지 않습니다. Azure CLI로 Azure DevOps를 관리하려면 DevOps 확장 기능을 설치해야 합니다.
다행히도, 아래에 나와 있는 것처럼 확장 기능을 설치하는 것은 한 줄로 가능합니다.
확장 기능이 설치되면 조직을 기본으로 설정하여 반복해서 지정할 필요가 없도록 설정하세요.
리소스 그룹 생성
파이프라인은 임시 리소스 그룹을 생성할 것이지만, 이 데모에서 구축되는 모든 리소스를 위해 리소스 그룹을 하나 생성해야 합니다. 특히, 이 리소스 그룹은 Azure Key Vault를 생성할 위치입니다.
Azure 서비스 주체 생성
다음 작업은 Azure 서비스 주체를 만드는 것입니다. Azure Key Vault에 인증하기 위해 Azure 서비스 주체가 필요합니다. 또한 이 서비스 주체를 사용하여 서비스 연결에 인증할 것입니다. 아래에 표시된 대로 키 보관함과 이후의 ARM 배포를 위한 서비스 주체를 생성하세요.
이 시점에서
$sp.appId
의 값을 어딘가에 저장하는 것이 좋습니다. 나중에 파이프라인을 빌드할 때 이 값이 필요합니다!
예제에서는 PowerShell 명령이 있습니다. 예를 들어
ConvertFrom-Json
입니다. Azure CLI는 JSON 문자열만 반환하므로 PowerShell 개체로 변환하면 속성에 더 쉽게 참조할 수 있습니다.
키 보관함 빌드
이 튜토리얼의 파이프라인은 몇 가지 비밀번호를 참조해야 합니다. 암호를 평문으로 저장하는 대신 올바른 방식으로 처리해 보겠습니다. 모든 민감한 정보는 Azure Key Vault에 저장됩니다.
키 보관함을 생성하려면 다음과 같이 az keyvault create
명령을 사용하세요. 이 명령은 이전에 생성한 리소스 그룹에 키 보관함을 생성합니다. 또한 enabled-for-template-deployment
스위치에 주목하세요. 이는 향후 ARM 배포가 키 보관함에 액세스할 수 있도록 키 보관함 액세스 정책을 변경합니다.

키 보관함 비밀 생성
키 보관함을 만든 후, 비밀을 생성하는 시간입니다. 이 데모에서는 ServerAutomationDemo-AppPw와 StandardVmAdminPassword라는 두 개의 비밀을 생성합니다. AppPw 암호는 서비스 주체의 암호입니다. VM 암호는 배포된 VM의 로컬 관리자 계정에 할당됩니다.
이 예제에서 이전에 정의된 PowerShell 변수를 사용하고 있음에 유의하세요. 여기에서는 이전에 얻은 서비스 주체 암호인 (
$sp.password
)를 제공합니다.
파이프라인이 키 보관함에 액세스할 수 있도록 허용하기
다음으로, 파이프라인은 키 보관함에 액세스할 수 있는 권한이 필요합니다. 키 보관함 액세스 정책을 약간 완화하세요. 키 보관함 비밀을 관리하기 위해 get 및 list 권한이 있는 서비스 주체를 제공하세요.
Azure DevOps 준비하기
Azure 리소스 준비 작업이 모두 완료되었습니다. 이제 Azure DevOps에서 일부 준비 작업을 수행할 시간입니다.
Pester 확장 설치하기
첫 번째 수행할 작업은 PesterRunner Azure DevOps 확장을 설치하는 것입니다. 파이프라인은 VM ARM 배포가 성공적인지 확인하기 위해 두 개의 Pester 테스트를 실행할 예정입니다. Pester 테스트를 실행하는 가장 쉬운 방법 중 하나는 PesterRunner 확장을 사용하는 것입니다.
다음 명령을 사용하여 확장을 설치하세요.
Azure DevOps 프로젝트 생성하기
지금은 프로젝트를 만드는 시간입니다. Azure DevOps 파이프라인을 만드는 것은 Azure CLI로 쉽습니다. 아래 명령을 실행하여 프로젝트를 생성하고 기본값으로 설정하십시오.
서비스 연결 생성
파이프라인은 ARM과 GitHub 저장소에 인증해야합니다. 이를 위해 두 개의 서비스 연결을 생성해야합니다.
먼저, ARM 서비스 엔드포인트를 만드세요. 아래 명령은 서비스 주체 비밀번호를 요청합니다. 먼저 콘솔에서 비밀번호를 표시하고 클립 보드에 복사하세요.
구독 ID, 테넌트 ID를 입력하고 구독 이름을 바꿔야합니다.
다음으로, GitHub에 대한 서비스 연결을 만드세요. 파이프라인은 Git 커밋을 통해 트리거될 것이므로 저장소를 읽을 수 있어야합니다.
이 시점에서 GitHub 개인 액세스 토큰이 유용합니다. 여기에도 서비스 주체 비밀번호를 다시 붙여 넣어야합니다. 두 서비스 연결에 동일한 서비스 주체를 사용하고 있습니다.
변수 그룹 생성
파이프라인은 두 개의 비밀 키반을 참조합니다. 이를 안전하게 수행하기 위해 변수 그룹을 생성하고 키반에 연결해야 합니다.
먼저 아래와 같이 변수 그룹을 생성하세요.
foo=bar
변수에 주목하세요. 이 변수는 사용되지 않지만 변수 그룹을 생성하기 위해 하나의 변수가 필요합니다.
변수 그룹을 키반에 연결하기
이 시점에서, Azure CLI는 키반을 변수 그룹에 연결하는 방법이 없으므로 Azure DevOps 포털로 이동해야 합니다.
Azure DevOps 프로젝트로 이동하여 라이브러리를 클릭하세요. 아래 그림과 같이 ServerAutomationDemo 변수 그룹이 표시됩니다. ServerAutomationDemo 변수 그룹을 클릭하세요.

변수 그룹에 들어가면 Azure 키반에서 비밀을 변수로 링크를 클릭하세요. 이렇게 하면 모든 변수가 삭제될 것임을 경고받고 확인을 클릭하세요. 이 작업은 foo 변수가 임시로 생성된 것이므로 괜찮습니다.

확인된 후, ARM 서비스 연결과 앞서 생성한 ServerAutomationDemo-KV 키반을 선택하고, 추가를 클릭하세요.

이제 아래 그림과 같이 이전에 생성한 두 개의 비밀을 확인하고, 확인과 저장을 클릭하여 변경 사항을 저장하세요.

프로젝트 파일 개요
이렇게까지 왔다면, 축하드립니다! 이제 파이프라인 구축을 시작할 준비가 되었습니다. 하지만 기다리세요… 더 있습니다!
실제 세계에서 Azure 파이프라인을 구축하기 위해 이 튜토리얼은 “단위” 및 “인수” 테스트가 있는 파이프라인을 구축합니다. 이렇게 하면 튜토리얼이 더 흥미로워지지만, 무슨 일이 일어나고 있는지 몇 가지 추가 설명이 필요합니다.
이 튜토리얼의 GitHub 저장소에서는 아래와 같은 몇 가지 파일을 찾을 수 있습니다. 이제 이 저장소를 복제하거나 파일을 사용하여 직접 빌드할 수 있는 좋은 시기입니다.

- azure-pipelines.yml – 최종 YAML 파이프라인
- connect-azure.ps1 – Azure 구독에 인증하기 위한 PowerShell 스크립트
- server.infrastructure.tests.ps1 – VM 구성이 올바른지 확인하기 위한 간단한 Pester 테스트
- server.json – VM을 프로비저닝하기 위한 Azure ARM 템플릿
- server.parameters.json – ARM 템플릿에 매개변수 값을 제공하는 Azure ARM 매개변수 템플릿
server.parameters.json 파일에서 구독 ID와 키 보관소 이름을 교체해야 합니다.
- server.templates.tests.ps1 – ARM 템플릿이 유효한지 확인하기 위한 Pester “단위” 테스트
이 파일들이 어떻게 파이프라인에 맞게 연결되는지 곧 알게 될 것입니다.
파이프라인 생성하기
나의 GitHub 리포지토리를 클론하거나 자체적으로 설정한 후, 파이프라인을 생성할 시간입니다! 이를 위해 az pipelines create
명령을 실행하세요. 아래 명령은 주어진 GitHub 리포지토리를 트리거로 사용하여 ServerAutomationDemo라는 파이프라인을 생성합니다. 이는 master 브랜치를 확인하고 이전에 빌드한 서비스 연결을 사용할 것입니다.
GitHub 리포지토리에 azure-pipelines.yml 파일이 있는지 여부에 따라 아래와 비슷한 피드백을 받을 수도 있고, 그렇지 않을 수도 있습니다. 어떤 경우에도 콘솔은 비슷하게 보일 것입니다. GitHub 개인 액세스 토큰을 준비해 두세요!

YAML 파이프라인 검토
이 시점에서 파이프라인을 실행할 준비가 되었지만, 먼저 YAML 파이프라인을 이해하는 것이 중요합니다. azure-pipelines.yml 파일을 살펴보세요. 이 파일은 다중 단계 YAML 파이프라인 기능을 사용할 때의 파이프라인입니다.
이 YAML 파이프라인을 구성하는 다양한 구성 요소를 살펴보겠습니다.
트리거
자동으로 실행되는 CI 파이프라인을 구축하기 때문에 트리거가 필요합니다. 아래 트리거는 Git의 마스터 브랜치에서 커밋이 감지되면 파이프라인을 실행하도록 지시합니다.
또한 paths
섹션에 주목하세요. CI 빌드에서 특정 파일이나 디렉토리를 명시적으로 포함하거나 제외하지 않으면, 기본적으로 어떤 파일이 커밋되더라도 파이프라인이 실행됩니다. 이 프로젝트는 ARM 템플릿을 중심으로 구축되었으므로, 예를 들어 Pester 테스트를 조정한 경우에는 파이프라인을 실행하지 않아야 합니다.
풀
모든 빌드는 에이전트를 필요로 합니다. 각 빌드 에이전트는 가상 머신에서 실행되어야 합니다. 이 경우 VM은 ubuntu-latest
VM 이미지를 사용합니다. 이 이미지는 빌드가 처음 생성될 때 정의된 기본 이미지입니다. 이 파이프라인의 “단순함”으로 인해 변경되지 않았습니다.
변수
다음으로, 모든 변수와 변수 그룹이 있습니다. 이 파이프라인의 다양한 작업은 Azure 구독 ID, 테넌트 ID, 서비스 프린시펄의 애플리케이션 ID 등과 같은 값을 읽어야 합니다. 각 작업에서 정적 값들을 복제하는 대신, 이들은 변수로 정의되어 있습니다.
group
요소에도 주목하세요. 이 요소는 이전에 만든 변수 그룹을 참조합니다. 이 때 subscription_id
와 tenant_id
를 교체해야 합니다.
Azure 서비스 프린시펄 섹션에서 $sp.appId
의 값을 어딘가에 저장하라는 알림을 받았던 기억이 나시나요? 여기서 그 값을 필요로 할 것입니다. 서비스 프린시펄 애플리케이션 ID의 값을 아래에 표시된 대로 application_id
에 할당하세요.
azure_resource_group_name 변수의 값을 주목하세요. 해당 값 내에서
$(Build.BuildId)
를 볼 수 있습니다. 이는 현재 작업의 빌드 ID를 나타내는 시스템 변수입니다. 이 문맥에서는 일시적으로 생성되는 리소스 그룹이 고유함을 보장하기 위해 사용됩니다.
PowerShell 준비 작업
다음 작업 집합은 PowerShell 코드를 호출합니다. 이 파이프라인 예제는 테스트 목적으로 일시적인 리소스 그룹을 생성하고 제거하기 위해 PowerShell을 사용합니다. 이 배포 작업에서 PowerShell 코드를 호출하는 두 가지 예제를 볼 수 있습니다.
첫 번째 작업은 GitHub 리포지토리에 있는 connect-azure.ps1이라는 스크립트를 호출합니다. 이 작업은 Azure PowerShell 명령이 실행될 수 있도록 Azure 구독에 대한 인증을 수행합니다.
이 Azure PowerShell 연결 작업은 스크립트를 호출하고 키 보관소 비밀 값 (ServerAutomationDemo-AppPw
) 및 파이프라인 변수 subscription_id
, application_id
, tenant_id
를 전달합니다.
두 번째 작업은 PowerShell 코드 inline을 실행합니다. 즉, 스크립트가 이미 존재하지 않고 파이프라인 YAML 자체에서 azure_resource_group_name
파이프라인 변수의 값을 사용하여 PowerShell 코드를 정의합니다.
Pester 템플릿 테스트
다음은 첫 번째 Pester 테스트입니다. 이와 같은 CI/CD 파이프라인에서는 몇 가지 다른 레이어의 테스트가 중요합니다. 소프트웨어 프로젝트를 위한 파이프라인을 작성하는 경우 다양한 단위 테스트를 만들 수 있습니다.
이 예제 파이프라인은 단일 ARM VM 배포를 기반으로 구축되었으므로 첫 번째 “단위” 테스트는 JSON 템플릿의 유효성을 테스트하는 것입니다. server.templates.tests.ps1 파일 안에는 ARM 템플릿 파일 자체에 여러 가지 테스트를 추가할 수 있습니다.
아래에서 파이프라인은 다양한 시스템 변수를 사용하고 있음을 알 수 있습니다. 이러한 변수는 빌드 에이전트에 도달한 파일의 위치를 참조합니다.
PesterRunner 작업은 테스트 결과를 XML 파일로 보내고, 이 파일은 나중에 파이프라인에서 읽힙니다.
ARM VM 배포
이제 ARM 배포에 도달했습니다. 전체 파이프라인이 VM을 배포할 수 있는 능력을 기반으로 구축되었으므로 이 작업은 중요합니다! 이 작업은 ARM 템플릿을 배포하고 이를 가능하게 하는 데 필요한 모든 속성을 제공합니다.
deploymentOutputs: arm_output
속성을 참고하세요. 다음 단계에서는 배포된 VM에 연결해야 합니다. 이 VM의 DNS 이름 또는 IP 주소를 얻는 좋은 방법은 ARM 배포를 통해 반환하는 것입니다. deploymentOutputs
옵션은 다른 작업에서 참조할 수 있는 파이프라인 변수를 생성합니다.
Pester “인수” 테스트
VM이 배포되면 “통합” 또는 “인수” 테스트를 통해 제대로 배포되었는지 확인해야 합니다. 이 PesterRunner 작업은 Pester를 호출하고 VM이 성공적으로 배포되었는지 확인하기 위해 다른 인프라 관련 테스트 세트를 실행합니다.
ArmDeploymentJsonOutput
매개변수를 통해 ARM 배포의 출력 값을 전달하는 것에 유의하십시오. Pester 테스트 스크립트 파일에는 값이 포함된 매개변수가 정의되어 있으며 VM의 DNS 호스트 이름을 읽습니다.
아래에서는 server.infrastructure.tests.ps1 PowerShell 스크립트가 어떻게 보이는지 확인할 수 있습니다. VM의 DNS 호스트 이름을 읽어 간단한 포트 열림 확인을 실행합니다.
“Acceptance” 테스트 정리
파이프라인이 인프라를 배포한 유일한 이유는 ARM 템플릿의 유효성을 테스트하기 위함입니다. 이 인프라는 일시적인 것이므로 정리가 필요합니다. 마지막 PowerShell 작업에서는 파이프라인이 이전에 생성한 리소스 그룹과 그 안의 모든 항목을 제거합니다.
Pester 테스트 결과 발행
마지막으로, 마지막 일련의 작업에 도달했습니다. Azure 파이프라인에는 테스트 결과 발행이라는 작업이 있습니다. 이 작업은 빌드 에이전트에서 XML 파일을 읽고 Azure DevOps에서 테스트 결과를 표시합니다. 이는 실행된 모든 테스트의 결과를 쉽게 확인할 수 있는 유용한 방법입니다.

Azure DevOps 파이프라인 사용
마지막으로, 파이프라인을 실행하고 작동 방식을 확인할 준비가 되었습니다. Azure DevOps 웹 UI에서 ServerAutomationDemo 프로젝트에 있는지 확인하십시오. 여기에 있으면 Pipelines를 클릭하고 ServerAutomationDemo 파이프라인이 표시됩니다.
파이프라인을 실행하는 한 가지 방법은 아래에 표시된 것처럼 가장 오른쪽에 있는 세 개의 점을 클릭한 다음 파이프라인 실행을 클릭하는 것입니다. 이렇게 하면 자동화가 시작됩니다.

파이프라인은 따라 지시된대로 각 작업을 실행하고 이를 따라 이루어진 작업마다 모두 녹색 확인 표시가 표시됩니다.

정리하기
파이프라인을 만지작거리고 여기에서 수행한 모든 작업을 정리해야합니다. 결국, 이것은 튜토리얼이었을 뿐이며 제작 작업은 아니었습니다!
아래에는이 문서에서 작성한 모든 것을 정리하는 몇 가지 명령이 나와 있습니다. 이 코드는 서비스 주체, Azure AD 애플리케이션, 리소스 그룹 및 그 안의 모든 항목 및 Azure DevOps 프로젝트를 제거합니다.
요약
이 튜토리얼은 실제 Azure DevOps 인프라 자동화 파이프라인 구축을 경험하게하기 위한 것입니다. 이와 같은 파이프라인을 구축하는 무수한 다른 방법이 있지만,이 튜토리얼에서 배운 기술은 여러 가지 다른 구성을 통해 여러분을 도와줄 것입니다.
자동화를 더 많이 시작하고 더 많은 작업을 수행하십시오!