إنشاء نظام مجموعة Service Fabric باستخدام Azure Resource Manager

نظام مجموعة Azure Service Fabric عبارة عن مجموعة متصلة بالشبكة من الأجهزة الظاهرية التي يتم فيها توزيع خدماتك المصغرة وإدارتها. نظام مجموعة Service Fabric قيد التشغيل في Azure عبارة عن مورد Azure ويُوزَّع باستخدام Azure Resource Manager. توضح هذه المقالة كيفية توزيع نظام مجموعة Service Fabric في Azure باستخدام Resource Manager. يمكنك استخدام قالب نظام مجموعة افتراضي أو قالب مخصص. إذا لم يكن لديك بالفعل قالب مخصص، يمكنك معرفة كيفية إنشاء قالب.

يجب تحديد نوع الأمان المختار لتأمين نظام المجموعة (على سبيل المثال: هوية Windows وX509 وما إلى ذلك) للإنشاء الأولي للمجموعة ولا يمكن تغييرها بعد ذلك. قبل إعداد نظام مجموعة، اقرأ سيناريوهات أمان نظام المجموعة Service Fabric. في Azure، يستخدم Service Fabric شهادة x509 لتأمين مجموعتك ونقاط نهايتها ومصادقة العملاء وتشفير البيانات. يوصى أيضا ب Microsoft Entra ID لتأمين الوصول إلى نقاط نهاية الإدارة. لمزيد من المعلومات، اقرأ إعداد معرف Microsoft Entra لمصادقة العملاء.

إذا كنت تنشئ نظام مجموعة إنتاج لتشغيل أحمال عمل الإنتاج، نوصيك أولاً بقراءة قائمة التحقق من جاهزية الإنتاج.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

المتطلبات الأساسية

في هذه المقالة، استخدم وحدات Service Fabric RM PowerShell أو Azure CLI لتوزيع نظام مجموعة:

يمكنك العثور على الوثائق المرجعية لوحدات Service Fabric هنا:

تسجيل الدخول إلى Azure

قبل تشغيل أي من الأوامر الواردة في هذه المقالة، بادر أولاً بتسجيل الدخول إلى Azure.

Connect-AzAccount
Set-AzContext -SubscriptionId <subscriptionId>
az login
az account set --subscription $subscriptionId

إنشاء نظام مجموعة جديدة باستخدام شهادة موقعة ذاتياً تم إنشاؤها بواسطة النظام

استخدم الأوامر التالية لإنشاء نظام مجموعة مُؤمَّن بشهادة موقعة ذاتياً تم إنشاؤها بواسطة النظام. يُعد هذا الأمر شهادة نظام مجموعة أساسية يتم استخدامها لأمان نظام المجموعة ولإعداد وصول المسؤول لتنفيذ عمليات الإدارة باستخدام تلك الشهادة. الشهادات الموقعة ذاتياً مفيدة لتأمين نُظم مجموعات الاختبار. يجب تأمين نُظم مجموعات الإنتاج بشهادةٍ من مرجع مصدق (CA).

استخدام قالب نظام المجموعة الافتراضي الذي يتم إرساله في الوحدة

يمكنك استخدام إما أوامر PowerShell أو Azure CLI التالية لإنشاء نظام مجموعة بسرعة باستخدام القالب الافتراضي.

القالب الافتراضي المُستخدَّم متاح هنا لـ Windows وهنا لـ Ubuntu.

يمكن للأوامر التالية إنشاء أنظمة مجموعات Windows أو Linux، اعتماداً على كيفية تحديد معلمة نظام التشغيل. يخرج كل من الأمرين PowerShell/CLI الشهادة في CertificateOutputFolder المُحدد (تأكد من أن موقع مجلد الشهادة الذي تحدده موجوداً بالفعل قبل تشغيل الأمر!).

إشعار

