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-AzStorageBlobSASToken
hozható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-AzStorageBlobSASToken
SAS-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-AzStorageBlobSASToken
hozható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-AzStorageBlobSASToken
hozható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-AzStorageBlobSASToken
SAS-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"
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: