[Azure] GitHub Actions에서 az 명령을 정기적으로 두드리기
7745 단어 AzureGitHubActionsGitHub
이 기사에서는 다음 문서를 참조하여 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 리포지토리에서 사용해 보겠습니다.
![](https://s1.md5.ltd/image/453dc8af1df0d08581018df9a9d01687.png)
2. 워크플로 만들기
Actions
탭에서 Simple workflow
를 선택합니다.![](https://s1.md5.ltd/image/293ca0e19063f1ee7cecf5391c6a0671.png)
파일 편집 화면으로 전환되므로 다음 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
를 선택합니다.
![](https://s1.md5.ltd/image/8a694ce976919e3bce9678e63fefbc26.png)
New secret 화면에서 Name에 AZURE_CREDENTIALS
를 Value에 이전에 복사한 명령 실행 결과(JSON)를 모두 붙여넣고 Add secret
로 등록합니다.
![](https://s1.md5.ltd/image/49aa30a446a15d163f3b324eaf0ff5ec.png)
4. 워크플로 실행 확인
GitHub Actions
탭으로 돌아가면 2.에서 만든 워크 플로가 표시됩니다.workflow_dispatch
의 기술에 의해, 이하와 같이 수동 실행을 위한 버튼이 표시되므로, 실행해 봅시다.
![](https://s1.md5.ltd/image/f44892b2db2d1665a21a015c0a3a4dc9.png)
문제 없이 실행되면 해당 VM이 시작되고 있을 것이므로 Azure Portal 등에서 확인해 봅시다.
또한 일정에 설정한 시간에 시작했는지 확인합시다.Actions
탭에서 실행 기록을 볼 수 있습니다.
![](https://s1.md5.ltd/image/5b7988029020ff5a3b9342900bb22758.png)
마지막으로
GitHub Actions는 CI/CD 워크플로 외에 이번에 소개한 Azure 리소스 관리 같은 것도 가능하다는 것을 알았습니다.
GitHub Acrions의 요금 체계는 퍼블릭 리포지토리에서는 무료, 프라이빗 리포지토리에서는 플랜에 의해 무료 프레임(Free 플랜에서는 2000분/월)이 존재하고 있어, 통상 이용에서는 거의 돈이 들지 않기 때문에 적극적으로 활용해 보려고 생각 합니다.
htps : // 기주 b. 이. jp / 훗 아츠레 s / 아 c 치온 s
참고 자료
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>",
(...)
}
Reference
이 문제에 관하여([Azure] GitHub Actions에서 az 명령을 정기적으로 두드리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomohat/items/bd5e81643bc710f6d72f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)