Aracılığıyla paylaş


Çalıştır komutunu kullanarak sunucuları uzaktan ve güvenli bir şekilde yapılandırma (Önizleme)

Azure Arc özellikli sunucularda Komut Çalıştır (Genel Önizleme), sunucularınızda bir betiği uzaktan ve güvenli bir şekilde çalıştırmanıza olanak sağlamak için Bağlı Makine aracısını kullanır. Bu sorun giderme, kurtarma, tanılama ve bakım gibi birçok senaryo için yararlı olabilir.

Desteklenen ortam ve yapılandırma

  • Deneyimler: Çalıştırma Komutu şu anda Azure CLI ve PowerShell aracılığıyla desteklenmektedir.

  • İşletim Sistemleri: Çalıştırma Komutu hem Windows hem de Linux işletim sistemlerini destekler.

  • Ortamlar: Run Command, şirket içi, VMware, SCVMM, AWS, GCP ve OCI gibi Azure dışı ortamları destekler.

  • Maliyet: Komut Çalıştırma ücretsizdir, ancak Azure'da betiklerin depolanması faturalamaya neden olabilir.

  • Yapılandırma: Komut Çalıştır komutu için daha fazla yapılandırma veya uzantı dağıtımı gerekmez. Bağlı Makine aracısı sürümü 1.33 veya üzeri olmalıdır.

RBAC kullanarak Komut Çalıştır'a erişimi sınırlama

Çalıştırma komutlarının listelenmesi veya bir komutun ayrıntılarının gösterilmesi için izin gerekir Microsoft.HybridCompute/machines/runCommands/read . Yerleşik Okuyucu rolü ve üst düzeyler bu izne sahiptir.

Komut çalıştırmak için izin gerekir Microsoft.HybridCompute/machines/runCommands/write . Azure Bağlı Makine Kaynak Yöneticisi rolü ve üst düzeyler bu izne sahiptir.

Komut Çalıştır'ı kullanmak için yerleşik rollerden birini kullanabilir veya özel bir rol oluşturabilirsiniz.

Çalıştırma komutlarını yerel olarak engelleme

Bağlı Makine aracısı, izin verilenler listesi veya blok listesi ayarlamanıza olanak sağlayan yerel yapılandırmaları destekler. Daha fazla bilgi edinmek için bkz . Uzantı izin verilenler ve engelleme listeleri.

Windows için:

azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerwindows"

Linux için:

azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerlinux"

Azure CLI

Aşağıdaki örneklerde az connectedmachine run-command komutu kullanılarak Azure Windows makinesinde kabuk betiği çalıştırılır.

Makineyle betik yürütme

Bu komut betiği makineye teslim eder, yürütür ve yakalanan çıkışı döndürür.

az connectedmachine run-command create --name "myRunCommand" --machine-name "myMachine" --resource-group "myRG" --script "Write-Host Hello World!"

Makinede dağıtılan tüm RunCommand kaynaklarını listeleme

Bu komut, özellikleriyle birlikte önceden dağıtılan çalıştırma komutlarının tam listesini döndürür.

az connectedmachine run-command list --machine-name "myMachine" --resource-group "myRG"

Yürütme durumunu ve sonuçlarını alma

Bu komut en son çıkış, başlangıç/bitiş saati, çıkış kodu ve yürütmenin terminal durumu gibi geçerli yürütme ilerleme durumunu alır.

az connectedmachine run-command show --name "myRunCommand" --machine-name "myMachine" --resource-group "myRG"

Not

içindeki instanceView çıkış ve hata alanları son 4 KB ile sınırlıdır. Tam çıkışa ve hataya erişmek için Komutunu Çalıştır'ı yürütürken ve -errorBlobUri parametrelerini kullanarak -outputBlobUri çıkış ve hata verilerini depolama ekleme bloblarına iletebilirsiniz.

RunCommand kaynağını makineden silme

