티스토리 뷰

<참조> https://azuredevopslabs.com/labs/azuredevops/yaml/

 

 

 

 

   이번 글에서는 Azure DevOps에서 YAML을 사용하여 CI/CD 파이프라인을 구성하는 방법에 대해 살펴 보고자 한다. 

 

 

 

 

 

개요

많은 팀이 YAML(Yet Another Markup Language)을 사용하여 빌드 및 릴리스 파이프 라인을 정의하는 것을 선호한다. 이를 통해 비주얼 디자이너를 사용하는 것과 동일한 파이프라인 기능에 액세스 할 수 있지만 다른 소스 파일처럼 관리 가능한 마크 업 파일을 사용할 수 있다. 단순히 소스 파일을 리포지토리의 루트에 추가하는 것만으로 YAML 빌드 정의를 프로젝트에 추가 할 수 있다. 또한 Azure DevOps는 인기있는 프로젝트 유형에 대한 기본 템플릿을 제공하며 YAML 디자이너를 제공하여 빌드 및 릴리스 태스크 정의 프로세스를 단순화 한다.

 

 

 

 

 

 

 

 

선행 조건

 

  • 이 랩을 진행하려면 선행 지침에서 과제1을 완료해야 한다.

 

 

다음 이미지는이 랩에서 설명한 모든 단계를 안내합니다.

 

 

 

 

 

 

실습 1: Azure DevOps에서 YAML을 사용하여 코드로 CI/CD 파이프라인 구성하기

 

이 랩을 진행하려면 선행 지침에서 과제1을 완료해야 한다.

 

 

과제 1: Azure 리소스 생성하기

1. 이 랩에서는 Parts Unlimited 프로젝트를 Azure 앱 서비스에 배포해야 한다. 이렇게하려면 필요한 인프라를 가동시켜야 한다. https://portal.azure.com에서 Azure 계정에 로그인 한다.

 

 

2. Create a resource를 클릭하여 “web sql”를 검색한다.

 

3. Microsoft에서 퍼블리시한  Web App + SQL 옵션을 선택 한다

 

4. Create를 클릭한다.

 

5. 앱 서비스에 대한 고유한 이름을 입력한다. “pul-yaml-zerobig”과 같이 이름을 통합하는 것이 가장 쉬운 방법 일 수 있다. “partsunlimited”라는 리소스 그룹을 생성하려면 Create new 옵션을 선택한다.

 

6. SQL Database를 구성하는 옵션을 선택한다. Create a new database를 클릭하고 이름에 “partsunlimited”를 입력한다.

 

7.  Target server를 구성하는 옵션을 선택하고 Create a new server를 클릭한다. "pul-yaml-zerobig"과 같이 글로벌하게 고유한 서버 이름을 입력하고 관리자 자격 증명을 제공한다. 서버 설정을 확인하려면 Select를 클릭한다. 

 

8. Select를 클릭하여 데이터베이스 설정을 확인한다. 

 

9. Create를 클릭하여 리소스를 생성한다. 앱 서비스 플랜이 아직 없는 경우 먼저 앱 서비스 플랜을 만들어야 할 수도 있다.

 

10. 리소스를 프로비저닝하는 데 몇 분정도 소요될 것이므로, 다음 과제로 넘어갈 수 있다. 

 

 

 

과제 2: Parts Unlimited 프로젝트 구성하기

1. 새 브라우저 탭에서 Azure DevOps의 팀 프로젝트로 이동한다. YAML 파이프라인을 살펴보기 전에 기존 빌드 파이프라인을 비활성화 할 수 있다.

 

 

2. Pipelines로 이동한다. 

 

3. 기존 PartsUnlimitedE2E 파이프라인을 선택한다. 

 

4. 드롭 다운에서 Pause pipeline을 선택다.

 

 

 

과제 3: YAML 빌드 정의 추가하기

1. Pipelines 허브로 이동한다.

 

 

2. New pipeline을 클릭한다. 마법사를 사용하여 프로젝트를 기반으로 YAML 정의를 자동으로 생성하도록 할 것이다.

 

 

3. Azure Repos Git을 소스 호스팅 플랫폼으로 선택한다. 지원되는 다른 것들도 주목해본다.

 

 

4. PartsUnlimited 리포지토리를 선택한다. 

 

 

5. 파이프라인의 시작점으로 ASP.NET 템플릿을 선택한다.

 

 

6. YAML 정의의 내용을 검토한다. 이 파일은 리포지토리 루트에 “azure-pipelines.yml”이라는 새 파일로 저장되며 일반적인 ASP.NET 솔루션을 빌드하고 테스트하는 데 필요한 모든 것을 포함한다. 필요에 따라 빌드를 사용자 정의 할 수도 있다. 이 경우 pool을 업데이트하여 빌드가 Visual Studio 2017 빌드 VM을 사용해야하도록 지정한다. 동일한 두 칸 들여 쓰기가 꼭 유지되도록 한다.

 name: Hosted VS2017
 demands:
 - msbuild
 - visualstudio
 - vstest

 

 

 

 

7. Save and run을 클릭한다.

 

 

8. Save and run을 클릭하여 커밋을 확인한다.

 

 

9. 완료 될 때까지 빌드를 추적한다. Job을 클릭하여 로그를 본다. 

 

 

10. 경고 및 오류를 포함하여 YAML 파일의 각 태스크를 검토 할 수 있다.

 

 

 

11. 태스크 뷰를 닫는다. 

 

 

12. Tests 탭을 선택한다. 

 

 

13. 이제 테스트는 예상대로 성공일 것이다. 

 

 

 

과제 4: Yaml 정의에 지속적인 전달(delivery) 추가하기

 

