Linux için DSC uzantısı (Microsoft.OSTCExtensions.DSCForLinux)

Desired State Configuration (DSC), KOD olarak yapılandırma ile IT ve geliştirme altyapınızı yönetmek için kullanabileceğiniz bir yönetim platformudur.

Not

Linux için DSC uzantısı ve Linux için Log Analytics sanal makine uzantısı şu anda bir çakışmaya neden olur ve yan yana yapılandırmada desteklenmiyor. İki çözümü aynı VM'de birlikte kullanmayın.

DSCForLinux uzantısı Microsoft tarafından yayımlanır ve desteklanır. Uzantı, OMI ve DSC aracılarını Azure sanal makinelerine yüklür. DSC uzantısı aşağıdaki eylemleri de gerçekleştirin:

  • Azure Otomasyonu hizmetten yapılandırmaları çekmek için Linux VM'yi bir Azure Otomasyonu hesabına kaydetme (ExtensionAction'yı Kaydetme).
  • MOF yapılandırmalarını Linux VM'ye (Push ExtensionAction) itme.
  • Çekme düğümü yapılandırmasına (Pull ExtensionAction) göre çekme sunucusunu yapılandırmak için Linux VM'ye meta MOF yapılandırması uygulama.
  • Linux VM'ye özel DSC modülleri yükleme (ExtensionAction'yı Yükleme).
  • Linux VM'den özel DSC modüllerini kaldırma (ExtensionAction'ı Kaldır).

Önkoşullar

İşletim sistemi

Linux çalıştıran düğümler için DSC Linux uzantısı, PowerShell DSC belgelerinde listelenen tüm Linux dağıtımlarını destekler.

İnternet bağlantısı

DSCForLinux uzantısı, hedef sanal makinenin İnternet'e bağlanmalarını gerektirir. Örneğin, Register uzantısı Otomasyon hizmetine bağlantı gerektirir. Çekme, Çekme, Yükleme gibi diğer eylemler için Azure Depolama ve GitHub. Müşteri tarafından sağlanan ayarlara bağlıdır.

Uzantı şeması

Genel yapılandırma

Desteklenen tüm genel yapılandırma parametreleri şu şekildedir:

  • FileUri: (isteğe bağlı, dize) MOF dosyasının, meta MOF dosyasının veya özel kaynak zip dosyasının uri'si.
  • ResourceName: (isteğe bağlı, dize) Özel kaynak modülünün adı.
  • ExtensionAction: (isteğe bağlı, dize) Uzantının ne yaptığını belirtir. Geçerli değerler Register, Push, Pull, Install ve Remove değerleridir. Belirtilmezse, varsayılan olarak Bir Anında İşlem olarak kabul edilir.
  • NodeConfigurationName: (isteğe bağlı, dize) Uygulanacak düğüm yapılandırmasının adı.
  • RefreshFrequencyMins: (isteğe bağlı, int) DSC'nin çekme sunucusundan yapılandırmayı almak için ne sıklıkta (dakika) denemesi olduğunu belirtir. Çekme sunucusundaki yapılandırma hedef düğümdeki yapılandırmadan farklı ise, bekleyen depoya kopyalanır ve uygulanır.
  • ConfigurationMode: (isteğe bağlı, dize) DSC'nin yapılandırmayı nasıl uygulayacaklarını belirtir. Geçerli değerler ApplyOnly, ApplyAndMonitor ve ApplyAndAutoCorrect değerleridir.
  • ConfigurationModeFrequencyMins: (isteğe bağlı, int) DSC'nin yapılandırmanın istenen durumda olduğunu ne sıklıkta (dakika olarak) sağlar?

Not

2.3'den önceki bir sürümü kullanırsanız mod parametresi ExtensionAction ile aynıdır. Mod aşırı yüklenmiş bir terim gibi görünüyor. Karışıklığı önlemek için ExtensionAction 2.3 sürümünden itibaren kullanılır. Geriye dönük uyumluluk için uzantı hem modu hem de ExtensionAction'yı destekler.

Korumalı yapılandırma

Desteklenen tüm korumalı yapılandırma parametreleri şu şekildedir:

  • StorageAccountName: (isteğe bağlı, dize) Dosyayı içeren depolama hesabının adı
  • StorageAccountKey: (isteğe bağlı, dize) Dosyayı içeren depolama hesabının anahtarı
  • RegistrationUrl: (isteğe bağlı, dize) Azure Otomasyonu URL'si
  • RegistrationKey: (isteğe bağlı, dize) Azure Otomasyonu anahtarı

Senaryolar

Bir Azure Otomasyonu kaydetme

protected.js

{
  "RegistrationUrl": "<azure-automation-account-url>",
  "RegistrationKey": "<azure-automation-account-key>"
}

public.js