يعمل الأمر PowerShell التالي فقط مع الوحدة Azure PowerShell Az. للتحقق من الإصدار الحالي من إصدار Azure Resource Manager PowerShell، بادر بتشغيل الأمر PowerShell التالي "Get-Module Az". اتبع هذا الرابط لترقية إصدار Azure Resource Manager PowerShell لديك.

وزَّع نظام المجموعة باستخدام PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password123!@#" | ConvertTo-SecureString -AsPlainText -Force 
$vmpassword="Password4321!@#" | ConvertTo-SecureString -AsPlainText -Force
$vmuser="myadmin"
$os="WindowsServer2016DatacenterwithContainers"
$certOutputFolder="c:\certificates"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -OS $os -VmPassword $vmpassword -VmUserName $vmuser

وزَّع نظام المجموعة باستخدام Azure CLI:

declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare CertSubjectName="mylinux.westus.cloudapp.azure.com"
declare vmpassword="Password!1"
declare certpassword="Password!4321"
declare vmuser="myadmin"
declare vmOs="UbuntuServer1804"
declare certOutputFolder="c:\certificates"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-output-folder $certOutputFolder --certificate-password $certpassword  \
	--vault-name $vaultName --vault-resource-group $resourceGroupName  \
	--template-file $templateFilePath --parameter-file $parametersFilePath --vm-os $vmOs  \
	--vm-password $vmpassword --vm-user-name $vmuser

استخدم قالبك المخصص

إذا كنت بحاجة إلى إنشاء قالب مخصص ليناسب احتياجاتك، فإننا نوصي بشدة بالبدء بأحد القوالب المتوفرة في نماذج قوالب Azure Service Fabric. اكتشف كيفية تخصيص قالب نظام المجموعة خاصتك.

إذا كان لديك بالفعل قالب مخصص، تحقق مرةً أخرى من تسمية جميع المعلمات الثلاثة المتعلقة بالشهادة في القالب وملف المعلمة على النحو التالي وأن القيم خالية كما يلي:

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

وزَّع نظام المجموعة باستخدام PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$certOutputFolder="c:\certificates"

$parameterFilePath="c:\mytemplates\mytemplateparm.json"
$templateFilePath="c:\mytemplates\mytemplate.json"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -TemplateFile $templateFilePath -ParameterFile $parameterFilePath 

وزَّع نظام المجموعة باستخدام Azure CLI:

declare certPassword=""
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare certSubjectName="mylinuxsecure.westus.cloudapp.azure.com"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"
declare certOutputFolder="c:\certificates"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-output-folder $certOutputFolder --certificate-password $certPassword  \
	--certificate-subject-name $certSubjectName \
	--template-file $templateFilePath --parameter-file $parametersFilePath

إنشاء نظام مجموعة جديد باستخدام شهادة X.509 خاصتك

يمكنك استخدام الأمر التالي لتحديد شهادة موجودة لإنشاء مجموعة جديدة وتأمينها.

إذا كانت هذه شهادة موقعة من المرجع المصدق سينتهي بك الأمر إلى استخدامها لأغراض أخرى أيضاً، فمن المستحسن أن توفر مجموعة موارد متميزة خصيصاً لـ key vault خاصتك. نوصي بوضع key vault في مجموعة الموارد خاصته. يتيح لك هذا الإجراء إزالة مجموعات موارد الحوسبة والتخزين، بما في ذلك مجموعة الموارد التي تحتوي على نظام مجموعة Service Fabric، دون فقد مفاتيحك وبياناتك السرية. يجب أن تكون مجموعة الموارد التي تحتوي على key vault في المنطقة نفسها مثل نظام المجموعة الذي تستخدمه.

استخدم القالب الافتراضي المكوّن من خمس عُقد، وهو قالب نوع عقدة واحد يُرسل في الوحدة

القالب الافتراضي المُستخدَّم متاح هنا لـ Windows وهنا لـ Ubuntu.

