Bicep ile Infrastructre as Code – Bölüm 6: GitHub Actions

bicep-azure-github

Beşinci bölümde farklı modüller tanımlamış ve Azure CLI üzerinden manual bir deployment yapmıştım. Bu bölümde de işin otomasyon kısmından, GitHub Actions ile bir örnek yaparak bahsedeceğim.

Workflow’u oluşturmadan önce, kullanacağım Azure subscription’a erişim için yetki tanımı yapmam gerekiyor. Burada iki tane action secret tanımı yapacağım. İlgili repository’de Settings alında Secrets and variables sekmesine geliyorum (Resim-1). Burada New repository secret ile yeni secret değerlerini oluşturacağım.

Resim-1

İlk olarak AZURE_CREDENTIALS adında bir secret tanımı yapacağım.

Resim-2

Buraya yazacağım değeri de almak için Azure CLI üzerinden aşağıdaki komutu çalıştırarak, Azure AD üzerinde bir app registration yapmış olacağım.

az ad sp create-for-rbac –name bicep-sample –role contributor –scope /subscriptions/<subscription_id> –sdk-auth

Bu komutun çıktısının tamamını alıp, AZURE_CREDENTIALS’ın secret değerine olarak kaydediyorum. Sonra da AZURE_SUBSCRIPTION adında yeni bir secret tanımı da daha yapıyorum ve değerini de adından da anlaşılacağı üzere kullandığım Azure Subscription’ın ID değeri olarak belirliyorum (Resim-3).

Resim-3

Secret değerlerini hazır ettikten sonra sırada workflow için gerekli olan yaml dosyasını hazırlamak kaldı. GitHub Repo üzerindeki Actions sekmesinde hazır template’ler bulabileceğiniz gibi, kendiniz de sıfırdan yazmayı tercih edebilirsiniz. Resim-4‘te de göreceğiniz gibi uzun bir yml olmayacağı için sıfırdan yazmayı tercih ediyorum.

Resim-4

İlk olarak 2 tane klasör oluşturacağım. Bunlardan ilki .github, sonra da bu klasör içerisinde workflows. Klasör isimleri önemli, ama klasör içerisindeki dosyaya istediğiniz ismi verebilirsiniz. Burada action’ın push sonrasında otomatik olarak devreye girmesi için on: push olarak belirtiyorum. Sonra da aşamaları adım adım ekliyorum.

  1. Secret olarak tanımladığım credentials ile Azure’a login oluyorum.
  2. Kaynak kodları checkout ile indiriyorum.
  3. Deployment için scope, subscriptionId (secrets altında tanımlamıştım) , region değerleri ile template ve parametre dosyalarını tanımlıyorum.

Bu şekilde commit ve push yaptığımda ise, repo altındaki Actions sekmesine geldiğimde, deployment’ın otomatik başladığını görebiliyorum (Resim-5).

Resim-5

Bir daha detayına bakmak istersem de, yaml üzerinde tanımladığım adımları burada da detaylı olarak görebiliyorum (Resim-6).

Resim-6

Deployment detaylarını, Azure Portal üzerinden ilgili Subscription’a gelerek, Settings/Deployments sekmesinden de takip edebilirsiniz.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org 

Bicep documentation | Microsoft Docs

GitHub – mertyeter/bicep-samples

TAGs: Azure, Yazılım Geliştiriciler için Azure, Bicep, ARM Templates, JSON, Azure Resource Manager, IaC, Infrastructure as Code, VS Code, Visual Studio Code, Azure CLI, bicep nedir, bicep, GitHub, GitHub Actions

 

Yazı gezinmesi

Mobil sürümden çık