Megosztás a következőn keresztül:


Kiszolgálók távoli és biztonságos konfigurálása a Futtatás paranccsal (előzetes verzió)

Futtassa a parancsot az Azure Arc-kompatibilis kiszolgálókon (nyilvános előzetes verzió) a Csatlakoztatott gép ügynök használatával, hogy távolról és biztonságosan futtathasson szkripteket a kiszolgálókon belül. Ez számos, hibaelhárítási, helyreállítási, diagnosztikai és karbantartási forgatókönyv esetén lehet hasznos.

Támogatott környezet és konfiguráció

  • Szolgáltatások: A parancs futtatása jelenleg az Azure CLI-vel és a PowerShell-lel támogatott.

  • Operációs rendszerek: A parancs futtatása windowsos és linuxos operációs rendszereket is támogat.

  • Környezetek: A Run Command támogatja a nem Azure-beli környezeteket, például a helyszíni, VMware, SCVMM, AWS, GCP és OCI környezeteket.

  • Költség: A parancs futtatása ingyenes, azonban a szkriptek tárolása az Azure-ban számlázást vonhat maga után.

  • Konfiguráció: A parancs futtatása nem igényel további konfigurációt vagy bővítmények üzembe helyezését. A Csatlakoztatott gép ügynök verziójának 1.33-nak vagy újabbnak kell lennie.

A parancs futtatásához való hozzáférés korlátozása az RBAC használatával

A futtatási parancsok felsorolásához vagy egy parancs részleteinek megjelenítéséhez engedély Microsoft.HybridCompute/machines/runCommands/read szükséges. A beépített olvasói szerepkör és a magasabb szintek rendelkeznek ezzel az engedéllyel.

A parancs futtatásához engedély Microsoft.HybridCompute/machines/runCommands/write szükséges. Az Azure Connected Machine Resource Administrator szerepkör és a magasabb szintek rendelkeznek ezzel az engedéllyel.

A parancs futtatásához használhatja az egyik beépített szerepkört, vagy létrehozhat egy egyéni szerepkört.

Futtatási parancsok helyi letiltása

A Csatlakoztatottgép-ügynök támogatja a helyi konfigurációkat, amelyek lehetővé teszik egy engedélyezési lista vagy egy blokklista beállítását. További információt a Bővítmények engedélyezési és tiltólistái című témakörben talál.

Windows esetén:

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

Linux esetén:

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

Azure CLI

Az alábbi példák az connectedmachine run-parancs használatával futtatnak egy rendszerhéjszkriptet egy Azure Windows-gépen.

Szkript végrehajtása a géppel

Ez a parancs kézbesíti a szkriptet a gépnek, végrehajtja, és visszaadja a rögzített kimenetet.

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

Az összes telepített RunCommand-erőforrás listázása egy gépen

Ez a parancs a korábban üzembe helyezett futtatási parancsok teljes listáját adja vissza a tulajdonságaikkal együtt.

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

Végrehajtási állapot és eredmények lekérése

Ez a parancs lekéri az aktuális végrehajtási folyamatot, beleértve a legújabb kimenetet, a kezdési/befejezési időt, a kilépési kódot és a végrehajtás terminálállapotát.

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

Feljegyzés

A kimeneti és hibamezők instanceView az utolsó 4 KB-ra korlátozódnak. A teljes kimenet és hiba eléréséhez továbbíthatja a kimenetet és a hibaadatokat a tároló hozzáfűző blobjaihoz a futtatási parancs végrehajtása során használt paraméterekkel és -errorBlobUri paraméterekkel-outputBlobUri.

RunCommand-erőforrás törlése a gépről

Távolítsa el a számítógépen korábban üzembe helyezett RunCommand erőforrást. Ha a szkript végrehajtása még folyamatban van, a végrehajtás leáll.

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

PowerShell

Szkript végrehajtása a géppel

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

Szkript végrehajtása a gépen a SourceScriptUri paraméterrel

OutputBlobUri és ErrorBlobUri választható paraméterek.

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>”

Az összes telepített RunCommand-erőforrás listázása egy gépen

Ez a parancs a korábban üzembe helyezett futtatási parancsok teljes listáját adja vissza a tulajdonságaikkal együtt.

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

Végrehajtási állapot és eredmények lekérése

Ez a parancs lekéri az aktuális végrehajtási folyamatot, beleértve a legújabb kimenetet, a kezdési/befejezési időt, a kilépési kódot és a végrehajtás terminálállapotát.

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

Futtatási parancs létrehozása vagy frissítése a számítógépen a SourceScriptUri (storage blob SAS URL-cím) használatával

A Futtatás parancs létrehozása vagy frissítése Windows rendszerű gépen egy PowerShell-szkriptet tartalmazó tárolóblob SAS-URL-címével. SourceScriptUri lehet egy tárolóblob teljes SAS-URL-címe vagy nyilvános URL-címe.

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

Feljegyzés

Az SAS URL-címnek olvasási hozzáférést kell biztosítania a blobhoz. Az SAS URL-címhez 24 órás lejárati idő javasolt. AZ SAS-URL-címek blobbeállítások vagy SAS-jogkivonatok használatával New-AzStorageBlobSASTokenhozhatók létre az Azure Portalon. Ha SAS-jogkivonatot hoz létre a következő használatávalNew-AzStorageBlobSASToken, az SAS URL-címe = "alap blob URL-címe" + "?" + "SAS-jogkivonat"New-AzStorageBlobSASToken

Parancs futtatása parancspéldány nézet lekérése egy géphez a Futtatás parancs létrehozása vagy frissítése után

Futtatási parancs lekérése a géphez példánynézettel. A Példánynézet tartalmazza a futtatási parancs végrehajtási állapotát (Sikeres, Sikertelen stb.), a kilépési kódot, a standard kimenetet és a parancs futtatásával generált standard hibát. A nem nulla ExitCode sikertelen végrehajtást jelez.

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

InstanceViewExecutionState: A felhasználó futtatási parancsszkriptjének állapota. Ebből az állapotból megtudhatja, hogy a szkript sikeres volt-e vagy sem.

ProvisioningState: Az általános bővítménykiépítés állapota végponttól végpontig (hogy a bővítményplatform aktiválni tudta-e a run command szkriptet).

Futtatási parancs létrehozása vagy frissítése a számítógépen a SourceScript használatával (szkriptszöveg)

Hozzon létre vagy frissítse a futtatási parancsot egy olyan gépen, amely közvetlenül a paraméternek -SourceScript adja át a szkript tartalmát. Több parancs elválasztására használható ; .

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

Futtatási parancs létrehozása vagy frissítése a számítógépen a OutputBlobUri, ErrorBlobUri használatával a szabványos kimenet és a standard hibaüzenetek streameléséhez a kimenetre és hiba hozzáfűzési blobokra

Hozzon létre vagy frissítse a futtatási parancsot egy gépen, és streamelje a szabványos kimenetet és a standard hibaüzeneteket a kimenethez és a hiba hozzáfűző blobokhoz.

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

Feljegyzés

A kimenetnek és a hibablobnak a AppendBlob típusnak kell lennie, az SAS-URL-címeknek pedig olvasási, hozzáfűzési, létrehozási, írási hozzáférést kell biztosítaniuk a blobhoz. Az SAS URL-címhez 24 órás lejárati idő javasolt. Ha a kimenet vagy hibablob nem létezik, létrejön egy AppendBlob típusú blob. AZ SAS-URL-címek az Azure Portalon a blob beállításaival, illetve a használatból származó New-AzStorageBlobSASTokenSAS-jogkivonatokkal hozhatók létre.

RunAsUser és RunAsPassword paraméterekkel hozzon létre vagy frissítse a futtatási parancsot egy másik felhasználóként egy gépen

Futtatási parancs létrehozása vagy frissítése más felhasználóként egy gépen a paraméterek és RunAsPassword a paraméterek használatávalRunAsUser. Ahhoz, hogy a futtatók megfelelően működjenek, forduljon a számítógép rendszergazdájához, és győződjön meg arról, hogy a felhasználó hozzá van adva a géphez, a felhasználó hozzáfér a futtatási parancs által elért erőforrásokhoz (könyvtárak, fájlok, hálózat stb.), windowsos gépek esetén pedig a "Másodlagos bejelentkezés" szolgáltatás fut a gépen.

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

Futtatási parancs létrehozása vagy frissítése egy gépi erőforráson a SourceScriptUri (storage blob SAS URL-cím) használatával

Parancs létrehozása vagy frissítése Windows rendszerű számítógép-erőforráson egy PowerShell-szkriptet tartalmazó tárolóblob SAS-URL-címével.

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

Feljegyzés

Az SAS URL-címnek olvasási hozzáférést kell biztosítania a blobhoz. Az SAS URL-cím esetében a lejárati idő 24 óra. AZ SAS-URL-címek blobbeállítások vagy SAS-jogkivonatok használatával New-AzStorageBlobSASTokenhozhatók létre az Azure Portalon. Ha SAS-jogkivonatot hoz létre a használatával New-AzStorageBlobSASToken, az SAS URL-formátuma a következő: alap blob URL-címe + "?" + a SAS-jogkivonat a forrásból New-AzStorageBlobSASToken.

Parancs létrehozása vagy frissítése számítógépen a ScriptLocalPath (helyi szkriptfájl) használatával

Hozzon létre vagy frissítse a Futtatás parancsot egy számítógépen egy helyi szkriptfájl használatával, amely azon az ügyfélszámítógépen található, amelyen a parancsmag fut.

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

Futtatási parancs létrehozása vagy frissítése egy géppéldányon paraméter- és védettparaméter-paraméterekkel (nyilvános és védett paraméterek szkripttel)

A ProtectedParameter használatával bármilyen bizalmas bemenetet továbbíthat a szkriptnek, például jelszavakat, kulcsokat stb.

  • Windows: A paraméterek és a védettparaméterek át lesznek adva a szkriptnek, mivel az argumentumok átadva lesznek a szkriptnek, és a következő módon futnak: myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2value

  • Linux: Az elnevezett paraméterek és értékei környezeti konfigurációra vannak beállítva, amelyeknek elérhetőnek kell lenniük a .sh szkriptben. Név nélküli argumentumok esetén adjon meg egy üres sztringet a névbevitelhez. A rendszer név nélküli argumentumokat ad át a szkriptnek, és a következőképpen fut: myscript.sh publicParam1value publicParam2value secret1value secret2value

RunCommand-erőforrás törlése a gépről

Távolítsa el a számítógépen korábban üzembe helyezett RunCommand erőforrást. Ha a szkript végrehajtása még folyamatban van, a végrehajtás leáll.

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

Parancsműveletek futtatása

Az Azure Arc-kompatibilis kiszolgálókon futó parancs a következő műveleteket támogatja:

Művelet Leírás
Létrehozás A futtatási parancs létrehozásához szükséges művelet. Ez futtatja a futtatási parancsot.
Törlés Futtatási parancs törlésének művelete. Ha fut, a törlés a futtatási parancsot is leállítja.
Get A futtatási parancs lekéréséhez szükséges művelet.
Lista Az Azure Arc-kompatibilis kiszolgáló összes futtatási parancsának lekérése.
Frissítés A futtatási parancs frissítésének művelete. Ez leállítja az előző futtatási parancsot.

Feljegyzés

A kimenet és a hibablobok felülíródnak minden alkalommal, amikor a futtatási parancsszkript fut.

Példaforgatókönyvek