وزَّع نظام المجموعة باستخدام PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$vmpassword=("Password!4321" | ConvertTo-SecureString -AsPlainText -Force) 
$vmuser="myadmin"
$os="WindowsServer2016DatacenterwithContainers"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -KeyVaultResourceGroupName $vaultResourceGroupName -KeyVaultName $vaultName -CertificateFile C:\MyCertificates\chackocertificate3.pfx -CertificatePassword $certPassword -OS $os -VmPassword $vmpassword -VmUserName $vmuser 

وزَّع نظام المجموعة باستخدام Azure CLI:

declare vmPassword="Password!1"
declare certPassword="Password!1"
declare vmUser="myadmin"
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare certificate-file="c:\certificates\mycert.pem"
declare vmOs="UbuntuServer1804"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-file $certificate-file --certificate-password $certPassword  \
	--vault-name $vaultName --vault-resource-group $vaultResourceGroupName  \
    --vm-os vmOs \
	--vm-password $vmPassword --vm-user-name $vmUser

استخدم قالب نظام المجموعة المخصص خاصتك

إذا كنت بحاجة إلى إنشاء قالب مخصص ليناسب احتياجاتك، فإننا نوصي بشدة بالبدء بأحد القوالب المتوفرة في نماذج قوالب Azure Service Fabric. اكتشف كيفية تخصيص قالب نظام المجموعة خاصتك.

إذا كان لديك بالفعل قالب مخصص، إذن تأكد من التحقق مرةً أخرى من تسمية جميع المعلمات الثلاثة المتعلقة بالشهادة في القالب وملف المعلمة على النحو التالي وأن القيم خالية كما يلي.

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

وزَّع نظام المجموعة باستخدام PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$os="WindowsServer2016DatacenterwithContainers"
$parameterFilePath="c:\mytemplates\mytemplateparm.json"
$templateFilePath="c:\mytemplates\mytemplate.json"
$certificateFile="C:\MyCertificates\chackonewcertificate3.pem"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -TemplateFile $templateFilePath -ParameterFile $parameterFilePath -KeyVaultResourceGroupName $vaultResourceGroupName -KeyVaultName $vaultName -CertificateFile $certificateFile -CertificatePassword $certPassword

وزَّع نظام المجموعة باستخدام Azure CLI:

declare certPassword="Password!1"
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-file $certificate-file --certificate-password $password  \
	--vault-name $vaultName --vault-resource-group $vaultResourceGroupName  \
	--template-file $templateFilePath --parameter-file $parametersFilePath 

استخدم مؤشر إلى بيانات سرية تم تحميلها في key vault

لاستخدام key vault موجود، يجب أن يكون key vault ممكّناً للتوزيع للسماح لموفر مورد الحساب بالحصول على شهادات منه وتثبيته على عُقد نظام المجموعة.

وزَّع نظام المجموعة باستخدام PowerShell:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -EnabledForDeployment

$parameterFilePath="c:\mytemplates\mytemplate.json"
$templateFilePath="c:\mytemplates\mytemplateparm.json"
$secretID="https://test1.vault.azure.net:443/secrets/testcertificate4/55ec7c4dc61a462bbc645ffc9b4b225f"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -SecretIdentifier $secretID -TemplateFile $templateFilePath -ParameterFile $parameterFilePath 

وزَّع نظام المجموعة باستخدام Azure CLI:

declare $resourceGroupName = "testRG"
declare $parameterFilePath="c:\mytemplates\mytemplate.json"
declare $templateFilePath="c:\mytemplates\mytemplateparm.json"
declare $secretID="https://test1.vault.azure.net:443/secrets/testcertificate4/55ec7c4dc61a462bbc645ffc9b4b225f"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--secret-identifier $secretID  \
	--template-file $templateFilePath --parameter-file $parameterFilePath 

الخطوات التالية

في هذه المرحلة، لديك نظام مجموعة آمن قيد التشغيل في Azure. بعد ذلك، اتصل بمجموعتك واكتشف كيفية إدارة البيانات السرية للتطبيقات.

للحصول على بناء جملة JSON وخصائصه لاستخدام قالب، راجع مرجع قالب Microsoft.ServiceFabric/clusters.