Aracılığıyla paylaş


Makine yapılandırması geçiş planlamasına durum yapılandırması Azure Otomasyonu

Makine yapılandırması, Azure Otomasyonu Durum Yapılandırması (Azure Otomasyonu İstenen Durum Yapılandırması veya AADSC olarak da bilinir) tarafından sağlanan en son işlevsellik uygulamasıdır. Mümkün olduğunda, içeriğinizi ve makinelerinizi yeni hizmete taşımayı planlamanız gerekir. Bu makalede, Azure Otomasyonu'ndan makine yapılandırmasına geçiş stratejisi geliştirme konusunda rehberlik sağlanmaktadır.

Makine yapılandırmasındaki yeni özellikler müşteri isteklerini karşılar:

  • Yapılandırmalar için boyut sınırı 100 MB'a yükseltildi
  • Kaynak kimliği ve durumu dahil olmak üzere Azure Kaynak Grafı aracılığıyla gelişmiş raporlama
  • Aynı makine için birden çok yapılandırmayı yönetme
  • Makineler istenen durumdan kaydığında, düzeltmenin ne zaman gerçekleşeceini denetleyebilirsiniz
  • Linux ve Windows hem PowerShell tabanlı DSC kaynaklarını kullanır

Başlamadan önce, Azure İlkesi makine yapılandırması sayfasındaki kavramsal genel bakış bilgilerini okumak iyi bir fikirdir.

Geçişi anlama

En iyi geçiş yaklaşımı önce içeriği yeniden dağıtmak, ardından makineleri geçirmektir. Bu bölümde, geçiş için beklenen adımlar özetlenmektedir.

  1. Azure Otomasyonu yapılandırmalarını dışarı aktarma
  2. Modül gereksinimlerini keşfedin ve ortamınıza yükleyin
  3. Yapılandırmaları derleme
  4. Makine yapılandırma paketleri oluşturma ve yayımlama
  5. Makine yapılandırma paketlerini test edin
  6. Hibrit makineleri Azure Arc'a ekleme
  7. Azure Otomasyonu Durum Yapılandırması'ndan sunucuların kaydını kaldırma
  8. Makine yapılandırmasını kullanarak sunuculara yapılandırma atama

Makine yapılandırması, PowerShell sürüm 7 ile DSC sürüm 3'i kullanır. DSC sürüm 3, Windows ve Linux'ta DSC'nin eski sürümleriyle birlikte bulunabilir. Uygulama bileşenleri ayrıdır. Ancak çakışma algılama desteği yoktur.

Makine yapılandırması, bir hizmette modül veya yapılandırma yayımlamayı ya da bir hizmette derlemeyi gerektirmez. Bunun yerine, amaca yönelik araçlar kullanarak içerik geliştirip test edebilir ve içeriğin makinenin HTTPS üzerinden ulaşabileceği her yerde yayımlarsınız (genellikle Azure Blob Depolama).

Bir süre için her iki hizmette de makine kullanmaya karar verirseniz teknik bir engel yoktur. İki hizmet birbirinden bağımsızdır.

Azure Otomasyonu’ndan içeriği dışarı aktarma

makine yapılandırması için içerik paketleri oluşturduğunuz, test ettiğiniz ve yayımladığınız bir geliştirme ortamına Azure Otomasyonu Durum Yapılandırması'ndan içerik bulup dışarı aktararak işe başlayın.

Yapılandırmalar

Yapılandırma betiklerini yalnızca Azure Otomasyonu dışarı aktarabilirsiniz. Düğüm yapılandırmalarını veya derlenmiş MOF dosyalarını dışarı aktarmak mümkün değildir. MOF dosyalarını doğrudan Otomasyon Hesabı'na yayımladıysanız ve artık özgün dosyaya erişiminiz yoksa, özel yapılandırma betiklerinizden yeniden derlemeniz gerekir. Özgün yapılandırmayı bulamıyorsanız yeniden yazmanız gerekir.

yapılandırma betiklerini Azure Otomasyonu dışarı aktarmak için, önce yapılandırmaları ve Otomasyon Hesabının dağıtılacağı Kaynak Grubunun adını içeren Azure Otomasyonu hesabını tanımlayın.

Az.Automation PowerShell modülünü yükleyin.

Install-Module -Name Az.Automation

Ardından Otomasyon Hesaplarınızı ve dağıtıldıkları Kaynak Grubunu tanımlamak için komutunu kullanın Get-AzAutomationAccount . ResourceGroupName ve AutomationAccountName özellikleri sonraki adımlar için önemlidir.