{
  "ExtensionAction" : "Register",
  "NodeConfigurationName" : "<node-configuration-name>",
  "RefreshFrequencyMins" : "<value>",
  "ConfigurationMode" : "<ApplyAndMonitor | ApplyAndAutoCorrect | ApplyOnly>",
  "ConfigurationModeFrequencyMins" : "<value>"
}

PowerShell biçimi

$privateConfig = '{
  "RegistrationUrl": "<azure-automation-account-url>",
  "RegistrationKey": "<azure-automation-account-key>"
}'

$publicConfig = '{
  "ExtensionAction" : "Register",
  "NodeConfigurationName": "<node-configuration-name>",
  "RefreshFrequencyMins": "<value>",
  "ConfigurationMode": "<ApplyAndMonitor | ApplyAndAutoCorrect | ApplyOnly>",
  "ConfigurationModeFrequencyMins": "<value>"
}'

VM'ye bir MOF yapılandırma dosyası (Azure depolama hesabında) uygulama

protected.js

{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}

public.js

{
  "FileUri": "<mof-file-uri>",
  "ExtensionAction": "Push"
}

PowerShell biçimi

$privateConfig = '{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}'

$publicConfig = '{
  "FileUri": "<mof-file-uri>",
  "ExtensionAction": "Push"
}'

VM'ye bir MOF yapılandırma dosyası (genel depolamada) uygulama

public.js

{
  "FileUri": "<mof-file-uri>"
}

PowerShell biçimi

$publicConfig = '{
  "FileUri": "<mof-file-uri>"
}'

VM'ye meta MOF yapılandırma dosyası (Azure depolama hesabında) uygulama

protected.js

{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}

public.js

{
  "ExtensionAction": "Pull",
  "FileUri": "<meta-mof-file-uri>"
}

PowerShell biçimi

$privateConfig = '{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}'

$publicConfig = '{
  "ExtensionAction": "Pull",
  "FileUri": "<meta-mof-file-uri>"
}'

VM'ye meta MOF yapılandırma dosyası (genel depolama alanı) uygulama

public.js

{
  "FileUri": "<meta-mof-file-uri>",
  "ExtensionAction": "Pull"
}

PowerShell biçimi

$publicConfig = '{
  "FileUri": "<meta-mof-file-uri>",
  "ExtensionAction": "Pull"
}'

VM'ye özel bir kaynak modülü (Azure depolama hesabında zip dosyası) yükleme

protected.js

{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}

public.js

{
  "ExtensionAction": "Install",
  "FileUri": "<resource-zip-file-uri>"
}

PowerShell biçimi

$privateConfig = '{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}'

$publicConfig = '{
  "ExtensionAction": "Install",
  "FileUri": "<resource-zip-file-uri>"
}'

VM'ye özel bir kaynak modülü (genel depolamada bir zip dosyası) yükleme

public.js

{
  "ExtensionAction": "Install",
  "FileUri": "<resource-zip-file-uri>"
}

PowerShell biçimi

$publicConfig = '{
  "ExtensionAction": "Install",
  "FileUri": "<resource-zip-file-uri>"
}'

Vm'den özel kaynak modülünü kaldırma

public.js

{
  "ResourceName": "<resource-name>",
  "ExtensionAction": "Remove"
}

PowerShell biçimi

$publicConfig = '{
  "ResourceName": "<resource-name>",
  "ExtensionAction": "Remove"
}'

Şablon dağıtımı