Tegyük fel, hogy rendelkezik egy "2012DatacenterServer1" nevű Azure Arc-kompatibilis kiszolgálóval a "ContosoRG" erőforráscsoportban az "aaaaaaa-aa-aa-aa-aaa-aaaa" előfizetés-azonosítóval. Fontolja meg azt a forgatókönyvet, amelyben távoli hozzáférést kell biztosítania egy végponthoz a Windows Server 2012/R2-kiszolgálókhoz. Az Azure Arc által engedélyezett kiterjesztett biztonsági frissítésekhez való hozzáféréshez hozzá kell férni a végponthoz www.microsoft.com/pkiops/certs. Távolról kell konfigurálnia egy tűzfalszabályt, amely lehetővé teszi a végpont elérését. Használja a Futtatás parancsot a végponthoz való kapcsolódás engedélyezéséhez.

1. példa: Végpont-hozzáférés a Futtatás paranccsal

Először hozzon létre egy parancsfuttatási szkriptet, amely végponti hozzáférést biztosít a www.microsoft.com/pkiops/certs cél Arc-kompatibilis kiszolgáló végpontjához a PUT művelettel.

A szkript közvetlen megadásához használja a következő műveletet:

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

Ha inkább a szkriptfájlra szeretne hivatkozni, használja a Parancs futtatása művelet ScriptURI-beállítását. Ehhez feltételezzük, hogy előkészített egy newnetfirewallrule.ps1 fájlt, amely tartalmazza a soron belüli szkriptet, és feltöltötte ezt a szkriptet a Blob Storage-ba.

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

Az SAS URL-címnek olvasási hozzáférést kell biztosítania a blobhoz. Az SAS URL-cím esetében a lejárati idő 24 óra. AZ SAS-URL-címek blobbeállítások vagy SAS-jogkivonatok használatával New-AzStorageBlobSASTokenhozhatók létre az Azure Portalon. Ha SAS-jogkivonatot hoz létre a következő használatával New-AzStorageBlobSASToken, az SAS URL-formátuma: base blob URL + "?" + a SAS-jogkivonat a következőből: New-AzStorageBlobSASToken.

A kimenetnek és a hibablobnak a AppendBlob típusnak kell lennie, az SAS-URL-címeknek pedig olvasási, hozzáfűzési, létrehozási, írási hozzáférést kell biztosítaniuk a blobhoz. Az SAS URL-címhez 24 órás lejárati idő javasolt. AZ SAS-URL-címek az Azure Portalon a blob beállításaival, illetve a használatból származó New-AzStorageBlobSASTokenSAS-jogkivonatokkal hozhatók létre.

2. példa: Futtatási parancs részleteinek lekérése

Annak ellenőrzéséhez, hogy helyesen hozta-e ki a Futtatás parancsot, a GET paranccsal kérje le a kiépített futtatási parancs részleteit:

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

3. példa: A Futtatás parancs frissítése

Tegyük fel, hogy meg szeretne nyitni egy további végponthoz *.waconazure.com való hozzáférést a Windows Felügyeleti központhoz való kapcsolódáshoz. A meglévő futtatási parancsot új paraméterekkel frissítheti:

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

4. példa: Futtatási parancsok listázása

Az Endpoint Access futtatási parancsának törlése előtt győződjön meg arról, hogy nincsenek más futtatási parancsok az Arc-kompatibilis kiszolgálóhoz. A listaparancs használatával lekérheti az összes futtatási parancsot:

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

5. példa: Futtatási parancs törlése

Ha már nincs szüksége a Parancs futtatása bővítményre, az alábbi paranccsal törölheti:

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

A Futtatás parancs letiltása

Ha le szeretné tiltani a futtatási parancsot az Azure Arc-kompatibilis kiszolgálókon, nyisson meg egy rendszergazdai parancssort, és futtassa a következő parancsokat. Ezek a parancsok a bővítményblokklista Csatlakoztatott gép ügynökének helyi ügynökkonfigurációs képességeit használják.

Windows

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

Linux

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