Azure DevOps’tan bir görüntü fabrikası çalıştırma

Bu makale, Azure DevOps'tan (eski adıyla Visual Studio Team Services) görüntü fabrikasını çalıştırmak için gereken tüm hazırlıkları kapsar.

Dekont

Herhangi bir düzenleme altyapısı çalışır! Azure DevOps zorunlu değildir. Görüntü fabrikası Azure PowerShell betikleri kullanılarak çalıştırıldığından Windows Görev Zamanlayıcı, diğer CI/CD sistemleri vb. kullanılarak el ile çalıştırılabilir.

Görüntü fabrikası için laboratuvar oluşturma

Görüntü fabrikasını ayarlamanın ilk adımı, Azure DevTest Labs'de bir laboratuvar oluşturmaktır. Bu laboratuvar, sanal makineleri oluşturduğumuz ve özel görüntüleri kaydettiğimiz görüntü fabrikası laboratuvarıdır. Bu laboratuvar, genel görüntü fabrikası işleminin bir parçası olarak kabul edilir. Laboratuvar oluşturduktan sonra, daha sonra ihtiyacınız olacağından adı kaydettiğinizden emin olun.

Betikler ve şablonlar

Ekibiniz için görüntü fabrikasını benimsemenin bir sonraki adımı, kullanılabilir olanları anlamaktır. Görüntü fabrikası betikleri ve şablonları DevTest Labs GitHub Deposu'nda genel kullanıma sunulur. Parçaların ana hatlarını aşağıda bulabilirsiniz:

  • Image Factory. Kök klasör.
    • Yapılandırma. Görüntü fabrikasına girişler
      • GoldenImages. Bu klasör, özel görüntülerin tanımlarını temsil eden JSON dosyaları içerir.
      • Labs.json. Ekiplerin belirli özel görüntüleri almak için kaydolduğu dosya.
  • Betikler. Görüntü fabrikasının altyapısı.

Bu bölümdeki makaleler, bu betikler ve şablonlar hakkında daha fazla ayrıntı sağlar.

Azure DevOps ekip projesi oluşturma

Azure DevOps, kaynak kodu depolamanıza ve Azure PowerShell'i tek bir yerde çalıştırmanıza olanak sağlar. Görüntüleri güncel tutmak için yinelenen çalıştırmalar zamanlayabilirsiniz. Sorunları tanılamak için sonuçları günlüğe kaydetmek için iyi olanaklar vardır. Azure DevOps kullanmak bir gereksinim değildir ancak Azure'a bağlanabilen ve Azure PowerShell çalıştırabilen herhangi bir koşum/altyapı kullanabilirsiniz.

Bunun yerine kullanmak istediğiniz bir DevOps hesabınız veya projeniz varsa bu adımı atlayın.

Başlamak için Azure DevOps'ta ücretsiz bir hesap oluşturun. Doğrudan Azure DevOps (eski adıYLA VSTS) altında Ücretsiz kullanmaya başlayın'ı ziyaret edin https://www.visualstudio.com/ ve seçin. Benzersiz bir hesap adı seçmeniz ve Git kullanarak kodu yönetmeyi seçtiğinizden emin olmanız gerekir. Hesabı oluşturduktan sonra, ekip projenizin URL'sini kaydedin. Aşağıda örnek bir URL verilmiştir: https://<accountname>.visualstudio.com/MyFirstProject.

Görüntü fabrikasını Git'e iade etme

