LoginSignup
0
1

More than 1 year has passed since last update.

GitHub Actions から Azure Bicep でリソースをデプロイする

Posted at

やること

GitHub Actions から Bicep で定義した Azure リソースをデプロイします。とりあえずシンプルに App Service Plan だけデプロイしてみます。なんとなく全部コマンドだけでやります。

バージョン情報

> gh --version
gh version 2.2.0 (2021-10-25)

> az --version
azure-cli 2.29.2

> $PSVersionTable.PSVersion.ToString()
7.1.5

> code --version
1.61.2

構築

PowerShell から以下のコマンドを実行していきます。

# Azure にログイン
az login

# GitHub にログイン
gh auth login

# デプロイ用リソースグループの作成
$resourceGroupName = "BicepTestRG"
$resourceGroup = az group create --name $resourceGroupName --location japaneast

# デプロイ実行用サービスプリンシパルの作成
$servicePrincipalName = "BicepTestApp"
$resourceGroupId = ($resourceGroup | ConvertFrom-Json).id
$servicePrincipal = az ad sp create-for-rbac --name $servicePrincipalName --scopes $resourceGroupId --role Contributor --sdk-auth

# GitHub Secret に登録するための情報を取得
$secretBody = ($servicePrincipal | ConvertFrom-Json) | select clientId,clientSecret,subscriptionId,tenantId | ConvertTo-Json

# Repository をクローンするフォルダに移動
cd "C:\GitHub"

# GitHub Repository 作成 & クローン
$repositoryName = "BicepTest"
gh repo create $repositoryName --private --confirm

# Repository フォルダに移動
cd $repositoryName

# GitHub Secret を追加
$secretBody | gh secret set AZURE_CREDENTIALS

# Visual Studio Code で開く
code .

VSCode で main.bicep を作成します。

BicepTest/main.bicep
resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
  name: 'BicepTestAppServicePlan'
  location: 'japaneast'
  sku: {
    name: 'F1'
  }
}

.github フォルダとその配下に workflows フォルダを作成します。workflows フォルダ配下に workflow.yml を作成します。

BicepTest/.github/workflows/workflow.yml
name: deploy-bicep-test

on: [workflow_dispatch]

env:
    AZURE_RESOURCEGROUP_NAME: BicepTestRG

jobs:
  deploy:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v2
    - uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    - uses: azure/arm-deploy@v1
      with:
        deploymentName: ${{ github.run_number }}
        resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
        template: ./main.bicep

コミットしてプッシュしておきます。

実行

再び PowerShell で以下のコマンドを実行します。

# ワークフロー実行
gh workflow run workflow.yml

# 実行状況確認
gh run list --workflow=workflow.yml

# リソース確認
az appservice plan list
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1