연습 - GitHub 워크플로에서 Bicep 파일 배포
GitHub Actions는 본질적으로 Azure Pipelines와 비슷합니다. 소프트웨어 개발 및 배포를 자동화하는 방법을 제공합니다. 이 연습에서는 GitHub Action을 사용하여 Bicep 파일을 배포하는 방법을 알아봅니다.
사전 요구 사항
- 여기에서 무료로 만들 수 있는 GitHub 계정이 필요합니다.
- 또한 연습 - Bicep 템플릿 만들기에서 만든 Bicep 파일 및 워크플로를 저장하려면 GitHub 리포지토리가 필요합니다. GitHub 리포지토리를 만든 후에는 Bicep 파일을 푸시합니다.
- Azure에 배포하려면 여기에서 무료로 만들 수 있는 Azure 구독에 대한 액세스가 필요합니다.
Azure에서 서비스 주체 만들기
Azure에 리소스를 배포하려면 GitHub을 사용할 수 있는 서비스 주체를 만들어야 합니다. 따라서 터미널을 열거나 Azure Portal에서 Cloud Shell을 사용하여 다음 명령을 입력합니다.
az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth
참고
구독 ID를 사용자의 것으로 바꾸는 것을 잊지 마세요.
작업이 성공하면 tenantId
, subscriptionId
, clientId
, clientSecret
, 다음과 같은 몇 가지 추가 속성이 포함된 JSON 개체를 출력해야 합니다.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
이 개체를 GitHub 비밀에 추가해야 하므로 이 개체를 기록해 두세요.
GitHub 비밀 만들기
GitHub 리포지토리에서 설정>비밀>작업으로 이동합니다.
AZURE_CREDENTIALS
라는 새 비밀을 만들고 이전 단계에서 가져온 전체 JSON 개체를 붙여넣습니다.
리소스 그룹 이름에 대해 AZURE_RG
와 같은 이름과 구독에 대한 또 다른 비밀을 만듭니다.
GitHub 작업 만들기
먼저 리포지토리로 이동하여 작업 메뉴를 선택합니다. 그런 다음, 워크플로를 설정하여 리포지토리에 빈 워크플로를 만듭니다. 원하는 경우 파일 이름을 다른 이름으로 바꿀 수 있습니다.
파일 내용을 다음 코드 조각으로 바꿉니다.
on: [push] name: Azure ARM jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: storagePrefix=stg failOnStdErr: false
스토리지 계정 접두사는 사용자 고유의 접두사로 자유롭게 바꿀 수 있습니다.
참고
워크플로의 첫 번째 부분은 트리거와 이름을 정의합니다. 나머지는 작업을 정의하고 몇 가지 작업을 사용하여 코드를 확인하고, Azure에 로그인하고, Bicep 파일을 배포합니다.
커밋 시작을 선택하고 팝업 대화 상자에 제목과 설명을 입력합니다. 그런 다음, 기본 분기에 직접 커밋을 선택한 다음, 새 파일을 커밋합니다.
작업 탭으로 돌아가서 실행해야 하는 새로 만든 작업을 선택합니다.
상태를 모니터링하고 작업이 완료되면 Azure Portal을 확인하여 스토리지 계정이 생성되고 있는지 확인합니다.