1. 빌드 및 테스트 프로세스가 완료되었으므로 이제 YAML 정의에 전달을 추가 할 수 있습니다. 옵션 드롭 다운에서 Edit pipeline을 선택한다.

 

 

2. trigger 섹션 뒤에 아래 구성 라인을 추가하여 YAML 파이프 라인에서 Build 단계를 정의한다. 파이프라인 진행 상황을 보다 잘 구성하고 추적하는 데 필요한 단계를 정의 할 수 있다.

 stages:
 - stage: Build
   jobs:
   - job: Build

 

 

 

 

3. YAML 파일의 나머지 부분을 강조 표시하고(블럭으로 지정하여 선택하고) 공백 4 개 (탭 2 개)를 들여 쓴다. 이는 기존 빌드 정의를 가져 와서 jobs 노드의 하위로 재배치하는 것이 될 것이다.

 

 

4. 파일 맨 아래에 아래 구성을 추가하여 두 번째 단계를 정의한다.

 - stage: Deploy
   jobs:
   - job: Deploy
     pool:
       name: Hosted VS2017
     steps:

 

 

 

 

5. YAML 정의의 끝에서 새 행에 커서를 설정한다. 새로운 태스크가 추가되는 위치다. 

 

 

6.  Azure App Service Deploy 태스크를 선택한다. 

 

 

7. 이전에 앱 서비스를 생성 한 Azure 구독을 선택한다. Authorize 클릭하고 경로를 따라 인증을 완료한다.

 

 

8. 이전에 앱 서비스에서 사용했던 App Service name 을 입력하고 Package or folder를 ”$(System.ArtifactsDirectory)/drop/*.zip”.으로 업데이트하여 Add를 클릭한다.

 

 

9. 태스크를 정의하는 YAML이 파일의 커서 위치에 추가된다.

 

 

10. 편집기에서 추가된 태스크를 선택한 상태에서 steps 태스크의 하위(child)가 되도록 4 개의 공백 (2 개의 탭)을 들여 쓴다.

 

 

11. 이 두 단계가 독립적으로 동작된다는 점에 주목하는 것은 중요하다. 결과적으로, 첫 번째 스테이지의 빌드 출력은 특별한 고려없이 두 번째 스테이지에서 사용할 수 없다. 이를 위해 하나의 태스크를 사용하여 빌드 스테이지의 끝에 빌드 출력을 퍼블리시하는 태스크를 그리고 디플로이 스테이지의 시작 부분에 다운로드를 하기 위한 태스크를 하나 사용할 것이다. 빌드 스테이지의 끝 빈 줄에 커서를 놓는다.

 

 

12. "publish build"에 대한 태스크를 검색하고 Publish Build Artifacts을 선택한다. 사용 가능한 항목이 둘 이상 있을 수 있으므로 deprecated 되지 않은 것을 선택한다. 

 

 

13. 기본값으로 하여 Add를 클릭한다. 그러면 별칭 drop 이하에서 다운로드 할 수 있는 위치에 빌드 아티팩트가 퍼블리시 된다.

 

 

14. 퍼블리시 태스크에 공백 4 개 (탭 2 개)를 들여 쓴다. 보다 읽기 쉽도록 전후에 빈 줄을 추가 할 수도 있다.

 

 

15. 디플로이먼트 스테이지의 스텝 노드 아래 첫 번째 라인에 커서를 위치 시킨다.

 

 

16. “download build”에 대한 태스크를 검색하고 Download Build Artifacts 태스크를 선택한다. 

 

 

17. Add를 클릭한다.

 

 

18. 퍼블리시 태스크에 공백 4 개 (탭 2 개)를 들여 쓴다. 보다 읽기 쉽도록 전후에 빈 줄을 추가 할 수도 있다.

 

 

19. artifactName을 "drop"으로 지정하여 다운로드 태스크에 속성을 추가한다.

 

 

20. Save를 클릭하여 변경사항을 커밋한다. 

 

 

21. Save를 확인한다. 이리하면 새로운 빌드가 시작된다.

 

 

22. Pipelines 뷰로 돌아간다.

 

 

23. Runs 탭에서 새 빌드 실행을 클릭한다. 이제 이전의 YAML 정의 편집을 기반으로 한 멀티 스테이지가 표시된다는 점에 주목한다.

 

 

24. 디플로이를 진행하기 위해서 퍼미션이 필요하다는 Warnings이 발생하면 View를 클릭한다. Permit을 클릭하여 디플로이를 진행한다.

 

 

25. Build 스테이지가 완료되면 Deploy 스테이지를 클릭하여 각 태스크를 수행한다.

 

26. AzureRmWebAppDeployment 태스크를 확장하여 Azure 배포 중에 수행 된 태스크를 검토한다. 태스크가 완료되면 앱이 Azure에 퍼블리시 된다.

 

 

 

과제 5: 배포된 사이트 검토하기

 

1. Azure Portal 브라우저 탭으로 돌아간다. 

 

 

2. 앞에서 만든 앱 서비스로 이동한다. 

 

 

3. Configuration 탭을 선택한다.

 

4. defaultConnection 설정을 클릭힌다.

 

 

5. Name을 "DefaultConnectionString"으로 업데이트한다. 이는 애플리케이션에서 예상되는 키다. 이를 통해 앱 서비스 용으로 생성 된 데이터베이스에 연결할 수 있다. OK를 클릭한다. 

 

 

6. Save를 클릭하여 변경사항을 저장한다. 

 

 

7. Overview 탭으로 돌아간다.

 

 

8. Browse 를 클릭하여 새로운 탭에서 사이트를 연다.

 

 

9. 배포한 사이트가 예상대로 로드되어야 한다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함