Daha önce makinede dağıtılan RunCommand kaynağını kaldırın. Betik yürütme işlemi devam ediyorsa yürütme sonlandırılır.

az connectedmachine run-command delete --name "myRunCommand" --machine-name "myMachine" --resource-group "myRG"

PowerShell

Makineyle betik yürütme

New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "EastUS" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"

SourceScriptUri parametresini kullanarak makinede betik yürütme

OutputBlobUri ve ErrorBlobUri isteğe bağlı parametrelerdir.

New-AzConnectedMachineRunCommand -ResourceGroupName -MachineName -RunCommandName -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>” -OutputBlobUri “< SAS URI of a storage append blob with read, add, create, write access>” -ErrorBlobUri “< SAS URI of a storage append blob with read, add, create, write access>”

Makinede dağıtılan tüm RunCommand kaynaklarını listeleme

Bu komut, özellikleriyle birlikte önceden dağıtılan Çalıştırma Komutlarının tam listesini döndürür.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"

Yürütme durumunu ve sonuçlarını alma

Bu komut en son çıkış, başlangıç/bitiş saati, çıkış kodu ve yürütmenin terminal durumu gibi geçerli yürütme ilerleme durumunu alır.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" - MachineName "myMachine" -RunCommandName "RunCommandName"

SourceScriptUri (depolama blob SAS URL'si) kullanarak bir makinede Çalıştır Komutu oluşturma veya güncelleştirme

PowerShell betiği içeren bir depolama blobunun SAS URL'sini kullanarak Bir Windows makinesinde Çalıştır Komutunu oluşturun veya güncelleştirin. SourceScriptUri bir depolama blobu tam SAS URL'si veya genel URL olabilir.

New-AzConnectedMachineRunCommand -ResourceGroupName MyRG0 -MachineName MyMachine -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>

Not

SAS URL'si bloba okuma erişimi sağlamalıdır. SAS URL'si için 24 saatlik bir süre sonu önerilir. SAS URL'leri Blob seçenekleri kullanılarak Azure portalında veya kullanılarak New-AzStorageBlobSASTokenSAS belirteci oluşturulabilir. kullanarak New-AzStorageBlobSASTokenSAS belirteci oluşturuyorsanız, SAS URL'niz = "temel blob URL'si" + "?" + "SAS belirteci"New-AzStorageBlobSASToken

Run Command'u oluşturduktan veya güncelleştirdikten sonra makine için Komut Çalıştırma Örneği Görünümü alma

Örnek Görünümü ile makine için Bir Çalıştırma Komutu alın. Örnek Görünümü çalıştırma komutunun yürütme durumunu (Başarılı, Başarısız vb.), çıkış kodunu, standart çıkışı ve Komut Çalıştır kullanılarak betik yürütülerek oluşturulan standart hatayı içerir. Sıfır olmayan exitcode başarısız bir yürütmeyi gösterir.

Get-AzConnectedMachineRunCommand -ResourceGroupName MyRG -MachineName MyMachine -RunCommandName MyRunCommand

InstanceViewExecutionState: Kullanıcının Komut Çalıştır betiğinin durumu. Betiğinizin başarılı olup olmadığını öğrenmek için bu duruma bakın.

ProvisioningState: Uçtan uca genel uzantı sağlama durumu (uzantı platformunun Komut Çalıştır betiğini tetikleyip tetikleyemediği).

SourceScript kullanarak bir makinede Çalıştırma Komutu oluşturma veya güncelleştirme (betik metni)

Betik içeriğini doğrudan parametreye -SourceScript geçiren bir makinede Run Command oluşturun veya güncelleştirin. Birden çok komutu ayırmak için kullanın ; .

New-AzConnectedMachineRunCommand -ResourceGroupName MyRG0 -MachineName MyMachine -RunCommandName MyRunCommand2 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"

OutputBlobUri, ErrorBlobUri kullanarak bir makinede Çalıştırma Komutu oluşturma veya güncelleştirme, standart çıkışın akışını yapmak için ErrorBlobUri ve standart hata iletilerini çıkışa ve hata Ekleme blobları

Bir makinede Çalıştır Komutunu oluşturun veya güncelleştirin ve standart çıkış ve standart hata iletilerini çıkışa akışla aktarıp Blob ekleme hatası oluştu.

New-AzConnectedMachineRunCommand -ResourceGroupName MyRG0 - MachineName MyMachine -RunCommandName MyRunCommand3 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"-OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>

Not

Çıktı ve hata bloblarının AppendBlob türü olması ve SAS URL'lerinin bloba okuma, ekleme, oluşturma, yazma erişimi sağlaması gerekir. SAS URL'si için 24 saatlik bir süre sonu önerilir. Çıktı veya hata blobu yoksa AppendBlob türünde bir blob oluşturulur. SAS URL'leri Blob'un seçenekleri kullanılarak Azure portalında veya kullanılarak New-AzStorageBlobSASTokenSAS belirteci oluşturulabilir.

RunAsUser ve RunAsPassword parametrelerini kullanarak farklı bir kullanıcı olarak bir makinede Çalıştır Komutu oluşturma veya güncelleştirme

ve RunAsPassword parametrelerini kullanarak RunAsUser farklı bir kullanıcı olarak bir makinede Run Command oluşturun veya güncelleştirin. RunA'ların düzgün çalışması için makinenin yöneticisine başvurun ve kullanıcının makineye eklendiğinden, kullanıcının Çalıştır Komutu (dizinler, dosyalar, ağ vb.) tarafından erişilen kaynaklara erişimi olduğundan ve Windows makinesinde 'İkincil Oturum Açma' hizmetinin makinede çalıştığından emin olun.

New-AzMachineRunCommand -ResourceGroupName MyRG0 -MachineName MyMachine -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword

SourceScriptUri (depolama blob SAS URL'si) kullanarak makine kaynağında Çalıştır Komutu oluşturma veya güncelleştirme

PowerShell betiği içeren bir depolama blobunun SAS URL'sini kullanarak Bir Windows makine kaynağında Çalıştır Komutunu oluşturun veya güncelleştirin.

New-AzMachineRunCommand -ResourceGroupName MyRG0 -MachineName MyMachine -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>

Not

SAS URL'si bloba okuma erişimi sağlamalıdır. SAS URL'si için 24 saatlik bir süre sonu önerilir. SAS URL'leri, kullanarak blob seçenekleri veya SAS belirteci kullanılarak New-AzStorageBlobSASTokenAzure portalında oluşturulabilir. kullanarak New-AzStorageBlobSASTokenSAS belirteci oluşturuyorsanız, SAS URL biçimi şöyledir: temel blob URL'si + "?" + adresinden New-AzStorageBlobSASTokenSAS belirteci.

ScriptLocalPath (yerel betik dosyası) kullanarak bir makinede Run Command oluşturma veya güncelleştirme

Cmdlet'in yürütüldüğü istemci makinesinde bulunan yerel bir betik dosyasını kullanarak bir makinede Run Command oluşturun veya güncelleştirin.

New-AzMachineRunCommand -ResourceGroupName MyRG0 -VMName MyMachine -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"

Parametre ve ProtectedParameter parametrelerini kullanarak bir makine örneğinde Run Command oluşturma veya güncelleştirme (Betik için Genel ve Korumalı Parametreler)

Parolalar, anahtarlar vb. gibi hassas girişleri betiklere geçirmek için ProtectedParameter kullanın.

  • Windows: Bağımsız değişkenler betiklere geçirilip şu şekilde çalıştırılırken parametreler ve ProtectedParameters betiklere geçirilir: myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2value

  • Linux: Adlandırılmış Parametreler ve değerleri, .sh betiğinde erişilebilir olması gereken ortam yapılandırmasına ayarlanır. Adsız bağımsız değişkenler için, ad girişine boş bir dize geçirin. Adsız bağımsız değişkenler betiklere geçirilir ve şu şekilde çalıştırılır: myscript.sh publicParam1value publicParam2value secret1value secret2value

RunCommand kaynağını makineden silme

Daha önce makinede dağıtılan RunCommand kaynağını kaldırın. Betik yürütme işlemi devam ediyorsa yürütme sonlandırılır.

Remove-AzConnetedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"

Komut çalıştırma işlemleri

Azure Arc özellikli sunucularda Komutunu Çalıştır aşağıdaki işlemleri destekler:

Operasyon Açıklama
Oluştur Çalıştırma komutu oluşturma işlemi. Bu, çalıştırma komutunu çalıştırır.
Delete Çalıştırma komutunu silme işlemi. Çalışıyorsa, delete komutunu da durdurur.
Edinin Çalıştırma komutu alma işlemi.
Liste Azure Arc özellikli sunucunun tüm çalıştırma komutlarını alma işlemi.
Güncelleştirme Run komutunu güncelleştirme işlemi. Bu, önceki çalıştırma komutunu durdurur.

Not

Çalıştırma komut dosyası her yürütülürken çıktı ve hata bloblarının üzerine yazılır.

Örnek senaryolar

"ContosoRG" kaynak grubunda "a-aa-aa-a" kaynak grubunda "2012DatacenterServer1" adlı bir Azure Arc özellikli sunucunuz olduğunu varsayalım. Windows Server 2012 / R2 sunucuları için bir uç noktaya uzaktan erişim sağlamanız gereken bir senaryo düşünün. Azure Arc tarafından etkinleştirilen Genişletilmiş Güvenlik Güncelleştirmelerine erişim için uç noktaya www.microsoft.com/pkiops/certserişim gerekir. Bu uç noktaya erişime izin veren bir güvenlik duvarı kuralını uzaktan yapılandırmanız gerekir. Bu uç noktaya bağlantıya izin vermek için Komutunu Çalıştır'ı kullanın.

Örnek 1: Komutunu Çalıştır ile uç nokta erişimi

PUT işlemini kullanarak hedef Arc özellikli sunucunuzda uç noktaya uç nokta erişimi sağlamak için www.microsoft.com/pkiops/certs bir Komut Çalıştır betiği oluşturarak başlayın.

Betiği doğrudan satırda sağlamak için aşağıdaki işlemi kullanın:

PUT https://management.azure.com/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2023-10-03-preview
{
  "location": "eastus2",
  "properties": {
    "source": {
      "script": "New-NetFirewallRule -DisplayName $ruleName -Direction Outbound -Action Allow -RemoteAddress $endpoint -RemotePort $port -Protocol $protocol"
    },
    "parameters": [
      {
        "name": "ruleName",
        "value": "Allow access to www.microsoft.com/pkiops/certs"
      },
      {
        "name": "endpoint",
        "value": "www.microsoft.com/pkiops/certs"
      },
      {
        "name": "port",
        "value": 433
      },
      {
        "name": "protocol",
        "value": "TCP"
      }

    ],
    "asyncExecution": false,
    "runAsUser": "contoso-user1",
    "runAsPassword": "Contoso123!"
    "timeoutInSeconds": 3600,
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}

Bunun yerine betik dosyasına bağlanmak için Komut Çalıştır işleminin ScriptURI'sini kullanabilirsiniz. Bunun için satır içi betiği içeren bir newnetfirewallrule.ps1 dosya hazırladığınız ve bu betiği blob depolamaya yüklediğiniz varsayılır.

PUT https://management.azure.com/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2023-10-03-preview
{
  "location": "eastus2",
  "properties": {
    "source": {
      "scriptUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/newnetfirewallrule.ps1"
    },
    "parameters": [
      {
        "name": "ruleName",
        "value": " Allow access to www.microsoft.com/pkiops/certs"
      },
      {
        "name": "endpoint",
        "value": "www.microsoft.com/pkiops/certs"
      },
      {
        "name": "port",
        "value": 433
      },
      {
        "name": "protocol",
        "value": "TCP"
      }

    ],
    "asyncExecution": false,
    "runAsUser": "contoso-user1",
    "runAsPassword": "Contoso123!"
    "timeoutInSeconds": 3600,
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}

SAS URL'si bloba okuma erişimi sağlamalıdır. SAS URL'si için 24 saatlik bir süre sonu önerilir. SAS URL'leri, kullanarak blob seçenekleri veya SAS belirteci kullanılarak New-AzStorageBlobSASTokenAzure portalında oluşturulabilir. kullanarak New-AzStorageBlobSASTokenSAS belirteci oluşturuyorsanız, SAS URL biçimi şöyledir: base blob URL + "?" + adresinden New-AzStorageBlobSASTokenSAS belirteci.

Çıktı ve hata bloblarının AppendBlob türü olması ve SAS URL'lerinin bloba okuma, ekleme, oluşturma, yazma erişimi sağlaması gerekir. SAS URL'si için 24 saatlik bir süre sonu önerilir. SAS URL'leri Blob'un seçenekleri kullanılarak Azure portalında veya kullanılarak New-AzStorageBlobSASTokenSAS belirteci oluşturulabilir.

Örnek 2: Çalıştırma Komutu ayrıntılarını alma

Çalıştır Komutunu doğru sağladığınızı doğrulamak için get komutunu kullanarak sağlanan Çalıştırma Komutu'nun ayrıntılarını alın:

GET https://management.azure.com/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2023-10-03-preview

Örnek 3: Çalıştır Komutunu Güncelleştirme

Windows Yönetim Merkezi'ne bağlantı için ek bir uç noktaya *.waconazure.com erişim açmak istediğinizi varsayalım. Mevcut Çalıştırma Komutunu yeni parametrelerle güncelleştirebilirsiniz:

PATCH https://management.azure.com/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2023-10-03-preview
{
  "location": "eastus2",
  "properties": {
    "source": {
      "script": "New-NetFirewallRule -DisplayName $ruleName -Direction Outbound -Action Allow -RemoteAddress $endpoint -RemotePort $port -Protocol $protocol"
    },
    "parameters": [
      {
        "name": "ruleName",
        "value": "Allow access to WAC endpoint"
      },
      {
        "name": "endpoint",
        "value": "*.waconazure.com"
      },
      {
        "name": "port",
        "value": 433
      },
      {
        "name": "protocol",
        "value": "TCP"
      }
    ],
    "asyncExecution": false,
    "runAsUser": "contoso-user1",
    "runAsPassword": "Contoso123!",
    "timeoutInSeconds": 3600,
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}

Örnek 4: Çalıştırma Komutlarını Listeleme

Uç Nokta Erişimi için Çalıştır Komutunu silmeden önce Arc özellikli sunucu için başka Çalıştırma Komutları olmadığından emin olun. Tüm Çalıştırma Komutlarını almak için list komutunu kullanabilirsiniz:

LIST https://management.azure.com/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/

Örnek 5: Çalıştırma Komutunu Silme

Komut Çalıştır uzantısına artık ihtiyacınız yoksa, aşağıdaki komutu kullanarak bu uzantıyı silebilirsiniz:

DELETE https://management.azure.com/subscriptions/ aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2023-10-03-preview

Çalıştır Komutunu Devre Dışı Bırakma

Azure Arc özellikli sunucularda Komutunu Çalıştır'ı devre dışı bırakmak için bir yönetim komut istemi açın ve aşağıdaki komutları çalıştırın. Bu komutlar, Uzantı blok listesindeki Bağlı Makine aracısı için yerel aracı yapılandırma özelliklerini kullanır.

Windows

azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerwindows"

Linux

sudo azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerlinux"