DSC-Erweiterung für Linux (Microsoft.OSTCExtensions.DSCForLinux)DSC extension for Linux (Microsoft.OSTCExtensions.DSCForLinux)

Desired State Configuration (DSC) ist eine Verwaltungsplattform, die Ihnen das Verwalten Ihrer IT- und Entwicklungsinfrastruktur per Konfiguration in Form von Code ermöglicht.Desired State Configuration (DSC) is a management platform that you can use to manage your IT and development infrastructure with configuration as code.

Hinweis

Die DSC-Erweiterung für Linux und die Log Analytics-VM-Erweiterung für Linux stehen zurzeit im Konflikt miteinander, und parallele Konfigurationen der beiden werden nicht unterstützt.The DSC extension for Linux and the Log Analytics virtual machine extension for Linux currently present a conflict and aren't supported in a side-by-side configuration. Verwenden Sie nicht beide Lösungen zusammen auf der gleichen VM.Don't use the two solutions together on the same VM.

Die DSCForLinux-Erweiterung wird von Microsoft veröffentlicht und unterstützt.The DSCForLinux extension is published and supported by Microsoft. Die Erweiterung installiert den OMI- und DSC-Agent auf virtuellen Azure-Computern.The extension installs the OMI and DSC agent on Azure virtual machines. Die DSC-Erweiterung kann auch die folgenden Aktionen ausführen:The DSC extension can also do the following actions:

  • Registrieren des virtuellen Linux-Computers beim Azure Automation-Konto, um Konfigurationen vom Azure Automation-Dienst zu pullen (Register-ExtensionAction)Register the Linux VM to an Azure Automation account to pull configurations from the Azure Automation service (Register ExtensionAction).
  • Pushen von MOF-Konfigurationen zum virtuellen Linux-Computer (Push-ExtensionAction)Push MOF configurations to the Linux VM (Push ExtensionAction).
  • Anwenden der MOF-Metakonfiguration auf den virtuellen Linux-Computer, um den Pullserver so zu konfigurieren, dass die Knotenkonfiguration gepullt wird (Pull-ExtensionAction)Apply meta MOF configuration to the Linux VM to configure a pull server in order to pull node configuration (Pull ExtensionAction).
  • Installieren von benutzerdefinierten DSC-Modulen für den virtuellen Linux-Computer (Install-ExtensionAction)Install custom DSC modules to the Linux VM (Install ExtensionAction).
  • Entfernen von benutzerdefinierten DSC-Modulen für den virtuellen Linux-Computer (Remove-ExtensionAction)Remove custom DSC modules from the Linux VM (Remove ExtensionAction).

VoraussetzungenPrerequisites

BetriebssystemOperating system

Für Linux-Knoten unterstützt die DSC-Linux-Erweiterung alle in der PowerShell-DSC-Dokumentation aufgeführten Linux-Distributionen.For nodes running Linux, the DSC Linux extension supports all the Linux distributions listed in the PowerShell DSC documentation.

InternetkonnektivitätInternet connectivity

Um die DSCForLinux-Erweiterung verwenden zu können, muss der virtuelle Zielcomputer mit dem Internet verbunden sein.The DSCForLinux extension requires the target virtual machine to be connected to the internet. Die Register-Erweiterung beispielsweise setzt Konnektivität mit dem Automation-Dienst voraus.For example, the Register extension requires connectivity to the Automation service. Für andere Aktionen (z. B. Pull, Push, Install) sind Verbindungen mit Azure Storage und GitHub erforderlich.For other actions such as Pull, Pull, Install requires connectivity to Azure Storage and GitHub. Entscheidend sind die vom Kunden bereitgestellten Einstellungen.It depends on settings provided by the customer.

ErweiterungsschemaExtension schema

Öffentliche KonfigurationPublic configuration