Get-AzAutomationAccount
SubscriptionId        : <your-subscription-id>
ResourceGroupName     : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location              : centralus
State                 :
Plan                  :
CreationTime          : 6/30/2021 11:56:17 AM -05:00
LastModifiedTime      : 6/30/2021 11:56:17 AM -05:00
LastModifiedBy        :
Tags                  : {}

Otomasyon Hesabınızdaki yapılandırmaları keşfedin. Çıktının yapılandırma başına bir girişi vardır. Çok sayıda bilginiz varsa, daha kolay çalışabilmek için bilgileri bir değişken olarak depolayın.

$getParams = @{
    ResourceGroupName     = '<your-resource-group-name>'
    AutomationAccountName = '<your-automation-account-name>'
}

Get-AzAutomationDscConfiguration @getParams
ResourceGroupName     : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location              : centralus
State                 : Published
Name                  : <your-configuration-name>
Tags                  : {}
CreationTime          : 6/30/2021 12:18:26 PM -05:00
LastModifiedTime      : 6/30/2021 12:18:26 PM -05:00
Description           :
Parameters            : {}
LogVerbose            : False

Son olarak, komutunu Export-AzAutomationDscConfigurationkullanarak her yapılandırmayı yerel bir betik dosyasına aktarın. Sonuçta elde edilen dosya adı desenini \ConfigurationName.ps1kullanır.

$exportParams = @{
    OutputFolder          = '<location-on-your-machine>'
    ResourceGroupName     = '<your-resource-group-name>'
    AutomationAccountName = '<your-automation-account-name>'
    Name                  = '<your-configuration-name>'
}
Export-AzAutomationDscConfiguration @exportParams
UnixMode   User             Group                 LastWriteTime           Size Name
--------   ----             -----                 -------------           ---- ----
                                               12/31/1600 18:09

PowerShell işlem hattını kullanarak yapılandırmaları dışarı aktarma

Hesaplarınızı ve yapılandırma sayısını keşfettikten sonra, tüm yapılandırmaları makinenizdeki yerel bir klasöre aktarmak isteyebilirsiniz. Bu işlemi otomatikleştirmek için önceki örneklerde yer alan her komutun çıkışını sonraki komuta yöneltin.

Örnek beş yapılandırmayı dışarı aktarır. Çıkış deseni, başarının tek göstergesidir.

Get-AzAutomationAccount |
    Get-AzAutomationDscConfiguration |
    Export-AzAutomationDSCConfiguration -OutputFolder <location on your machine>
UnixMode   User             Group                 LastWriteTime           Size Name
--------   ----             -----                 -------------           ---- ----
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09

Karmaşık yapılandırma dosyalarını ayrıştırmayı göz önünde bulundurun

Makine yapılandırması, makine başına birden fazla yapılandırmayı yönetebilir. Azure Otomasyonu Durum Yapılandırması için yazılan birçok yapılandırma, makine başına tek bir yapılandırmayı yönetme sınırlamasını kabul etti. Makine yapılandırması tarafından sunulan genişletilmiş özelliklerden yararlanmak için, büyük yapılandırma dosyalarını her birinin belirli bir senaryoyu işlediği daha küçük yapılandırmalara bölebilirsiniz.

Makine yapılandırmasında yapılandırmaların sıralanma sırasını denetlemek için düzenleme yoktur. Sırayla gerçekleşmesi gerekiyorsa yapılandırmadaki adımları tek bir pakette birlikte tutun.

Modül

modülleri Azure Otomasyonu dışarı aktarmak veya hangi yapılandırmaların hangi modül ve sürümleri gerektirdiğini otomatik olarak ilişkilendirmek mümkün değildir. Yeni bir makine yapılandırma paketi oluşturmak için modüllerin yerel ortamınızda olması gerekir. Geçiş için ihtiyacınız olan modüllerin listesini oluşturmak için PowerShell'i kullanarak modüllerin adı ve sürümü için Azure Otomasyonu sorgulama yapın.

Özel yazılmış ve yalnızca özel geliştirme ortamınızda bulunan modülleri kullanıyorsanız, bunları Azure Otomasyonu dışarı aktarmak mümkün değildir.

Ortamınızda bir yapılandırma için gerekli olan özel modülü bulamıyorsanız ve hesapta yapılandırmayı derleyemezsiniz. Bu nedenle, yapılandırmayı geçiremezsiniz.

Azure Otomasyonu'de içeri aktarılan modülleri listeleme

Otomasyon hesabınızda yüklü tüm modüllerin listesini almak için komutunu kullanın Get-AzAutomationModule . IsGlobal özelliği, modülün her zaman Azure Otomasyonu yerleşik olup olmadığını veya hesaba yayımlandığını bildirir.

Örneğin, hesaplarınızdan herhangi birinde yayımlanan tüm modüllerin listesini oluşturmak için.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $false

PowerShell Galerisi, genel kullanıma açık modüllerle ilgili ayrıntıları bulma konusunda yardımcı olarak da kullanabilirsiniz. Aşağıdaki örnekte, yeni Otomasyon Hesaplarında yerleşik olarak bulunan ve DSC kaynaklarını içeren modüller listelenir.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $true |
    Find-Module -ErrorAction SilentlyContinue |
    Where-Object {'' -ne $_.Includes.DscResource} |
    Select-Object -Property Name, Version -Unique |
    Format-Table -AutoSize
Name                       Version
----                       -------
AuditPolicyDsc             1.4.0
ComputerManagementDsc      8.4.0
PSDscResources             2.12.0
SecurityPolicyDsc          2.10.0
xDSCDomainjoin             1.2.23
xPowerShellExecutionPolicy 3.1.0.0
xRemoteDesktopAdmin        1.1.0.0

Modüller PowerShell Galerisi içeri aktarıldıysa, çıkışını doğrudan öğesine Find-Module aktarabilirsinizInstall-Module. Çıktıyı komutlar arasında filtrelemek, PowerShell Galerisi kullanılabilir durumdaysa şu anda Otomasyon Hesabında bulunan tüm modülleri içeren bir geliştirici ortamı yüklemek için bir çözüm sağlar.

Akışı yerel ortamınıza PowerShellGet deposu olarak kaydettiyseniz, özel bir NuGet akışından modülleri çekmek için de aynı yaklaşımı kullanabilirsiniz.

Find-Module Bu örnekteki komut hataları gizlemez, yani galeride bulunmayan modüller hata iletisi döndürür.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $false |
    Find-Module |
    Where-Object { '' -ne $_.Includes.DscResource } |
    Install-Module

Modül gereksinimleri için yapılandırma betiklerini inceleme

Yapılandırma betiklerini Azure Otomasyonu dışarı aktardıysanız, her yapılandırmayı bir MOF dosyasına derlemek için hangi modüllerin gerekli olduğu hakkındaki ayrıntılar için içeriği de gözden geçirebilirsiniz. Bu yaklaşım yalnızca modüllerin kaldırıldığı Otomasyon Hesaplarınızda yapılandırmalar bulduğunuzda gereklidir. Yapılandırmalar artık makineler için yararlı olmayacak, ancak yine de hesapta olabilir.

Her dosyanın en üstüne doğru öğesini içeren Import-DscResourcebir satır arayın. Bu komut yalnızca yapılandırma içinde geçerlidir ve derleme sırasında modülleri yüklemek için kullanılır.

Örneğin, WindowsIISServerConfig PowerShell Galerisi yapılandırmada bu örnekteki satırlar bulunur.

