إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة
توضح لك هذه المقالة كيفية التقاط إصدار صورة موجود في Azure Compute Gallery (المعروف سابقًا باسم Shared Image Gallery)، وتحديثه ونشره كإصدار صورة جديد إلى المعرض.
لتكوين الصورة، يمكنك استخدام نموذج قالب JSON، helloImageTemplateforSIGfromSIG.json.
تسجيل الموفرين
لاستخدام VM Image Builder، تحتاج إلى تسجيل الموفرين.
تحقق من تسجيلات مقدم الخدمة. تأكد من أن كل واحد يرجع الحالة مسجل.
az provider show -n Microsoft.VirtualMachineImages | grep registrationState az provider show -n Microsoft.KeyVault | grep registrationState az provider show -n Microsoft.Compute | grep registrationState az provider show -n Microsoft.Storage | grep registrationState az provider show -n Microsoft.Network | grep registrationState az provider show -n Microsoft.ContainerInstance | grep registrationStateإذا لم يرجعوا الحالة مسجل، فسجل الموفرين عن طريق تشغيل الأوامر التالية:
az provider register -n Microsoft.VirtualMachineImages az provider register -n Microsoft.Compute az provider register -n Microsoft.KeyVault az provider register -n Microsoft.Storage az provider register -n Microsoft.Network az provider register -n Microsoft.ContainerInstance
تعيين المتغيرات والأذونات
إذا قمت بالفعل بإنشاء معرض حساب Azure باستخدام إنشاء صورة وتوزيعها على معرض حساب Azure، فقد قمت بالفعل بإنشاء بعض المتغيرات التي تحتاجها.
إذا لم تكن قد أنشأت المتغيرات بالفعل، فقم بتشغيل الأوامر التالية:
# Resource group name sigResourceGroup=ibLinuxGalleryRG # Gallery location location=westus2 # Additional region to replicate the image version to additionalregion=eastus # Name of the Azure Compute Gallery sigName=myIbGallery # Name of the image definition to use imageDefName=myIbImageDef # image distribution metadata reference name runOutputName=aibSIGLinuxUpdateقم بإنشاء متغير لمعرف الاشتراك الخاص بك:
subscriptionID=$(az account show --query id --output tsv)احصل على إصدار الصورة الذي تريد تحديثه:
sigDefImgVersionId=$(az sig image-version list \ -g $sigResourceGroup \ --gallery-name $sigName \ --gallery-image-definition $imageDefName \ --subscription $subscriptionID --query [].'id' -o tsv)
قم بإنشاء هوية مخصصة للمستخدم وقم بتعيين الأذونات على مجموعة الموارد
لقد قمت بإعداد هوية المستخدم في مثال سابق، لذلك تحتاج الآن إلى الحصول على معرف المورد، والذي سيتم إلحاقه بالقالب.
#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)
إذا كان لديك بالفعل Azure Compute Gallery ولكنك لم تقم بإعداده باتباع مثال سابق، فأنت بحاجة إلى تعيين أذونات لـ VM Image Builder للوصول إلى مجموعة الموارد حتى تتمكن من الوصول إلى المعرض. لمزيد من المعلومات، راجع إنشاء صورة وتوزيعها على معرض حساب Azure.
تعديل مثال helloImage
يمكنك مراجعة مثال JSON الذي أنت على وشك استخدامه في helloImageTemplateforSIGfromSIG.json. للحصول على معلومات حول ملف JSON، راجع إنشاء قالب Azure VM Image Builder.
قم بتنزيل مثال JSON، كما هو موضح في إنشاء صورة Linux وتوزيعها على معرض حساب Azure باستخدام Azure CLI.
تكوين JSON مع المتغيرات الخاصة بك:
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/quickquickstarts/8_Creating_a_Custom_Linux_Shared_Image_Gallery_Image_from_SIG/helloImageTemplateforSIGfromSIG.json -o helloImageTemplateforSIGfromSIG.json sed -i -e "s/<subscriptionID>/$subscriptionID/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<rgName>/$sigResourceGroup/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<imageDefName>/$imageDefName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<sharedImageGalName>/$sigName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s%<sigDefImgVersionId>%$sigDefImgVersionId%g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<region1>/$location/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<region2>/$additionalregion/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<runOutputName>/$runOutputName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s%<imgBuilderId>%$imgBuilderId%g" helloImageTemplateforSIGfromSIG.json
إنشاء الصورة
أرسل تكوين الصورة إلى خدمة VM Image Builder:
az resource create \ --resource-group $sigResourceGroup \ --properties @helloImageTemplateforSIGfromSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01ابدأ بناء الصورة:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01 \ --action Run
انتظر حتى يتم إنشاء الصورة ونسخها نسخًا متماثلاً قبل الانتقال إلى الخطوة التالية.
إنشاء جهاز ظاهري
إنشاء الجهاز الظاهري عن طريق القيام بما يلي:
az vm create \ --resource-group $sigResourceGroup \ --name aibImgVm001 \ --admin-username azureuser \ --location $location \ --image "/subscriptions/$subscriptionID/resourceGroups/$sigResourceGroup/providers/Microsoft.Compute/galleries/$sigName/images/$imageDefName/versions/latest" \ --generate-ssh-keysقم بإنشاء اتصال Secure Shell (SSH) إلى الجهاز الظاهري باستخدام عنوان IP العام الخاص بـ VM.
ssh azureuser@<pubIp>بعد إنشاء اتصال SSH، يجب أن ترى أنه تم تلقي «رسالة اليوم» توضح أن الصورة قد تم تخصيصها:
******************************************************* ** This VM was built from the: ** ** !! AZURE VM IMAGE BUILDER Custom Image !! ** ** You have just been Customized :-) ** *******************************************************اكتب
exitلإغلاق اتصال SSH.لسرد إصدارات الصور المتوفرة الآن في معرض الصور الخاص بك، قم بتشغيل:
az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
الخطوات التالية
لمعرفة المزيد حول مكونات ملف JSON الذي استخدمته في هذه المقالة، راجع إنشاء قالب Azure VM Image Builder.