Menyebarkan kluster Service Fabric di Azure Stack Hub
Gunakan item Kluster Service Fabric dari Marketplace Azure untuk menyebarkan kluster Service Fabric yang aman di Azure Stack Hub.
Untuk informasi selengkapnya mengenai cara menggunakan Service Fabric, lihat Ringkasan Azure Service Fabric dan skenario keamanan kluster Service Fabric di dokumentasi Azure.
Kluster Service Fabric di Azure Stack Hub tidak menggunakan penyedia sumber Microsoft.ServiceFabric. Sebagai gantinya, di Azure Stack Hub, kluster Service Fabric adalah set skala mesin virtual dengan perangkat lunak yang sudah diinstal sebelumnya menggunakan Desired State Configuration (DSC).
Prasyarat
Hal berikut diperlukan untuk menyebarkan kluster Service Fabric:
Sertifikat kluster
Ini adalah sertifikat server X.509 yang Anda tambahkan ke Key Vault saat menyebarkan Service Fabric.CN pada sertifikat ini harus cocok dengan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) kluster Service Fabric yang Anda buat.
Format sertifikat harus PFX, karena kedua kunci publik dan privat diperlukan. Lihat persyaratan untuk membuat sertifikat sisi server ini.
Catatan
Anda dapat menggunakan sertifikat yang ditandatangani sendiri sebagai pengganti sertifikat server X.509 untuk tujuan penguian. Sertifikat yang ditandatangani sendiri tidak perlu cocok dengan FQDN kluster.
Sertifikat Klien Admin
Ini adalah sertifikat yang digunakan klien untuk mengautentikasi ke kluster Service Fabric, yang dapat ditandatangani sendiri. Lihat persyaratan untuk membuat sertifikat klien.Item berikut harus tersedia di Marketplace Azure Stack Hub:
- Windows Server 2016 - Templat menggunakan gambar Windows Server 2016 untuk membuat kluster.
- Ekstensi Skrip Kustom - Ekstensi Mesin Virtual dari Microsoft.
- Desired Stage Configuration PowerShell - Ekstensi Mesin Virtual dari Microsoft.
Menambahkan rahasia ke Key Vault
Untuk menyebarkan kluster Service Fabric, Anda harus menentukan Pengidentifikasi Rahasia Key Vault atau URL untuk kluster Service Fabric. Template Azure Resource Manager mengambil Key Vault sebagai input. Kemudian templat mengambil sertifikat Kluster saat menginstal kluster Service Fabric.
Penting
Anda harus menggunakan PowerShell untuk menambahkan rahasia ke Key Vault untuk digunakan dengan Service Fabric. Jangan gunakan portal.
Gunakan skrip berikut untuk membuat Key Vault dan menambahkan sertifikat kluster ke dalamnya. (Lihat prasyarat). Sebelum Anda menjalankan skrip, tinjau contoh skrip dan perbarui parameter yang ditunjukkan agar sesuai dengan lingkungan Anda. Skrip ini juga akan menghasilkan nilai yang perlu Anda berikan ke templat Azure Resource Manager.
Tip
Sebelum skrip dapat berhasil, harus ada penawaran publik yang mencakup layanan untuk Compute, Network, Storage, dan Key Vault.
function Get-ThumbprintFromPfx($PfxFilePath, $Password)
{
return New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PfxFilePath, $Password)
}
function Publish-SecretToKeyVault ($PfxFilePath, $Password, $KeyVaultName)
{
$keyVaultSecretName = "ClusterCertificate"
$certContentInBytes = [io.file]::ReadAllBytes($PfxFilePath)
$pfxAsBase64EncodedString = [System.Convert]::ToBase64String($certContentInBytes)
$jsonObject = ConvertTo-Json -Depth 10 ([pscustomobject]@{
data = $pfxAsBase64EncodedString
dataType = 'pfx'
password = $Password
})
$jsonObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$jsonEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
$secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText -Force
$keyVaultSecret = Set-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName -SecretValue $secret
$pfxCertObject = Get-ThumbprintFromPfx -PfxFilePath $PfxFilePath -Password $Password
Write-Host "KeyVault id: " -ForegroundColor Green
(Get-AzKeyVault -VaultName $KeyVaultName).ResourceId
Write-Host "Secret Id: " -ForegroundColor Green
(Get-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName).id
Write-Host "Cluster Certificate Thumbprint: " -ForegroundColor Green
$pfxCertObject.Thumbprint
}
#========================== CHANGE THESE VALUES ===============================
$armEndpoint = "https://management.local.azurestack.external"
$tenantId = "your_tenant_ID"
$location = "local"
$clusterCertPfxPath = "Your_path_to_ClusterCert.pfx"
$clusterCertPfxPassword = "Your_password_for_ClusterCert.pfx"
#==============================================================================
Add-AzEnvironment -Name AzureStack -ARMEndpoint $armEndpoint
Connect-AzAccount -Environment AzureStack -TenantId $tenantId
$rgName = "sfvaultrg"
Write-Host "Creating Resource Group..." -ForegroundColor Yellow
New-AzResourceGroup -Name $rgName -Location $location
Write-Host "Creating Key Vault..." -ForegroundColor Yellow
$Vault = New-AzKeyVault -VaultName sfvault -ResourceGroupName $rgName -Location $location -EnabledForTemplateDeployment -EnabledForDeployment -EnabledForDiskEncryption
Write-Host "Publishing certificate to Vault..." -ForegroundColor Yellow
Publish-SecretToKeyVault -PfxFilePath $clusterCertPfxPath -Password $clusterCertPfxPassword -KeyVaultName $vault.VaultName
Untuk informasi selengkapnya, lihat Mengelola Key Vault di Azure Stack Hub dengan PowerShell.
Menyebarkan item Marketplace
Di portal pengguna, buka + Buat sumber daya>Komputasi>Kluster Service Fabric.
Untuk setiap halaman, seperti Dasar-Dasar, isi formulir penyebaran. Gunakan default jika Anda tidak yakin dengan nilainya.
Untuk penyebaran ke Azure Stack Hub yang tidak tersambung atau untuk menyebarkan versi Service Fabric lain, unduh paket penyebaran Service Fabric dan paket runtime yang sesuai, lalu hosting di blob Azure Stack Hub. Berikan nilai-nilai ini ke bidang URL paket penyebaran Service Fabric dan URL paket runtime Service Fabric.
Catatan
Ada masalah kompatibilitas antara rilis terbaru Service Fabric dan SDK yang sesuai. Sampai masalah tersebut ditangani, harap berikan parameter berikut ke URL paket penyebaran dan URL paket runtime. Jika tidak, penyebaran Anda akan gagal.
- URL paket penyebaran Service Fabric: https://download.microsoft.com/download/8/3/6/836E3E99-A300-4714-8278-96BC3E8B5528/6.5.641.9590/Microsoft.Azure.ServiceFabric.WindowsServer.6.5.641.9590.zip
- URL paket runtime Service Fabric: https://download.microsoft.com/download/B/0/B/B0BCCAC5-65AA-4BE3-AB13-D5FF5890F4B5/6.5.641.9590/MicrosoftAzureServiceFabric.6.5.641.9590.cab
Untuk penyebaran yang tidak tersambung, unduh paket ini dari lokasi yang ditentukan dan hosting secara lokal di Blob Azure Stack Hub.
Di halaman Pengaturan Jaringan, Anda dapat menentukan port spesifik yang akan dibuka untuk aplikasi Anda:
Di halaman Keamanan, tambahkan nilai yang Anda dapatkan dari pembuatan Azure Key Vault dan Pengunggahan Rahasia.
Untuk Thumbprint Sertifikat Klien Admin, masukkan thumbprint sertifikat Klien Admin. (Lihat prasyarat.)
- Key Vault Sumber: Tentukan seluruh
keyVault id
string dari hasil skrip. - URL Sertifikat Kluster: Tentukan seluruh URL dari
Secret Id
dari hasil skrip. - Thumbprint Sertifikat Kluster: Tentukan Thumbprint Sertifikat Kluster dari hasil skrip.
- URL Sertifikat Server: Jika Anda ingin menggunakan sertifikat terpisah dari sertifikat Kluster, unggah sertifikat ke keyvault dan berikan url lengkap ke rahasia.
- Thumbprint Sertifikat Server: Tentukan thumbprint untuk Sertifikat Server
- Thumbprint Sertifikat Klien Admin: Tentukan Thumbprint Sertifikat Klien Admin yang dibuat dalam prasyarat.
- Key Vault Sumber: Tentukan seluruh
Selesaikan wizard, kemudian pilih Buat untuk menyebarkan Kluster Service Fabric.
Mengakses Kluster Service Fabric
Anda dapat mengakses kluster Service Fabric dengan menggunakan Service Fabric Explorer atau Service Fabric PowerShell.
Gunakan Service Fabric Explorer
Pastikan browser memiliki akses ke Sertifikat klien admin Anda dan dapat mengautentikasi ke kluster Service Fabric Anda.
a. Buka Internet Explorer lalu buka Opsi Internet>Konten>Sertifikat.
b. Pada sertifikat, pilih Impor untuk memulai Wizard Impor Sertifikat, kemudian klik Berikutnya. Di halaman File untuk Diimpor, klik Telusuri, lalu pilih sertifikat Klien Admin yang Anda berikan untuk templat Azure Resource Manager.
Catatan
Sertifikat ini bukan sertifikat Kluster yang sebelumnya ditambahkan ke Key Vault.
c. Pastikan Anda memiliki "Pertukaran Informasi Pribadi" yang dipilih di dropdown ekstensi jendela File Explorer.
d. Di halaman Penyimpanan Sertifikat, pilih Pribadi, kemudian selesaikan wizard.
Untuk menemukan FQDN kluster Service Fabric Anda:
a. Buka grup sumber daya yang terkait dengan kluster Service Fabric dan temukan sumber daya alamat IP Publik. Pilih objek yang terkait dengan alamat IP Publik untuk membuka bilah alamat IP Publik.
b. Pada bilah alamat IP Publik, FQDN ditampilkan sebagai nama DNS.
Untuk menemukan URL untuk Service Fabric Explorer, dan titik akhir koneksi Klien, tinjau hasil penyebaran Templat.
Di browser Anda, buka
https://*FQDN*:19080
. Ganti FQDN dengan FQDN kluster Service Fabric Anda dari langkah 2.
Jika Anda telah menggunakan sertifikat yang ditandatangani sendiri, Anda akan mendapatkan peringatan bahwa koneksi tidak aman. Untuk melanjutkan ke situs web, pilih Informasi Selengkapnya, kemudian Lanjutkan ke halaman web.Untuk mengautentikasi ke situs, Anda harus memilih sertifikat yang akan digunakan. Pilih Pilihan lainnya, pilih sertifikat yang tepat, lalu klik OK untuk terhubung ke Service Fabric Explorer.
Menggunakan Service Fabric PowerShell
Instal SDK Microsoft Azure Service Fabric dari Menyiapkan lingkungan pengembangan Anda di Windows dalam dokumentasi Azure Service Fabric.
Setelah instalasi selesai, konfigurasikan variabel Lingkungan sistem untuk memastikan bahwa cmdlet Service Fabric dapat diakses dari PowerShell.
a. Buka Panel Kontrol>Sistem dan Keamanan>Sistem, kemudian pilih Pengaturan sistem tingkat lanjut.
b. Pada tab Tingkat LanjutProperti Sistem, pilih Variabel Lingkungan.
c. Untuk Variabel sistem, edit Jalur dan pastikan bahwa C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code berada di bagian atas daftar variabel lingkungan.
Setelah mengubah urutan variabel lingkungan, hidupkan ulang PowerShell lalu jalankan skrip PowerShell berikut untuk mendapatkan akses ke kluster Service Fabric:
Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric CLUSTER FQDN\]:19000" \` -X509Credential -ServerCertThumbprint 761A0D17B030723A37AA2E08225CD7EA8BE9F86A \` -FindType FindByThumbprint -FindValue 0272251171BA32CEC7938A65B8A6A553AA2D3283 \` -StoreLocation CurrentUser -StoreName My -Verbose
Catatan
Tidak ada https:// sebelum nama kluster dalam skrip. Port 19000 diperlukan.