Die folgenden öffentlichen Konfigurationsparameter werden unterstützt:Here are all the supported public configuration parameters:

  • FileUri: (optional, Zeichenfolge) URI der MOF-Datei, Meta-MOF-Datei oder benutzerdefinierten Ressourcen-ZIP-Datei.FileUri: (optional, string) The uri of the MOF file, meta MOF file, or custom resource zip file.
  • ResourceName: (optional, Zeichenfolge) Name des benutzerdefinierten Ressourcenmoduls.ResourceName: (optional, string) The name of the custom resource module.
  • ExtensionAction: (optional, Zeichenfolge) Gibt an, was eine Erweiterung erwirkt.ExtensionAction: (optional, string) Specifies what an extension does. Gültige Werte: Register, Push, Pull, Install und Remove.Valid values are Register, Push, Pull, Install, and Remove. Wenn nicht angegeben, wird standardmäßig eine Push-Aktion angenommen.If not specified, it's considered a Push Action by default.
  • NodeConfigurationName: (optional, Zeichenfolge) Name einer anzuwendenden Knotenkonfiguration.NodeConfigurationName: (optional, string) The name of a node configuration to apply.
  • RefreshFrequencyMins: (optional, Int) Gibt an, wie oft (in Minuten) DSC versucht, die Konfiguration vom Pullserver abzurufen.RefreshFrequencyMins: (optional, int) Specifies how often (in minutes) that DSC attempts to obtain the configuration from the pull server. Wenn sich die Konfiguration auf dem Pullserver und die aktuelle auf dem Zielknoten unterscheiden, wird sie auf den ausstehenden Speicher kopiert und angewendet.If configuration on the pull server differs from the current one on the target node, it's copied to the pending store and applied.
  • ConfigurationMode: (optional, Zeichenfolge) Gibt an, wie die Konfiguration von DSC angewendet werden soll.ConfigurationMode: (optional, string) Specifies how DSC should apply the configuration. Mögliche Werte sind ApplyOnly, ApplyAndMonitior und ApplyAndAutoCorrect.Valid values are ApplyOnly, ApplyAndMonitor, and ApplyAndAutoCorrect.
  • ConfigurationModeFrequencyMins: (optional, Int) Gibt an, wie häufig (in Minuten) DSC wird sicherstellt, dass die Konfiguration im gewünschten Zustand ist.ConfigurationModeFrequencyMins: (optional, int) Specifies how often (in minutes) DSC ensures that the configuration is in the desired state.

Hinweis

Wenn Sie eine frühere Version als 2.3 verwenden, entspricht der Mode-Parameter ExtensionAction.If you use a version earlier than 2.3, the mode parameter is the same as ExtensionAction. „Mode“ scheint ein überladener Begriff zu sein.Mode seems to be an overloaded term. Um Verwechslungen zu vermeiden, wird ab Version 2.3 ExtensionAction verwendet.To avoid confusion, ExtensionAction is used from version 2.3 onward. Um Abwärtskompatibilität zu gewährleisten, unterstützt die Erweiterung Modus und ExtensionAction.For backward compatibility, the extension supports both mode and ExtensionAction.

Geschützte KonfigurationProtected configuration

Die folgenden geschützten Konfigurationsparameter werden unterstützt:Here are all the supported protected configuration parameters:

  • StorageAccountName: (optional, Zeichenfolge) Name des Speicherkontos, das die Datei enthält.StorageAccountName: (optional, string) The name of the storage account that contains the file
  • StorageAccountKey: (optional, Zeichenfolge) Schlüssel des Speicherkontos, das die Datei enthält.StorageAccountKey: (optional, string) The key of the storage account that contains the file
  • RegistrationUrl: (optional, Zeichenfolge) URL des Azure Automation-Kontos.RegistrationUrl: (optional, string) The URL of the Azure Automation account
  • RegistrationKey: (optional, Zeichenfolge) Zugriffsschlüssel des Azure Automation-Kontos.RegistrationKey: (optional, string) The access key of the Azure Automation account

SzenarienScenarios

Registrieren eines Azure Automation-KontosRegister an Azure Automation account

protected.jsonprotected.json

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

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

$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>"
}'

Anwenden einer MOF-Konfigurationsdatei (in einem Azure-Speicherkonto) auf den virtuellen ComputerApply an MOF configuration file (in an Azure storage account) to the VM

protected.jsonprotected.json

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

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

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

Anwenden einer MOF-Konfigurationsdatei (im öffentlichen Speicher) auf den virtuellen ComputerApply an MOF configuration file (in public storage) to the VM

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

Anwenden einer Meta-MOF-Konfigurationsdatei (in einem Azure-Speicherkonto) auf den virtuellen ComputerApply a meta MOF configuration file (in an Azure storage account) to the VM

