[Azure] GitHub Actions에서 az 명령을 정기적으로 두드리기

GitHub Actions를 사용하면 Azure CLI 명령(az 명령)을 자동으로 실행할 수 있습니다.
이 기사에서는 다음 문서를 참조하여 VM 시작을 예약하고 싶습니다.
htps : // 기주 b. 코 m / 마 r tp ぁ세 / 아 c 치온 s / 아즈레 - c ぃ - 아 c 치온

사전에 GitHub 계정과 Azure에 VM을 생성했다고 가정합니다.

1. GitHub 리포지토리 생성



먼저 다음 문서를 참조하여 리포지토리를 만듭니다.
htps : // / cs. 기주 b. 코 m / 그럼 / f Ree-p-ro m @ st / Geteu b / Getchin g-s-r-de-u-th-gee b / c Ree-Arepo

이번에는 Private 리포지토리에서 사용해 보겠습니다.


2. 워크플로 만들기


Actions 탭에서 Simple workflow를 선택합니다.


파일 편집 화면으로 전환되므로 다음 YAML을 붙여 넣습니다.<RG 名><VM 名> 에는 기동하는 VM 의 자원 그룹명과 머신명으로 재기입해 주세요.
name: schedule_vm_start

on:
  schedule:
    - cron: '0 0 * * *' 
  # 以下の記述でワークフローの手動実行も可能になります
  workflow_dispatch:

jobs:

  build-and-deploy:
    runs-on: ubuntu-latest
    steps:

    # Azure にログインする
    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    # az コマンドを実行する
    - name: Azure CLI script
      uses: azure/CLI@v1
      with:
        azcliversion: 2.0.72
        # <RG 名> と <VM 名> を書き換える
        inlineScript: |
          az vm start -g <RG 名> -n <VM 名>

스케줄은 cron 구문으로 표시되며 UTC 시간에 설정됩니다. (위에서 UTC 0:00/JST 9:00)
워크플로의 cron 구문은 다음 문서에서 찾을 수 있습니다.
htps : // / cs. 기주 b. 코 m / 그럼 / f Ree-p-ro m @ st / Ac Chion s / Rep-Rense / e-on ts-te-t-t Righ r-rkf ws

또한 전체 YAML 파일의 구문에 대해서는 다음을 참조하십시오.
htps : // / cs. 기주 b. 코 m / 그럼 / f Ree-p-ro m @ st / Ac Chion s / Rep-Rense / 아 c 치온 s

3. Azure 자격 증명 설정



Azure에 로그인하는 서비스 보안 주체를 만들고 ${{ secrets.AZURE_CREDENTIALS }}에 비밀 정보를 반영하도록 설정합니다.
문서를 참조하여 다음 명령을 Azure Cloud Shell 등에서 실행하여 서비스 보안 주체를 만듭니다.
htps : // 기주 b. 코 m / 마르 tp ぁ세 / 아 c 치 온 s / 아즈레 - c ぃ - 아 c 치온 # 곤후 쿠레 - 아즈레 - c 레 덴치아 ls - 아 - 기 - 세 c t
az ad sp create-for-rbac --name "myApp" --role contributor \
                         --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} \
                         --sdk-auth

# コマンド実行結果
{
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
}

명령 실행 결과의 JSON을 모두 복사합니다.
그런 다음 GitHub로 돌아가서 Settings > Secrets > New repository secret를 선택합니다.


New secret 화면에서 Name에 AZURE_CREDENTIALS를 Value에 이전에 복사한 명령 실행 결과(JSON)를 모두 붙여넣고 Add secret로 등록합니다.


4. 워크플로 실행 확인



GitHub Actions 탭으로 돌아가면 2.에서 만든 워크 플로가 표시됩니다.workflow_dispatch 의 기술에 의해, 이하와 같이 수동 실행을 위한 버튼이 표시되므로, 실행해 봅시다.


문제 없이 실행되면 해당 VM이 시작되고 있을 것이므로 Azure Portal 등에서 확인해 봅시다.

또한 일정에 설정한 시간에 시작했는지 확인합시다.Actions 탭에서 실행 기록을 볼 수 있습니다.


마지막으로



GitHub Actions는 CI/CD 워크플로 외에 이번에 소개한 Azure 리소스 관리 같은 것도 가능하다는 것을 알았습니다.

GitHub Acrions의 요금 체계는 퍼블릭 리포지토리에서는 무료, 프라이빗 리포지토리에서는 플랜에 의해 무료 프레임(Free 플랜에서는 2000분/월)이 존재하고 있어, 통상 이용에서는 거의 돈이 들지 않기 때문에 적극적으로 활용해 보려고 생각 합니다.
htps : // 기주 b. 이. jp / 훗 아츠레 s / 아 c 치온 s

참고 자료


  • GitHub Actions 공식 문서 : htps : // / cs. 기주 b. 코 m / 그럼 / f Ree-p-ro m @ st / A c Chion s
  • Azure CLI Action : htps : // 기주 b. 코 m / 마 r tp ぁ세 / 아 c 치온 s / 아즈레 - c ぃ - 아 c 치온
  • 좋은 웹페이지 즐겨찾기