تمرين - التحكم في ترتيب توزيع الموارد
في هذا الجزء، تبدأ بتنفيذ بعض مهام الإعداد الأساسية. في Visual Studio Code، يمكنك توصيل جلسة عمل طرفية باشتراك Azure الذي تزوده بيئة اختبار Azure المعزولة الحرة. يتيح لك إجراء ذلك مصادقة الأوامر إلى Azure.
ثم، تشغل قالب ARM الأساسي التي يزود جهاز ظاهري يعمل بنظام Linux. بعد اكتمال التوزيع، تحقق من تشغيل الجهاز الظاهري وقابليته للاتصال.
على الرغم من أن العمل مع الأجهزة الظاهرية مهمة شائعة، تكتشف أن مورد الجهاز الظاهري يتطلب مكونات الشبكة والتخزين التي يجب أن تكون موجودة قبل إنشاء الجهاز الظاهري. ترى كيف تمكِّنك البنية dependsOn
من تعيين الترتيب الذي تُزوَد الموارد به.
الإعداد
يمكنك هنا فتح Visual Studio Code، وإنشاء جلسة عمل PowerShell، والاتصال باشتراك Azure الذي تزوده بيئة اختبار Azure المعزولة الحرة.
تحتاج إلى تنفيذ مهام الإعداد هذه مرةً واحدة خلال هذه الوحدة. يمكنك الرجوع إلى هذه الخطوات إذا سجلت الخروج أو انقطع اتصالك في تمرين لاحق.
فتح PowerShell في Visual Studio Code
فتح Visual Studio Code.
فتح نافذة المحطة الطرفية باستخدام القائمة Terminal.
إذا كانت القائمة المنسدلة على يمين النافذة الطرفية تظهر pwsh، فلديك shell ملائمة للعمل من خلالها، ويمكنك التخطي إلى القسم التالي.
إذا لم تكن كذلك، حدد القائمة المنسدلة، واختر تحديد Default Shell .
حدد pwsh.
حدد + في الوحدة الطرفية لإنشاء وحدة طرفية جديدة مع pwsh مثلما هو الحال مع shell.
تسجيل الدخول إلى Azure
شغَّل
Connect-AzAccount
لتسجيل الدخول إلى حسابك.Connect-AzAccount
تظهر نافذة متصفح.
حدد الحساب الذي استخدمته لتنشيط بيئة الاختبار المعزولة وإغلاق نافذة المتصفح عندما يُطلب منك ذلك.
تعيين الاشتراك النشط
شغَّل
Get-AzSubscription
للحصول على معرف الاشتراك لبيئة الاختبار المعزولة.Get-AzSubscription
ابحث عن
Concierge Subscription
وانسخ العمود الثاني. سيبدو مثل cf49fbbc- 217c-4eb6-9eb5-a6a6c68295a0.شغَّل
Set-AzContext
لتغيير اشتراكك النشط في Concierge Subscription.إشعار
تأكد من استبدال {Your subscription ID} مع معرف Concierge Subscription الذي حصلت عليه في الأمر الأخير.
$subscription = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $subscription
تعيين مجموعة الموارد الافتراضية
عادةً، عند تشغيل أمر Azure CLI، تحتاج إلى تحديد مجموعة الموارد.
تزودك بيئة الاختبار المعزولة بمجموعة الموارد الافتراضية. لتسهيل تشغيل أوامر Azure CLI التالية، يمكنك هنا تعيين مجموعة الموارد الافتراضية.
شغَّل الأمر Set-AzDefault
cmdlet لتعيين مجموعة الموارد الافتراضية.
Set-AzDefault -ResourceGroupName <rgn>resource group name</rgn>
إشعار
عادةً، عندما تستخدم PowerShell لتوزيع الموارد على Azure، تحتاج إلى تحديد مجموعة موارد. أنت تتجاوز هذا المطلب عن طريق تعيين سياق التوزيع خاصتك، باستخدام Set-AzDefault
.
ما هو في توزيع جهاز ظاهري نموذجي
عند توزيع جهاز ظاهري، ضع في اعتبارك أن هناك العديد من الموارد التي يجب توزيعها معها حتى يعمل الجهاز الظاهري.
فيما يلي ملخص موجز لأنواع الموارد التي يجب توزيعها عادةً مع جهاز ظاهري:
- Microsoft.Storage/storageAccounts. يتيح حساب التخزين مساحة على القرص لنظام التشغيل والملفات.
- Microsoft.Network/publicIPAddresses. يمكِّنك عنوان IP العام من الاتصال بالجهاز الظاهري من الإنترنت.
- Microsoft.Network/networkSecurityGroups. تحتوي مجموعة أمان الشبكة على قواعد للتعامل مع حركة المرور الواردة والصادرة إلى شبكتك الظاهرية.
- Microsoft.Network/virtualNetworks. يجب وضع جهازك الظاهري في شبكة ظاهرية. يتطلب هذا المورد توزيع مجموعة أمان الشبكة قبلها.
- Microsoft.Network/networkInterfaces. يعتمد هذا المورد على موردين آخرين: عنوان IP العام والشبكة الظاهرية.
- Microsoft.Compute/virtualMachines. الجهاز الظاهري هو المورد الأساسي الذي تحتاج لتوزيعه. يعتمد هذا الجهاز على موارد مختلفة: حساب التخزين وواجهات الشبكة.
توزيع جهاز ظاهري يعمل بنظام Linux
يمكنك هنا تنزيل قالب Azure Resource Manager (ARM) من مستودع GitHub الذي نزودك به. يزود القالب على جهاز ظاهري يعمل بنظام Linux وجميع الموارد الضرورية لتشغيله.
شغَّل الأمر
curl
التالي لتنزيل قالب ARM:curl -O 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json'
شغَّل
ConvertTo-SecureString
cmdlet، وعيِّن النتائج إلى متغيّر PowerShell يُسمى$secure
:$secure = "insecurepassword123!" | ConvertTo-SecureString -AsPlainText -Force
الآن لديك نسخة مشفرة من كلمة المرور خاصتك حتى يمكنك تمرير البرنامج النصي للتوزيع بعد ذلك.
شغَّل الأمر
New-AzResourceGroupDeployment
لتوزيع القالب:New-AzResourceGroupDeployment ` -TemplateFile "./azuredeploy.json" ` -adminUsername "azureuser" ` -vmName "vm1" ` -adminPasswordOrKey $secure
قد يستغرق الأمر بضع دقائق لتشغيله. أثناء تشغيل الأمر، يمكنك فحص القالب ARM من علامة تبويب متصفح منفصلة إذا كنت ترغب في ذلك.
لاحظ تبعيات المورد عن طريق البحث عن المفتاح
dependsOn
. على سبيل المثال، يعتمد مورد الجهاز الظاهري على واجهة الشبكة:"type": "Microsoft.Compute/virtualMachines", "apiVersion": "2020-06-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]" ],
تحقق من التوزيع
تحقق من أن الجهاز الظاهري مزود وأنه قابل للاتصال عبر SSH. للقيام بذلك:
شغَّل الأمر
Invoke-Expression
للاتصال بجهاز ظاهري عبر SSH:Invoke-Expression (Get-AzResourceGroupDeployment -Name azuredeploy -ResourceGroupName <rgn>your resource group</rgn>).outputs.sshCommand.value
عند مطالبتك، أدخِل
yes
لمتابعة الاتصال. ثم أدخِل كلمة مرور المسؤول،insecurepassword123!
.هام
حافظ على أمان كلمات المرور عمليًا. يمكنك أيضًا استخدام مصادقة المفتاح العام، والتي عادةً ما تكون أكثر أمانًا من استخدام كلمات المرور.
من اتصال SSH خاصتك بالجهاز الظاهري، شغَّل
hostname
لطباعة اسم مضيف الجهاز الظاهري:hostname
يمكنك أن ترى اسم المضيف الداخلي للجهاز الظاهري،
vm1
:vm1
شغَّل
exit
لمغادرة جلسة عمل SSH خاصتك.exit
تهانينا، تم بنجاح توزيع جهاز ظاهري يعمل بنظام Linux باستخدام قالب ARM. الجهاز الظاهري هو نوع مورد شائع يتضمن موارد تابعة.
الإعداد
يمكنك هنا فتح Visual Studio Code، وإنشاء جلسة عمل طرفية، والاتصال باشتراك Azure الذي تزوده بيئة اختبار Azure المعزولة الحرة.
تحتاج إلى تنفيذ مهام الإعداد هذه مرةً واحدة خلال هذه الوحدة. يمكنك الرجوع إلى هذه الخطوات إذا سجلت الخروج أو انقطع اتصالك في تمرين لاحق.
افتح shell في Visual Studio Code
فتح Visual Studio Code.
فتح نافذة المحطة الطرفية باستخدام القائمة Terminal.
إذا كانت القائمة المنسدلة تعرض shell المفضلة لديك (bash أو zsh، على سبيل المثال)، فيمكنك التخطي والانتقال إلى القسم التالي.
إذا لم تكن كذلك، حدد القائمة المنسدلة، واختر تحديد Default Shell .
حدد نوع shell التي تريدها.
حدد + في المحطة الطرفية لإنشاء محطة طرفية جديدة مع نوع shell الذي حددته.
تسجيل الدخول إلى Azure
من المحطة الطرفية، تشغيل
az login
:az login
تظهر نافذة متصفح.
حدد الحساب الذي استخدمته لتنشيط بيئة الاختبار المعزولة وأغلِق نافذة المتصفح عندما يُطلب منك ذلك.
تعيين الاشتراك النشط
شغَّل الأمر التالي az account set
لتعيين بيئة الاختبار المعزولة من Azure باعتبارها اشتراكك النشط:
az account set -s "Concierge Subscription"
إشعار
إذا فشل الأمر، شغَّل az account list --refresh --all
، ثم أعد تشغيل الأمر az account set
.
تعيين مجموعة الموارد الافتراضية
عادةً، عند تشغيل أمر Azure CLI، تحتاج إلى تحديد مجموعة الموارد.
تزودك بيئة الاختبار المعزولة بمجموعة الموارد الافتراضية. لتسهيل تشغيل أوامر Azure CLI التالية، يمكنك هنا تعيين مجموعة الموارد الافتراضية.
تشغيل الأمر az configure
التالي لتعيين مجموعة الموارد الافتراضية:
az configure --defaults group=<rgn>resource group name</rgn>
ما هو في توزيع جهاز ظاهري نموذجي
عند توزيع جهاز ظاهري، ضع في اعتبارك أن هناك العديد من الموارد التي يجب توزيعها معها حتى يعمل الجهاز الظاهري.
فيما يلي ملخص موجز لأنواع الموارد التي يجب توزيعها عادةً مع جهاز ظاهري:
- Microsoft.Storage/storageAccounts. يتيح حساب التخزين مساحة على القرص لنظام التشغيل والملفات.
- Microsoft.Network/publicIPAddresses. يمكِّنك عنوان IP العام من الاتصال بالجهاز الظاهري من الإنترنت.
- Microsoft.Network/networkSecurityGroups. تحتوي مجموعة أمان الشبكة على قواعد للتعامل مع حركة المرور الواردة والصادرة إلى شبكتك الظاهرية.
- Microsoft.Network/virtualNetworks. يجب وضع جهازك الظاهري في شبكة ظاهرية. يتطلب هذا المورد توزيع مجموعة أمان الشبكة قبلها.
- Microsoft.Network/networkInterfaces. يعتمد هذا المورد على موردين آخرين: عنوان IP العام والشبكة الظاهرية.
- Microsoft.Compute/virtualMachines. الجهاز الظاهري هو المورد الأساسي الذي تحتاج لتوزيعه. يعتمد هذا الجهاز على موارد مختلفة: حساب التخزين وواجهات الشبكة.
توزيع جهاز ظاهري يعمل بنظام Linux
يمكنك هنا تنزيل قالب Azure Resource Manager (ARM) من مستودع GitHub الذي نزودك به. يزود القالب على جهاز ظاهري يعمل بنظام Linux وجميع الموارد الضرورية لتشغيله.
شغَّل الأمر
wget
التالي لتنزيل قالب ARM:wget https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json
إذا لم يكن
wget
مُثبت لديك، يمكنك تشغيل هذاcurl
الأمر:curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
تشغيل
az deployment group create
الأمر لتوزيع القالب:az deployment group create \ --template-file azuredeploy.json \ --parameters adminUsername=azureuser vmName=vm1 adminPasswordOrKey='insecurepassword123!'
قد يستغرق الأمر بضع دقائق لتشغيله. أثناء تشغيل الأمر، يمكنك فحص القالب ARM من علامة تبويب متصفح منفصلة إذا كنت ترغب في ذلك.
لاحظ تبعيات المورد عن طريق البحث عن المفتاح
dependsOn
. على سبيل المثال، يعتمد مورد الجهاز الظاهري على واجهة الشبكة:"type": "Microsoft.Compute/virtualMachines", "apiVersion": "2020-06-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]" ],
تحقق من التوزيع
تحقق من أن الجهاز الظاهري مزود وأنه قابل للاتصال عبر SSH. للقيام بذلك:
شغَّل الأمر
az deployment group list
التالي لسرد مجموعات التوزيع في اشتراكك:az deployment group list --output table
يمكنك أن ترى مجموعة توزيع واحدة، تُسمى azuredeploy:
Name ResourceGroup State Timestamp Mode ----------- ------------------------------------------ --------- -------------------------------- ----------- azuredeploy learn-1ef901aa-3f6a-46aa-8e93-a7f11e5192b8 Succeeded 2020-11-24T17:55:39.762517+00:00 Incremental
شغَّل الأمر
az deployment group show
التالي لإظهار الأمر SSH الذي يمكنك استخدامه للاتصال بالجهاز الظاهري:az deployment group show \ --name azuredeploy \ --query properties.outputs.sshCommand.value \ --output tsv
يعرِّف قالب ARM هذه الخاصية في القسم
output
. إليك مثال:ssh azureuser@simplelinuxvm-a33zb3sc332ue.westus.cloudapp.azure.com
شغَّل الأمر مرةً أخرى، هذه المرة باستخدام بناء الجملة
$()
لتنفيذ الأمر SSH:$(az deployment group show \ --name azuredeploy \ --query properties.outputs.sshCommand.value \ --output tsv)
عند مطالبتك، أدخِل
yes
لمتابعة الاتصال. ثم أدخِل كلمة مرور المسؤول،insecurepassword123!
.هام
حافظ على أمان كلمات المرور عمليًا. يمكنك أيضًا استخدام مصادقة المفتاح العام، والتي عادةً ما تكون أكثر أمانًا من استخدام كلمات المرور.
من اتصال SSH خاصتك بالجهاز الظاهري، شغَّل
hostname
لطباعة اسم مضيف الجهاز الظاهري:hostname
يمكنك أن ترى اسم المضيف الداخلي للجهاز الظاهري،
vm1
:vm1
شغَّل
exit
لمغادرة جلسة عمل SSH خاصتك.exit
تهانينا، تم بنجاح توزيع جهاز ظاهري يعمل بنظام Linux باستخدام قالب ARM. الجهاز الظاهري هو نوع مورد شائع يتضمن موارد تابعة.