Azure VM uzantıları, sanal makine Azure Resource Manager dağıtılabilir. Şablonlar, dağıtım sonrası yapılandırma gerektiren bir veya daha fazla sanal makine dağıtıyorsanız (örneğin, Azure Otomasyonu.

Örnek Resource Manager şablonu dsc-linux-azure-storage-on-ubuntu ve dsc-linux-public-storage-on-ubuntu'dur.

Uygulama şablonu hakkında daha fazla Azure Resource Manager için bkz. Azure Resource Manager şablonları yazma.

Azure CLI dağıtımı

[Azure CLI][azure-cli] kullanma

DSCForLinux uzantısını dağıtmadan önce, bölüm 3'te farklı senaryolara göre ve public.json protected.json yapılandırmanız gerekir.

Klasik

Önemli

Klasik VM 'Ler 1 Mart 2023 ' de kullanımdan kaldırılacaktır.

IaaS kaynaklarını ASM 'den kullanıyorsanız, lütfen geçişinizi 1 Mart 2023 ' den tamamlayabilirsiniz. Azure Resource Manager ' deki pek çok özellik geliştirmelerinden faydalanmak için anahtarı daha önce bir daha erken yapmanız önerilir.

Daha fazla bilgi için bkz. IaaS kaynaklarınızı 1 mart 2023 ' e kadar Azure Resource Manager geçirme.

Klasik dağıtım modu, Azure Hizmet Yönetimi modu olarak da adlandırılan bir moddur. Şu çalıştırmayı çalıştırarak bu anahtara geçerek geçiş yapmak için:

$ azure config mode asm

Aşağıdakini çalıştırarak DSCForLinux uzantısını dağıtın:

$ azure vm extension set <vm-name> DSCForLinux Microsoft.OSTCExtensions <version> \
--private-config-path protected.json --public-config-path public.json

Kullanılabilir en son uzantı sürümünü öğrenmek için şu çalıştırın:

$ azure vm extension list

Resource Manager

Şu çalıştırarak Azure Resource Manager moduna geçebilirsiniz:

$ azure config mode arm

Aşağıdakini çalıştırarak DSCForLinux uzantısını dağıtın:

$ azure vm extension set <resource-group> <vm-name> \
DSCForLinux Microsoft.OSTCExtensions <version> \
--private-config-path protected.json --public-config-path public.json

Not

Azure Resource Manager azure vm extension list modunda şu an için kullanılamaz.

[Azure PowerShell][azure-powershell] kullanın

Klasik

Azure Hizmet Yönetimi modunda şu çalıştırarak Azure hesabınızla oturum açın:

Add-AzureAccount

Ayrıca aşağıdakini çalıştırarak DSCForLinux uzantısını dağıtın:

$vmname = '<vm-name>'
$vm = Get-AzureVM -ServiceName $vmname -Name $vmname
$extensionName = 'DSCForLinux'
$publisher = 'Microsoft.OSTCExtensions'
$version = '< version>'

Önceki bölümdeki farklı $privateConfig $publicConfig ve kaynak ayarlarının içeriğini değiştirme.

$privateConfig = '{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}'
$publicConfig = '{
  "ExtensionAction": "Push",
  "FileUri": "<mof-file-uri>"
}'
Set-AzureVMExtension -ExtensionName $extensionName -VM $vm -Publisher $publisher `
  -Version $version -PrivateConfiguration $privateConfig `
  -PublicConfiguration $publicConfig | Update-AzureVM

Resource Manager

Şu çalıştırarak Azure Azure Resource Manager oturum açın:

Login-AzAccount

Azure PowerShell ile Azure Resource Manager hakkında daha fazla bilgi edinmek için bkz. Azure PowerShell..

Şu işlemi çalıştırarak DSCForLinux uzantısını dağıtabilirsiniz:

$rgName = '<resource-group-name>'
$vmName = '<vm-name>'
$location = '< location>'
$extensionName = 'DSCForLinux'
$publisher = 'Microsoft.OSTCExtensions'
$version = '< version>'

$PrivateConfig ve $publicConfig içeriğini önceki bölümdeki farklı senaryolara göre değiştirin.

$privateConfig = '{
  "StorageAccountName": "<storage-account-name>",
  "StorageAccountKey": "<storage-account-key>"
}'
$publicConfig = '{
  "ExtensionAction": "Push",
  "FileUri": "<mof-file-uri>"
}'
Set-AzVMExtension -ResourceGroupName $rgName -VMName $vmName -Location $location `
  -Name $extensionName -Publisher $publisher -ExtensionType $extensionName `
  -TypeHandlerVersion $version -SettingString $publicConfig -ProtectedSettingString $privateConfig

Sorun giderme ve destek

Sorun giderme

Uzantı dağıtımlarının durumuyla ilgili veriler Azure portal ve Azure CLı kullanılarak alınabilir. Belirli bir VM için uzantıların dağıtım durumunu görmek için, Azure CLı kullanarak aşağıdaki komutu çalıştırın.

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

Uzantı yürütme çıkışı aşağıdaki dosyaya kaydedilir:

/var/log/azure/<extension-name>/<version>/extension.log file.

Hata kodu: 51, desteklenmeyen dağıtım veya desteklenmeyen uzantı eylemini temsil eder. Bazı durumlarda, daha yüksek bir OMı sürümü makinede zaten mevcutsa DSC Linux uzantısı OMı 'yi yükleyemez. [hata yanıtı: (000003) Indirgeme izin verilmiyor]

Destek

Bu makalenin herhangi bir noktasında daha fazla yardıma ihtiyacınız varsa, MSDN Azure ve Stack Overflow forumlarındaAzure uzmanlarıyla iletişim kurun. Alternatif olarak, bir Azure destek olayı da oluşturabilirsiniz. Azure destek sitesinegidin ve Destek Al' ı seçin. Azure desteğini kullanma hakkında daha fazla bilgi için, Microsoft Azure Support sssmakalesini okuyun.

Sonraki adımlar

Uzantılar hakkında daha fazla bilgi için bkz. Linux Için sanal makine uzantıları ve özellikleri.