configuration WindowsIISServerConfig
{

Import-DscResource -ModuleName @{ModuleName = 'xWebAdministration';ModuleVersion = '1.19.0.0'}
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

Yapılandırma için xWeb Yönetici istration modülünün 1.19.0.0 sürümüne ve PSDesiredStateConfiguration modülüne sahip olmanız gerekir.

Azure makine yapılandırmasında içeriği test edin

makine yapılandırmasıyla Azure Otomasyonu Durum Yapılandırması'ndaki içeriğinizi kullanıp kullanamayacağınızı değerlendirmek için Özel makine yapılandırma paketi yapıtları oluşturma sayfasındaki adım adım öğreticiyi izleyin.

Yapılandırma yazma adımına ulaştığınızda, MOF dosyası oluşturan yapılandırma betiği, Azure Otomasyonu Durum Yapılandırması'ndan dışarı aktardığınız betiklerden biri olmalıdır. Yapılandırmayı bir MOF dosyasına derleyip bir makine yapılandırma paketi oluşturabilmeniz için önce ortamınızda gerekli PowerShell modüllerinin yüklü olması gerekir.

Bir modül makine yapılandırmasıyla çalışmazsa ne olur?

Bazı modüllerde makine yapılandırmasıyla ilgili uyumluluk sorunları olabilir. En yaygın sorunlar .NET framework ile .NET core karşılaştırması ile ilgilidir. Windows PowerShell 5.1 ile PowerShell 7.x arasındaki farklar sayfasında ayrıntılı teknik bilgilere ulaşabilirsiniz.

Uyumluluk sorunlarını çözmenin bir seçeneği, Komutunu çalıştırarak powershell.exePowerShell 7'de içeri aktarılan bir modülün içinden Windows PowerShell'de komut çalıştırmaktır. Bu tekniği kullanan örnek modülü, Windows DSC Yapılandırması'nın durumunu denetlemek için kullanıldığı Azure-policy deposunda gözden geçirebilirsiniz.

Örnekte küçük bir kavram kanıtı da gösterilmektedir.

# example function that could be loaded from module
function New-TaskResolvedInPWSH7 {
    # runs the fictitious command 'Get-myNotCompatibleCommand' in Windows PowerShell
    $compatObject = & powershell.exe -NoProfile -NonInteractive -Command {
        Get-myNotCompatibleCommand
    }
    # resulting object can be used in PowerShell 7
    return $compatObject
}

Geçiş yaptığım tüm modüllerde Get-TargetResource'a Reasons özelliğini eklemem gerekiyor mu?

Nedenler özelliğinin uygulanması, Azure portalından yapılandırma atamasının sonuçlarını görüntülerken daha iyi bir deneyim sağlar. Bir modüldeki Get yöntem Nedenler içermiyorsa, yöntemi tarafından Get döndürülen özelliklerden ayrıntılarla genel çıkış döndürülür. Bu nedenle, geçiş için isteğe bağlıdır.

Makineler

Makine yapılandırmasında Azure Otomasyonu Durum Yapılandırması'ndan gelen içeriği test ettikten sonra makineleri geçirmek için bir plan geliştirin.

Azure Otomasyonu Durum Yapılandırması hem Azure'daki sanal makineler hem de Azure dışında bulunan hibrit makineler için kullanılabilir. Bu senaryoların her birini farklı adımları kullanarak planlamanız gerekir.

Azure VM’leri

Azure sanal makinelerinin Azure'da zaten bir kaynağı vardır; bu da onları bir yapılandırmayla ilişkilendiren makine yapılandırma atamaları için hazır oldukları anlamına gelir. Azure sanal makinelerini geçirmek için üst düzey görevler, bunları Azure Otomasyonu Durum Yapılandırması'ndan kaldırmak ve ardından makine yapılandırmasını kullanarak yapılandırmaları atamaktır.

Bir makineyi Azure Otomasyonu Durum Yapılandırması'ndan kaldırmak için Otomasyon Durum Yapılandırması'ndan yapılandırma ve düğüm kaldırma sayfasındaki adımları izleyin.

Makine yapılandırmasını kullanarak yapılandırma atamak için, Azure İlkesi Hızlı Başlangıçlar'daki adımları izleyin. Örneğin, Hızlı Başlangıç: Uyumlu olmayan kaynakları tanımlamak için ilke ataması oluşturma. İlke tanımını seçerken 6. adımda, Azure Otomasyonu Durum Yapılandırması'ndan geçirdiğiniz bir yapılandırmayı uygulayan tanımı seçin.

Hibrit makineler

Azure dışındaki makineler Azure Otomasyonu Durum Yapılandırmasına kaydedilebilir, ancak Azure'da makine kaynakları yoktur. Makinenin içindeki Yerel Configuration Manager (LCM) hizmeti, Azure Otomasyonu bağlantısını işler. Düğümün kaydı, Azure Otomasyonu sağlayıcı türünde bir kaynak olarak yönetilir.

Bir makineyi Azure Otomasyonu Durum Yapılandırması'ndan kaldırmadan önce her düğümü Azure Arc özellikli bir sunucu olarak ekleyin. Azure Arc'a ekleme, Azure İlkesi makineyi yönetebilmesi için Azure'da bir makine kaynağı oluşturur. Makine istediğiniz zaman Azure Arc'a eklenebilir, ancak işlemi otomatikleştirmek için Azure Otomasyonu Durum Yapılandırması'nı kullanabilirsiniz.

İçeriği dışarı aktarırken karşılaşılan sorunları giderme

Bilinen sorunlar hakkındaki ayrıntılar bu bölümde verilmiştir.

Yapılandırmaların dışarı aktarılması, dosya adında "\" karakteriyle sonuçlanıyor

macOS ve Linux üzerinde PowerShell kullanırken, tarafından Export-AzAutomationDSCConfigurationçıktısı olan dosya adlarıyla ilgili sorunlarla karşılaşabilirsiniz.

Geçici çözüm olarak, AADSCConfigContent adlı PowerShell Galerisi bir modül yayımlanmıştır. Modülde, hizmete REST isteğinde bulunarak Azure Otomasyonu'de depolanan bir yapılandırmanın içeriğini dışarı aktaran tek bir komut vardır.

Sonraki adımlar

  • Özel makine yapılandırma paketi geliştirme.
  • Ortamınızın ölçeğinde yönetimi için bir Azure İlkesi tanımı oluşturmak için GuestConfiguration modülünü kullanın.
  • [Özel ilke tanımınızı atama] [20] Azure portalını kullanarak.
  • [Makine yapılandırması için uyumluluk ayrıntıları][21] ilke atamalarını görüntülemeyi öğrenin.