protected.jsonprotected.json

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

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

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

Anwenden einer MOF-Metakonfigurationsdatei (im öffentlichen Speicher) auf den virtuellen ComputerApply a meta MOF configuration file (in public storage) to the VM

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

Installieren eines benutzerdefinierten Ressourcenmoduls (ZIP-Datei im Azure Storage-Konto) auf den virtuellen ComputerInstall a custom resource module (a zip file in an Azure storage account) to the VM

protected.jsonprotected.json

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

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

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

Installieren eines benutzerdefinierten Ressourcenmoduls (ZIP-Datei im Azure Storage-Konto) auf dem virtuellen ComputerInstall a custom resource module (a zip file in public storage) to the VM

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

Entfernen eines benutzerdefinierten Ressourcenmoduls vom virtuellen ComputerRemove a custom resource module from the VM

public.jsonpublic.json

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

PowerShell-FormatPowerShell format

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

Bereitstellung von VorlagenTemplate deployment

Azure-VM-Erweiterungen können mithilfe von Azure Resource Manager-Vorlagen bereitgestellt werden.Azure VM extensions can be deployed with Azure Resource Manager templates. Vorlagen sind ideal, wenn Sie mindestens einen virtuellen Computer bereitstellen, der eine Konfiguration nach der Bereitstellung erfordert, wie z. B. Onboarding bei Azure Automation.Templates are ideal when you deploy one or more virtual machines that require post-deployment configuration, such as onboarding to Azure Automation.

Die Resource Manager-Beispielvorlage ist 201-dsc-linux-azure-storage-on-ubuntu und 201-dsc-linux-public-storage-on-ubuntu.The sample Resource Manager template is 201-dsc-linux-azure-storage-on-ubuntu and 201-dsc-linux-public-storage-on-ubuntu.

Weitere Informationen zu den Azure Ressource Manager-Vorlagen finden Sie unter Azure Resource Manager-Vorlagen verfassenFor more information about the Azure Resource Manager template, see Authoring Azure Resource Manager templates.

Bereitstellung mithilfe der Azure-BefehlszeilenschnittstelleAzure CLI deployment

Verwenden von [Azure CLI][azure-cli]Use [Azure CLI][azure-cli]

Konfigurieren Sie vor der Bereitstellung der DSCForLinux-Erweiterung die Dateien public.json und protected.json gemäß den verschiedenen Szenarios in Abschnitt 3.Before you deploy the DSCForLinux extension, configure your public.json and protected.json according to the different scenarios in section 3.

KlassischClassic

Wichtig

Klassische VMs werden am 1. März 2023 eingestellt.Classic VMs will be retired on March 1, 2023.

Wenn Sie IaaS-Ressourcen aus ASM verwenden, müssen Sie die Migration bis zum 1. März 2023 abschließen.If you use IaaS resources from ASM, please complete your migration by March 1, 2023. Es wird empfohlen, den Wechsel früher vorzunehmen, um die vielen verbesserten Features in Azure Resource Manager zu nutzen.We encourage you to make the switch sooner to take advantage of the many feature enhancements in Azure Resource Manager.

Weitere Informationen finden Sie unter Migrieren Ihrer IaaS-Ressourcen bis zum 1. März 2023 zu Azure Resource Manager.For more information, see Migrate your IaaS resources to Azure Resource Manager by March 1, 2023.

Der klassische Bereitstellungsmodus wird auch Azure-Dienstverwaltungsmodus genannt.The classic deployment mode is also called Azure Service Management mode. Sie können in den Modus wechseln, indem Sie Folgendes ausführen:You can switch to it by running:

$ azure config mode asm

Sie können die DSCForLinux-Erweiterung bereitstellen, indem Sie Folgendes ausführen:You can deploy the DSCForLinux extension by running:

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

Um die neueste Version der Erweiterung anzuzeigen, führen Sie Folgendes aus:To learn the latest extension version available, run:

$ azure vm extension list

Ressourcen-ManagerResource Manager

Sie können in den Ressource Manager-Modus wechseln, indem Sie Folgendes ausführen:You can switch to Azure Resource Manager mode by running:

$ azure config mode arm

Sie können die DSCForLinux-Erweiterung bereitstellen, indem Sie Folgendes ausführen:You can deploy the DSCForLinux extension by running:

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

