Otomatik iş akışı uygulama
Bu ünitede otomatik iş akışı araçları ve bunların Terraform ve Azure ile nasıl tümleştirildikleri hakkında bilgi edineceksiniz.
GitHub Eylemleri Hakkında
Altyapı yöneticisi olarak, derleme ve dağıtım iş akışlarınızın projenizle aynı sürüm denetimini kullanması gerekir.
GitHub Actions'ı kullanarak, GitHub depolarınıza bağlı bir sürekli tümleştirme ve sürekli teslim (CI/CD) işlemi çalıştırabilirsiniz.
GitHub Actions ile kodunuzu doğrudan GitHub'dan derleyebilir, test edebilir ve dağıtabilirsiniz. Ayrıca kod incelemeleri atayabilir, dalları yönetebilir ve önceliklendirme sorunlarına da erişebilirsiniz.
GitHub Actions bileşenleri
Aşağıdaki diyagramda gösterildiği gibi çeşitli GitHub Actions bileşenlerini açıklayalım:
- İş Akışı: Belirli olaylar veya etkinlikler tarafından tetiklenen iş akışı, yazılım geliştirme yaşam döngüsü görevlerini otomatik hale getiren bir iş ve adım koleksiyonudur.
- İş: Bir çalıştırıcıda yürütülen bir dizi adım.
- Adım: Bir veya daha fazla komut veya eylem çalıştırabilen bir görev. Her adım, çekme isteği gibi belirli bir olay gerçekleştikten sonra çalıştırılan tek tek eylemlerden oluşur.
- Eylem: Adımlarda birleştirilebilen tek başına komutlar. Bir iş oluşturmak için birden çok adım birleştirilebilir. Tek tek eylemler, yazılım geliştirme görevlerini otomatik hale getiren paketlenmiş betiklerdir. İş akışı oluşturmak için, GitHub deponuzda . github/workflows dizinindeki bir YAML dosyasına eylemler eklersiniz.
Terraform GitHub eylemi
Eylem, hashicorp/setup-terraform Terraform CLI'yi GitHub Actions iş akışınızda şu şekilde ayarlar:
- Terraform CLI'nın belirli bir sürümünü indirme ve sürümüne
PATHekleme. - Terraform CLI yapılandırma dosyasını terraform bulutu veya kurumsal konak adı ve API belirteci ile yapılandırma.
- İkilinin sonraki çağrılarını
terraformsarmalayıp STDOUT, STDERR ve çıkış kodunu sırasıyla ,stdoutvestderradlıexitcodeçıkışlar olarak kullanıma açmak için bir sarmalayıcı betiği yükleme.
Azure ile GitHub Actions'ın kimliğini doğrulama
Terraform, Azure ile kimlik doğrulaması için çeşitli seçenekleri destekler:
- Terraform'u etkileşimli olarak kullandığınızda, bir Microsoft hesabı aracılığıyla kimlik doğrulaması yapmanızı öneririz.
- Terraform'ı koddan veya otomasyondan kullandığınızda, Azure Hizmet Sorumlusu aracılığıyla kimlik doğrulaması yapmanızı öneririz.
Hizmet sorumlusu, Azure kaynaklarına erişmek için uygulamalar, barındırılan hizmetler ve otomatik araçlarla kullanılan bir kimliktir.
Sonraki adımlar
Sonraki ünitede örnek bir proje ayarlayıp Terraform ile GitHub Actions'ı kullanarak Azure'a dağıtacağız.
Yeni Azure Pipelines için temel kavramlar
Şimdi Azure Pipeline'ı oluşturan bileşenler hakkında bilgi edinelim.
- Tetikleyici bir İşlem Hattı'na çalışmasını söyler.
- İşlem hattı bir veya daha fazla aşamadan oluşur. İşlem hattı bir veya daha fazla ortam için dağıtım yapabilir.
- Aşama, bir işlem hattında işi düzenlemenin bir yoludur ve her aşamada bir veya daha fazla iş olabilir.
- Her iş bir aracı üzerinde çalışır. Bir iş aracısız da olabilir.
- Her aracı bir veya daha fazla adım içeren bir iş çalıştırır.
- Adım bir görev veya betik olabilir ve işlem hattının en küçük yapı taşıdır.
- Görev, REST API çağırma veya derleme yapıtı yayımlama gibi bir eylemde bulunan önceden paketlenmiş bir betiktir.
- Yapıt, çalıştırma tarafından yayımlanan bir dosya veya paket koleksiyonudur.
İpucu
Farklı İşlem Hattı bileşenleri ve bunların nasıl kullanılacağı hakkında daha ayrıntılı bilgi için Özet bölümünde sağlanan Bağlantılar'a bakın.
Azure Pipelines için Terraform Görevleri
, planve applygibi destroyAzure ile etkileşim kuran komutları yürütürken, görev hedef aboneliğe karşı işlemleri yetkilendirmek için bir Azure Hizmet Bağlantısı kullanır.
Azure'a bağlanmanın önerilen yolu, Hizmet Bağlantısını bir Azure Hizmet Sorumlusuna bağlamaktır. Azure Hizmet Sorumlusu, Azure kaynaklarına erişmek için otomatik araçlar kullanan bir kimliktir.
Aşağıdaki YAML kod parçacığı Azure Pipeline Terraform sağlayıcısını azurermkullanır. Giriş aracılığıyla environmentServiceNameAzureRM bir Hizmet Bağlantısı belirtilir:
- task: TerraformTaskV1@0
inputs:
provider: 'azurerm'
command: 'apply'
workingDirectory: $(Build.Repository.LocalPath)/terraform
backendAzureRmContainerName: 'tfstate'
backendAzureRmKey: 'tf/terraform.tfstate'
environmentServiceNameAzureRM: $(serviceConnection)
İpucu
Azure Pipeline Terraform sağlayıcısı olarak kullanıyorsanız azurerm Terraform arka uç durumuyla kullanmak için bir Hizmet Bağlantısı ve Depolama Kapsayıcısı sağlamanız da gerekir.
Parametreleri Geçirme
Terraform komutlarına parametre geçirmek için birden çok yöntem vardır. Değişkenler size işlem hattının çeşitli bölümlerine anahtar bitlerini almak için kullanışlı bir yol sağlar.
Aşağıdaki adımları izleyerek bir derleme işlem hattı için değişken ayarlayabilirsiniz:
- İşlem Hatları sayfasına gidin, uygun işlem hattını seçin ve Düzenle'yi seçin.
- Bu işlem hattı için Değişkenleri bulun.
- Değişkeni ekleyin veya güncelleştirin.
- Değişkeni gizli dizi olarak işaretlemek için Bu değer gizli dizisini sakla'yı seçin.
- İşlem hattını kaydedin.
İşlem Hattı Değişkenlerine Terraform Çıktısı
TerraformCLI görevi Terraform output komutunu çalıştırmayı destekler. CLI çalıştırıldığında, komuttan yayılan her çıkış değişkeninden terraform output işlem hattı değişkenleri oluşturulur.
Sonraki adımlar
Sonraki ünitede bir örnek proje ayarlayıp Terraform ile Azure Pipelines'ı kullanarak Azure'a dağıtacağız.