Az Azure Custom Script Extension 2. verziójának használata Linux rendszerű virtuális gépekkel
Az Egyéni szkriptbővítmény 2. verziója letölti és futtatja a szkripteket az Azure-beli virtuális gépeken. Ezt a bővítményt az üzembe helyezés utáni konfigurációhoz, a szoftvertelepítéshez vagy bármely más konfigurációs vagy felügyeleti feladathoz használhatja. Letöltheti a szkripteket az Azure Storage-ból vagy más elérhető internetes helyről, vagy megadhatja őket a bővítmény futtatókörnyezetének.
Az egyéni szkriptbővítmény integrálható az Azure Resource Manager-sablonokkal. Futtathatja az Azure CLI, az Azure PowerShell vagy az Azure Virtual Machines REST API használatával is.
Ez a cikk bemutatja, hogyan használhatja az Egyéni szkriptbővítményt az Azure CLI-ből, és hogyan futtathatja a bővítményt egy Azure Resource Manager-sablonnal. Ez a cikk a Linux-rendszerek hibaelhárítási lépéseit is ismerteti.
Az egyéni szkriptbővítménynek két verziója van:
- 1. verzió: Microsoft.OSTCExtensions.CustomScriptForLinux
- 2. verzió: Microsoft.Azure.Extensions.CustomScript
Használja a 2- es verziót új és meglévő üzemelő példányokhoz. Az új verzió egy legördülő lista. A migrálás ugyanolyan egyszerű, mint a név és a verzió módosítása. Nem kell módosítania a bővítménykonfigurációt.
Előfeltételek
Támogatott Linux-disztribúciók
Disztribúció | x64 | ARM64 |
---|---|---|
Alma Linux | 9.x+ | 9.x+ |
Debian | 10+ | 11.x+ |
Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
Azure Linux | 2.x | 2.x |
openSUSE | 12.3+ | Nem támogatott |
Oracle Linux | 6.4+, 7.x+, 8.x+ | Nem támogatott |
Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+ | 8,6+, 9,x+ |
Rocky Linux | 9.x+ | 9.x+ |
SLES | 12.x+, 15.x+ | 15.x SP4+ |
Ubuntu | 18.04+, 20.04+, 22.04+ | 20.04+, 22.04+ |
Szkript helye
Beállíthatja, hogy a bővítmény az Azure Blob Storage hitelesítő adatait használja, hogy hozzáférhessen az Azure Blob Storage-hoz. A szkript helye bárhol lehet, amíg a virtuális gép erre a végpontra tud irányítani, például a GitHubra vagy egy belső fájlkiszolgálóra.
Internetkapcsolat
Ha külsőleg szeretne letölteni egy szkriptet, például a GitHubról vagy az Azure Storage-ból, meg kell nyitnia más tűzfal- vagy hálózati biztonsági csoport (NSG) portokat. Ha például a szkript az Azure Storage-ban található, engedélyezheti a hozzáférést a Storage Azure NSG-szolgáltatáscímkék használatával.
Ha a szkript helyi kiszolgálón található, előfordulhat, hogy más tűzfal- vagy NSG-portokat is meg kell nyitnia.
Tippek
- A bővítmény meghibásodásai legnagyobb arányban a szkriptben található szintaktikai hibák miatt jelentkeznek. Ellenőrizze, hogy a szkript hiba nélkül fut-e. A hibák keresésének megkönnyítése érdekében további naplózást végezhet a szkriptbe.
- Írjon olyan szkripteket, amelyek nem okoznak változásokat a rendszerben, hogy többszöri futtatásuk véletlenül se okozzon rendszerváltozást.
- Gondoskodjon arról, hogy a szkriptek futtatásához ne legyen szükség felhasználói beavatkozásra.
- A szkript 90 percig futhat. Ha egy szkript ennél tovább fut, az a bővítmény üzembe helyezésének a meghiúsulását eredményezi.
- A szkript ne váltson ki újraindításokat. Az újraindítás művelet problémákat okoz más telepített bővítményekkel kapcsolatban, és a bővítmény nem folytatódik az újraindítás után.
- Ha egy szkript újraindítást vált ki az alkalmazások telepítése és a szkriptek futtatása előtt, ütemezze az újraindítást egy cron-feladattal, vagy olyan eszközökkel, mint a DSC, a Chef vagy a Puppet bővítmény.
- Ne futtasson olyan szkriptet, amely az Azure Linux-ügynök leállítását vagy frissítését okozza. Előfordulhat, hogy a bővítmény átmeneti állapotban marad, és időtúllépéshez vezet.
- A bővítmény egy szkriptet csak egyszer futtat. Ha minden indításkor szkriptet szeretne futtatni, használhat egy cloud-init rendszerképet, és használhatja a Rendszerindítónkénti szkriptek modult. Másik lehetőségként a szkripttel létrehozhat egy rendszerezett szolgáltatási egységet.
- A bővítmények csak egy verzióját alkalmazhatja a virtuális gépre. Egy második egyéni szkript futtatásához frissítheti a meglévő bővítményt egy új konfigurációval. Másik lehetőségként eltávolíthatja az egyéni szkriptbővítményt, és újra alkalmazhatja a frissített szkripttel.
- Ha ütemezni szeretné, hogy mikor fusson egy szkript, hozzon létre egy cron-feladatot a bővítménnyel.
- Amikor a szkript fut, az Azure Portalon vagy a CLI-n a bővítmény átmeneti állapotát fogja látni. Ha gyakoribb állapotfrissítést szeretne egy futó szkripthez, hozza létre a saját megoldását.
- Az egyéni szkriptek futtatására szolgáló bővítmény nem biztosít natív támogatást a proxykiszolgálókhoz. Használhat azonban olyan fájlátviteli eszközt, például
Curl
, amely támogatja a proxykiszolgálókat a szkriptben. - Vegye figyelembe, hogy vannak olyan nem alapértelmezett könyvtárhelyek, amelyekre a szkriptjei és a parancsai támaszkodhatnak. Alakítsa ki a helyzet kezeléséhez szükséges logikát.
Bővítményséma
Az egyéni szkriptbővítmény konfigurációja olyan dolgokat határoz meg, mint a szkript helye és a futtatandó parancs. Ezeket az információkat konfigurációs fájlokban tárolhatja, megadhatja a parancssorban, vagy megadhatja egy Azure Resource Manager-sablonban.
Bizalmas adatokat védett konfigurációban tárolhat, amely titkosítva van, és csak a cél virtuális gépen van visszafejtve. A védett konfiguráció akkor hasznos, ha a végrehajtási parancs titkos kulcsokat, például jelszót tartalmaz. Példa:
{
"name": "config-app",
"type": "Extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2019-03-01",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"typeHandlerVersion": "2.1",
"autoUpgradeMinorVersion": true,
"settings": {
"skipDos2Unix":false,
"timestamp":123456789
},
"protectedSettings": {
"commandToExecute": "<command-to-execute>",
"script": "<base64-script-to-execute>",
"storageAccountName": "<storage-account-name>",
"storageAccountKey": "<storage-account-key>",
"fileUris": ["https://.."],
"managedIdentity" : "<managed-identity-identifier>"
}
}
}
Feljegyzés
A managedIdentity
tulajdonság nem használható a storageAccountName
storageAccountKey
tulajdonsággal együtt.
Tulajdonságértékek
Név | Érték vagy példa | Adattípus |
---|---|---|
apiVersion | 2019-03-01 |
dátum: |
kiadó | Microsoft.Azure.Extensions |
húr |
típus | CustomScript |
húr |
typeHandlerVersion | 2.1 |
egész |
fileUris | https://github.com/MyProject/Archive/MyPythonScript.py |
array |
commandToExecute | python MyPythonScript.py \<my-param1> |
húr |
szkriptet. | IyEvYmluL3NoCmVjaG8gIlVwZGF0aW5nIHBhY2thZ2VzIC4uLiIKYXB0IHVwZGF0ZQphcHQgdXBncmFkZSAteQo= |
húr |
skipDos2Unix | false |
Logikai |
időbélyeg | 123456789 |
32 bites egész szám |
storageAccountName | examplestorageacct |
húr |
storageAccountKey | TmJK/1N3AbAZ3q/+hOXoi/l73zOqsaxXDhqa9Y83/v5UpXQp2DQIBuv2Tifp60cE/OaHsJZmQZ7teQfczQj8hg== |
húr |
managedIdentity | { } vagy { "clientId": "31b403aa-c364-4240-a7ff-d85fb6cd7232" } { "objectId": "12dd289c-0583-46e5-b9b4-115d5c19ef4b" } |
JSON-objektum |
Tulajdonságérték részletei
Tulajdonság | Nem kötelező vagy kötelező | Részletek |
---|---|---|
apiVersion | Nem alkalmazható | A legfrissebb API-verziót a Resource Explorer vagy az Azure CLI parancsával az provider list -o json találja meg. |
fileUris | Választható | A letöltendő fájlok URL-címei. |
commandToExecute | Kötelező, ha script nincs beállítva |
A futtatandó belépési pont szkriptje. Használja ezt a tulajdonságot ahelyett script , hogy a parancs titkos kódokat, például jelszavakat tartalmaz. |
szkriptet. | Kötelező, ha commandToExecute nincs beállítva |
Base64 kódolású és opcionálisan gzip által futtatott /bin/sh szkript. |
skipDos2Unix | Választható | Állítsa ezt az értéket arra az false esetre, ha kihagyja a szkriptalapú fájl URL-címeinek vagy szkriptjeinek dos2unix-konvertálását. |
időbélyeg | Választható | Ezt az értéket csak úgy módosíthatja, hogy elindítsa a szkript újrafuttatását. Minden egész szám elfogadható, ha eltér az előző értéktől. |
storageAccountName | Választható | A tárfiók neve. Ha tárolási hitelesítő adatokat ad meg, az összes fileUris értéknek URL-címnek kell lennie az Azure-blobokhoz. |
storageAccountKey | Választható | A tárfiók hozzáférési kulcsa. |
managedIdentity | Választható | A fájlok letöltéséhez használt felügyelt identitás . clientId Az értékek (nem kötelező, sztring), amely a felügyelt identitás ügyfélazonosítója, és objectId (nem kötelező, sztring), amely a felügyelt identitás objektumazonosítója. |
A nyilvános beállításokat a rendszer világos szövegben küldi el annak a virtuális gépnek, ahol a szkript fut. A védett beállítások titkosítva vannak egy olyan kulccsal, amely csak az Azure és a virtuális gép számára ismert. A rendszer az elküldött beállításokat a virtuális gépre menti. Vagyis ha a beállítások titkosítva lettek, a rendszer titkosítva menti őket a virtuális gépen. A titkosított értékek visszafejtéséhez használt tanúsítvány a virtuális gépen van tárolva. A tanúsítvány a beállítások futásidőben történő visszafejtésére is használható, ha szükséges.
A nyilvános beállítások használata hasznos lehet a hibakereséshez, de határozottan javasoljuk, hogy használjon védett beállításokat.
A következő értékeket nyilvános vagy védett beállításokban állíthatja be. A bővítmény elutasít minden olyan konfigurációt, amelyben ezek az értékek nyilvános és védett beállításokban is be vannak állítva.
commandToExecute
script
fileUris
Tulajdonság: skipDos2Unix
Az egyéni szkriptbővítmény Microsoft.OSTCExtensions.CustomScriptForLinux
előző verziója automatikusan UNIX-fájlokká alakítja a DOS-fájlokat \r\n
\n
. Ez a fordítás továbbra is létezik, és alapértelmezés szerint be van kapcsolva. Ez az átalakítás az összes letöltött fileUris
fájlra vagy a szkriptbeállításra vonatkozik az alábbi feltételek valamelyike alapján:
- A bővítmény .sh, .txt, .py vagy .pl. A szkriptbeállítás mindig megfelel ennek a feltételnek, mert feltételezzük, hogy egy /bin/sh parancsprogrammal futtatott szkript. A szkriptbeállítás script.sh ként lesz mentve a virtuális gépen.
- A fájl a következővel
#!
kezdődik: .
Az alapértelmezett érték a false
dos2unix konverzió végrehajtása. A dos2unix konvertálást kihagyhatja a következő beállítással skipDos2Unix
true
:
{
"fileUris": ["<url>"],
"commandToExecute": "<command-to-execute>",
"skipDos2Unix": true
}
Tulajdonság: szkript
Az egyéni szkriptbővítmény támogatja a felhasználó által definiált szkriptek végrehajtását. A szkriptbeállítások egyetlen beállításba egyesíthetők commandToExecute
fileUris
. Ahelyett, hogy egy fájlt kellene beállítania az Azure Storage-ból vagy egy GitHub-gistből való letöltéshez, a szkriptet beállításként kódolhatja. A szkripttel lecserélheti és fileUris
lecserélheti commandToExecute
a parancsprogramot.
Íme néhány követelmény:
- A szkriptnek Base64 kódolásúnak kell lennie.
- A szkript opcionálisan gzip'ed lehet.
- A szkriptbeállítást nyilvános vagy védett beállításokban is használhatja.
- A szkriptparaméter adatainak maximális mérete 256 KB. Ha a szkript túllépi ezt a méretet, nem fut.
A rendszer például a következő szkriptet menti a /script.sh/ fájlba:
#!/bin/sh
echo "Creating directories ..."
mkdir /data
chown user:user /data
mkdir /appdata
chown user:user /appdata
A megfelelő Egyéni szkriptbővítmény szkriptbeállítást az alábbi parancs kimenetének használatával hozhatja létre:
cat script.sh | base64 -w0
{
"script": "IyEvYmluL3NoCmVjaG8gIlVwZGF0aW5nIHBhY2thZ2VzIC4uLiIKYXB0IHVwZGF0ZQphcHQgdXBncmFkZSAteQo="
}
A legtöbb esetben a szkript igény szerint gzip-ként is használható a méret további csökkentése érdekében. Az egyéni szkriptbővítmény automatikusan észleli a gzip-tömörítés használatát.
cat script | gzip -9 | base64 -w 0
Az egyéni szkriptbővítmény a következő algoritmust használja egy szkript futtatásához:
- Adja meg, hogy a szkript értékének hossza nem haladja meg a 256 KB-ot.
- A Base64 dekódolja a szkript értékét.
- Próbálja meg belőni a Base64-dekódolt értéket.
- Írja a dekódolt és opcionálisan tömörített értéket a lemezre: /var/lib/waagent/custom-script/#/script.sh.
- Futtassa a szkriptet a következő használatával
_/bin/sh -c /var/lib/waagent/custom-script/#/script.sh
: .
Tulajdonság: managedIdentity
Feljegyzés
Ezt a tulajdonságot csak védett beállításokban kell megadni.
A 2.1-es és újabb verziójú egyéni szkriptbővítmény támogatja a felügyelt identitásokat a fájloknak a fileUris
beállításban megadott URL-címekről való letöltéséhez. Ez a módszer lehetővé teszi, hogy az egyéni szkriptbővítmény hozzáférjen az Azure Storage privát blobjaihoz vagy tárolóihoz anélkül, hogy a felhasználónak titkos kulcsokat, például közös hozzáférésű jogosultságkódokat vagy tárfiókkulcsokat kellene átadnia.
A funkció használatához adjon hozzá egy rendszer által hozzárendelt vagy felhasználó által hozzárendelt identitást ahhoz a virtuális géphez vagy virtuálisgép-méretezési csoporthoz, ahol az egyéni szkriptbővítmény várhatóan fut. Ezután adjon hozzáférést a felügyelt identitásnak az Azure Storage-tárolóhoz vagy -blobhoz.
Ha a cél virtuális gépen vagy virtuálisgép-méretezési csoportban a rendszer által hozzárendelt identitást szeretné használni, állítson be managedidentity
egy üres JSON-objektumot.
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.sh"],
"commandToExecute": "sh script1.sh",
"managedIdentity" : {}
}
Ha a felhasználó által hozzárendelt identitást szeretné használni a cél virtuális gépen vagy virtuálisgép-méretezési csoportban, konfigurálja managedidentity
a felügyelt identitás ügyfél-azonosítójával vagy objektumazonosítójával.
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.sh"],
"commandToExecute": "sh script1.sh",
"managedIdentity" : { "clientId": "31b403aa-c364-4240-a7ff-d85fb6cd7232" }
}
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.sh"],
"commandToExecute": "sh script1.sh",
"managedIdentity" : { "objectId": "12dd289c-0583-46e5-b9b4-115d5c19ef4b" }
}
Feljegyzés
A managedIdentity
tulajdonság nem használható a storageAccountName
storageAccountKey
tulajdonsággal együtt.
Sablonalapú telepítés
Azure-beli virtuálisgép-bővítményeket Azure Resource Manager-sablonokkal helyezhet üzembe. Az előző szakaszban részletezett JSON-séma egy Azure Resource Manager-sablonban használható az egyéni szkriptbővítmény futtatásához a sablon üzembe helyezése során. A GitHubon található egyéni szkriptbővítményt tartalmazó mintasablon.
{
"name": "config-app",
"type": "extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2019-03-01",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"typeHandlerVersion": "2.1",
"autoUpgradeMinorVersion": true,
"settings": {
},
"protectedSettings": {
"commandToExecute": "sh hello.sh <param2>",
"fileUris": ["https://github.com/MyProject/Archive/hello.sh"
]
}
}
}
Feljegyzés
Ezek a tulajdonságnevek megkülönböztetik a kis- és nagybetűket. Az üzembe helyezési problémák elkerülése érdekében használja az itt látható neveket.
Azure CLI
Ha az Azure CLI használatával futtatja az egyéni szkriptbővítményt, hozzon létre egy konfigurációs fájlt vagy fájlokat. Legalább a konfigurációs fájlnak tartalmaznia kell.commandToExecute
A az vm extension set
parancs a konfigurációs fájlra hivatkozik:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM --name customScript \
--publisher Microsoft.Azure.Extensions \
--protected-settings ./script-config.json
A parancs beállításait JSON-formátumú sztringként is megadhatja. Ez a módszer lehetővé teszi a konfiguráció megadását a végrehajtás során, külön konfigurációs fájl nélkül.
az vm extension set \
--resource-group exttest \
--vm-name exttest \
--name customScript \
--publisher Microsoft.Azure.Extensions \
--protected-settings '{"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"],"commandToExecute": "./config-music.sh"}'
Példa: Nyilvános konfiguráció szkriptfájllal
Ez a példa a következő script-config.json nevű szkriptfájlt használja:
{
"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"],
"commandToExecute": "./config-music.sh"
}
Hozza létre a szkriptfájlt a választott szövegszerkesztővel vagy a következő CLI-paranccsal:
cat <<EOF > script-config.json { "fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"], "commandToExecute": "./config-music.sh" } EOF
Futtassa az alábbi parancsot:
az vm extension set \ --resource-group myResourceGroup \ --vm-name myVM --name customScript \ --publisher Microsoft.Azure.Extensions \ --settings ./script-config.json
Példa: Nyilvános konfiguráció szkriptfájl nélkül
Ez a példa a következő JSON-formátumú tartalmat használja:
{
"commandToExecute": "apt-get -y update && apt-get install -y apache2"
}
Futtassa az alábbi parancsot:
az vm extension set \
--resource-group tim0329vmRG \
--vm-name tim0329vm --name customScript \
--publisher Microsoft.Azure.Extensions \
--settings '{"commandToExecute": "apt-get -y update && apt-get install -y apache2"}'
Példa: Nyilvános és védett konfigurációs fájlok
Nyilvános konfigurációs fájl használatával adja meg a szkriptfájl URI-ját:
{
"fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"]
}
A futtatandó parancs megadásához használjon védett konfigurációs fájlt:
{
"commandToExecute": "./config-music.sh"
}
Hozza létre a nyilvános konfigurációs fájlt a választott szövegszerkesztővel vagy a következő CLI-paranccsal:
cat <<EOF > script-config.json { "fileUris": ["https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"] } EOF
Hozza létre a védett konfigurációs fájlt a választott szövegszerkesztővel vagy a következő CLI-paranccsal:
cat <<EOF > protected-config.json { "commandToExecute": "./config-music.sh" } EOF
Futtassa az alábbi parancsot:
az vm extension set \ --resource-group myResourceGroup \ --vm-name myVM \ --name customScript \ --publisher Microsoft.Azure.Extensions \ --settings ./script-config.json \ --protected-settings ./protected-config.json
Virtual Machine Scale Sets
Ha az Egyéni szkriptbővítményt az Azure Portalon helyezi üzembe, nem tudja szabályozni az SAS-jogkivonat lejáratát a tárfiókban lévő szkript eléréséhez. A kezdeti üzembe helyezés működik, de amikor a tárfiók SAS-jogkivonata lejár, minden további skálázási művelet meghiúsul, mert az egyéni szkriptbővítmény már nem fér hozzá a tárfiókhoz.
Javasoljuk, hogy a PowerShellt, az Azure CLI-t vagy egy Azure Resource Manager-sablont használjon az egyéni szkriptbővítmény virtuálisgép-méretezési csoporton való üzembe helyezésekor. Így dönthet úgy, hogy felügyelt identitást használ, vagy a tárfiókban lévő szkript eléréséhez közvetlenül szabályozhatja az SAS-jogkivonat lejáratát, amíg szüksége van rá.
Hibaelhárítás
Az egyéni szkriptbővítmény futtatásakor a szkript az alábbi példához hasonló könyvtárba jön létre vagy tölthető le. A parancs kimenete ebbe a könyvtárba és stderr
fájlokba stdout
is mentve lesz.
sudo ls -l /var/lib/waagent/custom-script/download/0/
A hibaelhárításhoz először ellenőrizze a Linux-ügynök naplóját, és győződjön meg arról, hogy a bővítmény futott:
sudo cat /var/log/waagent.log
Keresse meg a bővítmény végrehajtását. A következőképpen néz ki:
2018/04/26 17:47:22.110231 INFO [Microsoft.Azure.Extensions.customScript-2.0.6] [Enable] current handler state is: notinstalled
2018/04/26 17:47:22.306407 INFO Event: name=Microsoft.Azure.Extensions.customScript, op=Download, message=Download succeeded, duration=167
2018/04/26 17:47:22.339958 INFO [Microsoft.Azure.Extensions.customScript-2.0.6] Initialize extension directory
2018/04/26 17:47:22.368293 INFO [Microsoft.Azure.Extensions.customScript-2.0.6] Update settings file: 0.settings
2018/04/26 17:47:22.394482 INFO [Microsoft.Azure.Extensions.customScript-2.0.6] Install extension [bin/custom-script-shim install]
2018/04/26 17:47:23.432774 INFO Event: name=Microsoft.Azure.Extensions.customScript, op=Install, message=Launch command succeeded: bin/custom-script-shim install, duration=1007
2018/04/26 17:47:23.476151 INFO [Microsoft.Azure.Extensions.customScript-2.0.6] Enable extension [bin/custom-script-shim enable]
2018/04/26 17:47:24.516444 INFO Event: name=Microsoft.Azure.Extensions.customScript, op=Enable, message=Launch command succeeded: bin/custom-sc
Az előző kimenetben:
Enable
ekkor indul el a parancs.Download
Az egyéni szkriptbővítménycsomag Azure-ból való letöltéséhez kapcsolódik, nem a megadottfileUris
szkriptfájlokhoz.
Az Azure Script Extension létrehoz egy naplót, amelyet itt talál:
sudo cat /var/log/azure/custom-script/handler.log
Keresse meg az egyéni végrehajtást. A következőképpen néz ki:
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event=start
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event=pre-check
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="comparing seqnum" path=mrseq
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="seqnum saved" path=mrseq
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="reading configuration"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="read configuration"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="validating json schema"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="json schema valid"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="parsing configuration json"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="parsed configuration json"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="validating configuration logically"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="validated configuration"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="creating output directory" path=/var/lib/waagent/custom-script/download/0
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="created output directory"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 files=1
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 file=0 event="download start"
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 file=0 event="download complete" output=/var/lib/waagent/custom-script/download/0
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="executing command" output=/var/lib/waagent/custom-script/download/0
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="executing protected commandToExecute" output=/var/lib/waagent/custom-script/download/0
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event="executed command" output=/var/lib/waagent/custom-script/download/0
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event=enabled
time=2018-04-26T17:47:23Z version=v2.0.6/git@1008306-clean operation=enable seq=0 event=end
Itt látható:
- A
enable
naplót elindító parancs. - A bővítménynek átadott beállítások.
- A fájlt letöltő bővítmény és a művelet eredménye.
- A futtatott parancs és az eredmény.
Az Egyéni szkriptbővítmény végrehajtási állapotát is lekérheti, beleértve az átadott commandToExecute
tényleges argumentumokat is az Azure CLI használatával:
az vm extension list -g myResourceGroup --vm-name myVM
A kimenet a következő szöveghez hasonlóan néz ki:
[
{
"autoUpgradeMinorVersion": true,
"forceUpdateTag": null,
"id": "/subscriptions/subscriptionid/resourceGroups/rgname/providers/Microsoft.Compute/virtualMachines/vmname/extensions/customscript",
"resourceGroup": "rgname",
"settings": {
"commandToExecute": "sh script.sh > ",
"fileUris": [
"https://catalogartifact.azureedge.net/publicartifacts/scripts/script.sh",
"https://catalogartifact.azureedge.net/publicartifacts/scripts/script.sh"
]
},
"tags": null,
"type": "Microsoft.Compute/virtualMachines/extensions",
"typeHandlerVersion": "2.0",
"virtualMachineExtensionType": "CustomScript"
},
{
"autoUpgradeMinorVersion": true,
"forceUpdateTag": null,
"id": "/subscriptions/subscriptionid/resourceGroups/rgname/providers/Microsoft.Compute/virtualMachines/vmname/extensions/OmsAgentForLinux",
"instanceView": null,
"location": "eastus",
"name": "OmsAgentForLinux",
"protectedSettings": null,
"provisioningState": "Succeeded",
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"resourceGroup": "rgname",
"settings": {
"workspaceId": "workspaceid"
},
"tags": null,
"type": "Microsoft.Compute/virtualMachines/extensions",
"typeHandlerVersion": "1.0",
"virtualMachineExtensionType": "OmsAgentForLinux"
}
]
Az Azure CLI szintaxissal kapcsolatos problémái
Az Azure CLI több rendszerhéj-környezetben is futtatható, de kisebb formátumváltozatokkal. Ha az Azure CLI-parancsokkal nem várt eredményeket kap, olvassa el az Azure CLI sikeres használatát ismertető témakört.
Következő lépések
A kód, az aktuális problémák és a verziók megtekintéséhez tekintse meg a custom-script-extension-linux című témakört.