Hinweis

Im Azure Resource Manager-Modus ist azure vm extension list derzeit nicht verfügbar.In Azure Resource Manager mode, azure vm extension list isn't available for now.

Verwenden von [Azure PowerShell][azure-powershell]Use [Azure PowerShell][azure-powershell]

KlassischClassic

Sie können sich an Ihrem Azure-Konto im Azure-Dienstverwaltungsmodus anmelden, indem Sie Folgendes ausführen:You can sign in to your Azure account in Azure Service Management mode by running:

Add-AzureAccount

Und Sie können die DSCForLinux-Erweiterung bereitstellen, indem Sie Folgendes ausführen:And deploy the DSCForLinux extension by running:

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

Ändern Sie den Inhalt von $privateConfig und $publicConfig entsprechend den verschiedenen Szenarien im obigen Abschnitt.Change the content of $privateConfig and $publicConfig according to different scenarios in the previous section.

$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

Ressourcen-ManagerResource Manager

Sie können sich bei Ihrem Azure-Konto im Azure Resource Manager-Modus anmelden, indem Sie Folgendes ausführen:You can sign in to your Azure account in Azure Resource Manager mode by running:

Login-AzAccount

Weitere Informationen zum Verwenden von Azure PowerShell mit Azure Resource Manager finden Sie unter Verwalten von Azure-Ressourcen mithilfe von Azure PowerShell.To learn more about how to use Azure PowerShell with Azure Resource Manager, see Manage Azure resources by using Azure PowerShell.

Sie können die DSCForLinux-Erweiterung bereitstellen, indem Sie Folgendes ausführen:You can deploy the DSCForLinux extension by running:

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

Ändern Sie den Inhalt von $privateConfig und $publicConfig entsprechend den verschiedenen Szenarien im obigen Abschnitt.Change the content of $privateConfig and $publicConfig according to different scenarios in the previous section.

$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

Problembehandlung und SupportTroubleshoot and support

ProblembehandlungTroubleshoot

Daten zum Status von Erweiterungsbereitstellungen können über das Azure-Portal und mithilfe der Azure-Befehlszeilenschnittstelle abgerufen werden.Data about the state of extension deployments can be retrieved from the Azure portal and by using the Azure CLI. Führen Sie über die Azure-Befehlszeilenschnittstelle den folgenden Befehl aus, um den Bereitstellungsstatus von Erweiterungen für einen bestimmten virtuellen Computer anzuzeigen:To see the deployment state of extensions for a given VM, run the following command by using the Azure CLI.

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

Die Ausgabe der Erweiterungsausführung wird in der folgenden Datei protokolliert:Extension execution output is logged to the following file:

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

Fehlercode: 51 stellt eine nicht unterstützte Distribution oder eine nicht unterstützte Erweiterungsaktion dar.Error code: 51 represents either unsupported distribution or unsupported extension action. In einigen Fällen kann die DSC-Linus-Erweiterung OMI nicht installieren, wenn bereits eine höhere Version von OMI auf dem Rechner vorhanden ist.In some cases, DSC Linux extension fails to install OMI when a higher version of OMI already exists in the machine. [Fehlerantwort: (000003) Downgrade nicht zulässig][error response: (000003)Downgrade not allowed]

SupportSupport

Wenn Sie beim Lesen dieses Artikels feststellen, dass Sie weitere Hilfe benötigen, stellen Sie Azure-Experten im MSDN Azure-Forum oder im Stack Overflow-ForumFragen.If you need more help at any point in this article, contact the Azure experts on the MSDN Azure and Stack Overflow forums. Alternativ dazu haben Sie die Möglichkeit, einen Azure-Supportfall zu erstellen.Alternatively, you can file an Azure Support incident. Rufen Sie die Azure-Support-Website auf, und wählen Sie Support erhalten aus.Go to the Azure Support site, and select Get support. Informationen zur Nutzung von Azure-Support finden Sie unter Microsoft Azure-Support-FAQ.For information about using Azure Support, read the Microsoft Azure Support FAQ.

Nächste SchritteNext steps

Weitere Informationen zu Erweiterungen finden Sie unter Erweiterungen und Features für virtuelle Computer für Linux.For more information about extensions, see Virtual machine extensions and features for Linux.