Görüntü fabrikası için tüm PowerShell, şablonlar ve yapılandırmalar genel DevTest Labs GitHub deposunda bulunur. Kodu yeni takım projenize eklemenin en hızlı yolu bir depoyu içeri aktarmaktır. DevTest Labs deposunun tamamında çekmeleri içeri aktarma (ek belgeler ve örnekler elde etmeniz için).

  1. Önceki adımda oluşturduğunuz Azure DevOps projesini ziyaret edin (URL, https://< accountname.visualstudio.com/MyFirstProject> gibi görünür).

  2. Depo İçeri Aktar'ı seçin.

  3. DevTest Labs Deposu için kopya URL'sini girin: https://github.com/Azure/azure-devtestlab.

  4. İçeri aktar'ı seçin.

    Screenshot that shows Import Git repo.

Yalnızca tam olarak gerekenleri (görüntü fabrikası dosyaları) iade etmeye karar verirseniz, Git deposunu kopyalamak ve yalnızca script/ImageFactory dizininde bulunan dosyaları göndermek için buradaki adımları izleyin.

Derleme oluşturma ve Azure'a bağlanma

Bu noktada kaynak dosyalarınız Azure DevOps'taki bir Git deposunda depolanır. Şimdi Azure PowerShell'i çalıştırmak için bir işlem hattı ayarlamanız gerekir. Bu adımları gerçekleştirmek için birçok seçenek vardır. Bu makalede, basitlik için derleme tanımını kullanırsınız, ancak DevOps Derlemesi, DevOps Sürümü (tek veya birden çok ortam), Windows Görev Zamanlayıcı gibi diğer yürütme altyapıları veya Azure PowerShell'i yürütebilen diğer tüm koşumlarla çalışır.

Dekont

Bazı PowerShell dosyalarının oluşturulması çok fazla (10+) özel görüntü olduğunda çalıştırılmasının uzun sürdüğünü unutmayın. Ücretsiz barındırılan DevOps Derleme/Yayın aracılarının zaman aşımı 30 dakikadır, bu nedenle birçok görüntü oluşturmaya başladıktan sonra ücretsiz barındırılan aracıyı kullanamazsınız. Bu zaman aşımı sınaması, kullanmaya karar vereceğiniz her kullanım için geçerlidir. Uzun süre çalışan Azure PowerShell betikleri için tipik zaman aşımlarını genişletebileceğinizi önceden doğrulamanız önerilir. Azure DevOps söz konusu olduğunda ücretli barındırılan Aracıları veya kendi derleme aracınızı kullanabilirsiniz.

  1. Başlamak için DevOps Projenizin giriş sayfasında Derlemeyi Ayarla'yı seçin:

    Screenshot that shows Set up Build button.

  2. Derleme için bir ad belirtin (örneğin: Build and Deliver Images to DevTest Labs).

  3. Derlemenizi oluşturmak için boş bir derleme tanımı seçin ve Uygula'yı seçin.

  4. Bu aşamada, derleme aracısı için Barındırılan'ı seçebilirsiniz.

  5. Derleme tanımını kaydedin .

    Screenshot that shows Build definition.

Derleme değişkenlerini yapılandırma

Komut satırı parametrelerini basitleştirmek için görüntü fabrikasını bir dizi derleme değişkenine yönlendiren anahtar değerlerini kapsülleyin. Değişkenler sekmesini seçtiğinizde birkaç varsayılan değişkenin listesini görürsünüz. Azure DevOps'a girecek değişkenlerin listesi aşağıdadır:

Değişken Adı Değer Notlar
Configurationlocation /Scripts/ImageFactory/Configuration Bu konum, depodaki Yapılandırma klasörünün tam yoludur. Yukarıdaki deponun tamamını içeri aktardıysanız, soldaki değer doğrudur. Aksi takdirde Yapılandırma konumuna işaret etmek için güncelleştirin.
DevTestLabName MyImageFactory Azure DevTest Labs'de görüntü üretmek için fabrika olarak kullanılan laboratuvarın adı. Yoksa bir tane oluşturun. Laboratuvar'ın hizmet uç noktasının erişimi olan abonelikte olduğundan emin olun.
ImageRetention Kategori 1 Her türden kaydetmek istediğiniz resim sayısı. Varsayılan değeri 1 olarak ayarlayın.
MachinePassword ******* Sanal makineler için yerleşik yönetici hesabı parolası. Bu hesap geçicidir, bu nedenle güvenli olduğundan emin olun. Güvenli bir dize olduğundan emin olmak için sağdaki küçük kilit simgesini seçin.
MachineUserName ImageFactoryUser Sanal makinelerin yerleşik yönetici hesabı kullanıcı adı. Bu hesap geçicidir.
StandardTimeoutMinutes 30 Normal Azure işlemlerini beklememiz gereken zaman aşımı.
SubscriptionId 0000000000-0000-0000-0000-0000000000000 Laboratuvarın bulunduğu ve hizmet uç noktasının eriştiği aboneliğin kimliği.
VMSize Standard_A3 Oluştur adımında kullanılacak sanal makinenin boyutu. Oluşturulan VM'ler geçicidir. Boyut, laboratuvar için etkinleştirilen boyut olmalıdır. Yeterli abonelik çekirdeği kotası olduğunu onaylayın.

Screenshot that shows Build variables.

Azure'a bağlanma

Sonraki adım bir hizmet sorumlusu ayarlamaktır. Hizmet sorumlusu, DevOps derleme aracısının kullanıcı adına Azure'da çalışmasına olanak tanıyan Microsoft Entra Id'deki bir kimliktir. Bunu ayarlamak için ilk Azure PowerShell Derleme Adımı'nın eklenmesiyle başlayın.

  1. Görev Ekle'yi seçin.
  2. Azure PowerShell'i arayın.
  3. Görevi buldukta ekle'yi seçerek görevi derlemeye ekleyin. Ekle'yi seçtiğinizde görevin sol tarafta eklendiği gibi göründüğünü görürsünüz.

Screenshot that shows Set up PowerShell step.

Hizmet sorumlusu ayarlamanın en hızlı yolu Azure DevOps'un bunu sizin için yapmasına izin vermektir.

  1. Yeni eklediğiniz görevi seçin.
  2. Azure Bağlan ion Türü için Azure Resource Manager'ı seçin.
  3. Hizmet sorumlusunu ayarlamak için Yönet bağlantısını seçin.

Daha fazla bilgi için bu blog gönderisine bakın. Yönet bağlantısını seçtiğinizde, Azure bağlantısını ayarlamak için DevOps'ta doğru yere (blog gönderisindeki ikinci ekran görüntüsü) ulaşacaksınız. Bağlantıyı ayarlarken Azure Resource Manager Hizmet Uç Noktası'nı seçtiğinizden emin olun.

Derleme görevini tamamlama

Derleme görevini seçerseniz, sağ bölmede doldurulması gereken tüm ayrıntıları görürsünüz.

  1. İlk olarak, derleme görevini adlandırın: Sanal Makineler oluşturun.

  2. Azure Resource Manager'ı seçerek oluşturduğunuz hizmet sorumlusunu seçin

  3. Hizmet uç noktasını seçin.

  4. Betik Yolu için ... öğesini seçin. (üç nokta) sağ tarafta.

  5. MakeGoldenImageVMs.ps1 betiğine gidin.

  6. Betik Parametreleri şöyle görünmelidir: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -DevTestLabName $(DevTestLabName) -vmSize $(VMSize) -machineUserName $(MachineUserName) -machinePassword (ConvertTo-SecureString -string '$(MachinePassword)' -AsPlainText -Force) -StandardTimeoutMinutes $(StandardTimeoutMinutes)

    Screenshot that shows Complete the build definition.

Derlemeyi kuyruğa alın

Şimdi yeni bir derlemeyi kuyruğa alarak her şeyin doğru şekilde ayarlandığını doğrulayalım. Derleme çalışırken Azure portalına geçin ve görüntü fabrikası laboratuvarınızdaki Tüm Sanal Makineler'ı seçerek her şeyin düzgün çalıştığını doğrulayın. Laboratuvarda üç sanal makinenin oluşturulduğunu görmeniz gerekir.

VMs in the lab

Sonraki adımlar

Azure DevTest Labs'i temel alarak görüntü fabrikasını ayarlamanın ilk adımı tamamlandı. Serinin bir sonraki makalesinde, bu VM'lerin genelleştirilmesini ve özel görüntülere kaydedilmesini sağlarsınız. Ardından, bunları diğer tüm laboratuvarlarınıza dağıtmış olursunuz. Serideki bir sonraki makaleye bakın: Özel görüntüleri kaydetme ve birden çok laboratuvara dağıtma.