Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. Az Azure CLI, az Azure PowerShell vagy az Azure Virtual Machines REST API használatával is futtathatja.
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ő telepítésekhez. Az új verzió egy cserélhető helyettesítés. 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.
Megjegyzés
Próbálja ki a virtuálisgép-segédet a gyorsabb diagnosztika érdekében. Javasoljuk, hogy futtassa a VM assist for Windows vagy a VM assist for Linux programot. Ezek a szkriptalapú diagnosztikai eszközök segítenek azonosítani az Azure-beli virtuálisgép-vendégügynököt és a virtuális gép általános állapotát érintő gyakori problémákat.
Ha teljesítményproblémák lépnek fel a virtuális gépekkel kapcsolatban, mielőtt kapcsolatba lép az ügyfélszolgálattal, futtassa ezeket az eszközöket.
Előfeltételek
Támogatott Linux-disztribúciók
| Kiadó | Disztribúció | x64 | ARM64 |
|---|---|---|---|
| Alma Linux-közösség | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Credativ | Debian | 10+ | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| openSUSE Project | openSUSE | 12.3+ | Nem támogatott |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Nem támogatott |
| Piros kalap | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Sziklás Linux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x SP4+ |
| Canonical | Ubuntu (LTS-kiadások) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.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 idempotens szkripteket, hogy a véletlen többszöri futtatásuk se okozzon változásokat a rendszerben.
- 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.
- Ne helyezzen újraindításokat a szkriptbe. 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 helyzetben marad, és időtúllépést okozhat.
- 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. Íme egy 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>"
}
}
}
Megjegyzés
A managedIdentity tulajdonság nem használható a storageAccountNamestorageAccountKey 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 |
karakterlánc |
| típus | CustomScript |
karakterlánc |
| típuskezelőVerzió | 2.1 |
Int |
| fileUris | https://github.com/MyProject/Archive/MyPythonScript.py |
tömb |
| commandToExecute | python MyPythonScript.py \<my-param1> |
karakterlánc |
| parancsfájl | IyEvYmluL3NoCmVjaG8gIlVwZGF0aW5nIHBhY2thZ2VzIC4uLiIKYXB0IHVwZGF0ZQphcHQgdXBncmFkZSAteQo= |
karakterlánc |
| skipDos2Unix | false |
Boolean |
| timestamp | 123456789 |
32 bites egész szám |
| tárfiókNeve | examplestorageacct |
karakterlánc |
| tárolóFiókKulcs | TmJK/1N3AbAZ3q/+hOXoi/l73zOqsaxXDhqa9Y83/v5UpXQp2DQIBuv2Tifp60cE/OaHsJZmQZ7teQfczQj8hg== |
karakterlánc |
| managedIdentity |
{ }, { "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444" } vagy { "objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" } |
JSON-objektum |
Tulajdonságérték részletei
| Ingatlan | Opcionális 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 | Opcionális | A letöltendő fájlok URL-címei. |
| commandToExecute | Kötelező, ha script nincs beállítva |
A belépési pont szkriptje, amelyet futtatni kell. Használja ezt a tulajdonságot script helyett, ha a parancs titkos adatokat, például jelszavakat tartalmaz. |
| parancsfájl | Kötelező, ha commandToExecute nincs beállítva |
Base64 kódolású és opcionálisan gzip által futtatott /bin/shszkript. |
| skipDos2Unix | Opcionális | Állítsa be ezt az értéket false-re, ha ki szeretné hagyni a szkriptalapú fájl URL-címeinek vagy szkriptjeinek dos2unix-konvertálását. |
| timestamp | Opcionális | 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. |
| tárfiókNeve | Opcionális | 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. |
| tárolóFiókKulcs | Opcionális | A tárfiók hozzáférési kulcsa. |
| managedIdentity | Opcionális | A fájlok letöltéséhez használt felügyelt identitás . Az értékek clientId (nem kötelező, sztring), a felügyelt identitás ügyfélazonosítója, és objectId (nem kötelező, sztring), 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.
commandToExecutescriptfileUris
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 úgy, hogy a \r\n-t \n-vé alakítja. 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, ami azt jelenti, hogy a dos2unix konverzió végre van hajtva. A dos2unix konvertálást kihagyhatja a következő beállítással skipDos2Unixtrue:
{
"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 commandToExecutefileUris . 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 helyettesítheti a commandToExecute és fileUris címkéket.
Íme néhány követelmény:
- A szkriptnek Base64 kódolásúnak kell lennie.
- A szkript opcionálisan tömörítve lehet gzip-pel.
- 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 kitömöríteni 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
_/bin/sh -c /var/lib/waagent/custom-script/#/script.shhasználatával.
Tulajdonság: managedIdentity
Megjegyzé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ális gép-méretezési csoportban a rendszer által hozzárendelt identitást szeretné használni, managedidentity értékét állítsa be egy üres JSON-objektumra.
{
"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ális gép méretezési készletben, 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": "00001111-aaaa-2222-bbbb-3333cccc4444" }
}
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.sh"],
"commandToExecute": "sh script1.sh",
"managedIdentity" : { "objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" }
}
Megjegyzés
A managedIdentity tulajdonság nem használható a storageAccountNamestorageAccountKey tulajdonsággal együtt.
Template deployment
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"
]
}
}
}
Megjegyzés
A tulajdonságnevek kis- és nagybetűérzékenyek. Az üzembe helyezési problémák elkerülése érdekében használja az itt látható neveket.
Azure parancssori felület (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" } EOFFuttassa a következő 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 a következő 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"] } EOFHozza 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" } EOFFuttassa a következő 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-sablonthaszná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 is mentve van, a stdout és a stderr fájlokban.
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:
-
Enableekkor indul el a parancs. -
DownloadAz egyéni szkriptbővítménycsomag Azure-ból való letöltéséhez kapcsolódik, nem a megadottfileUrisszkriptfájlokhoz.
Az Azure Script Extension létrehoz egy naplót, amelyet itt talál:
sudo cat /var/log/azure/custom-script/handler.log
Keresse 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
enablenapló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 commandToExecuteté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.