Azure Stack Hub'da Service Fabric kümesi dağıtma
Azure Stack Hub'da güvenli bir Service Fabric kümesi dağıtmak için Azure Market Service Fabric Kümesi öğesini kullanın.
Service Fabric ile çalışma hakkında daha fazla bilgi için Azure belgelerindeki Azure Service Fabric ve Service Fabric kümesi güvenlik senaryolarına genel bakış bölümüne bakın.
Azure Stack Hub'daki Service Fabric kümesi Microsoft.ServiceFabric kaynak sağlayıcısını kullanmaz. Bunun yerine, Azure Stack Hub'da Service Fabric kümesi, Desired State Configuration (DSC) kullanan önceden yüklenmiş yazılım içeren bir sanal makine ölçek kümesidir.
Önkoşullar
Service Fabric kümesini dağıtmak için aşağıdakiler gereklidir:
Küme sertifikası
Bu, Service Fabric'i dağıtırken Key Vault eklediğiniz X.509 sunucu sertifikasıdır.Bu sertifikadaki CN , oluşturduğunuz Service Fabric kümesinin Tam Etki Alanı Adı (FQDN) ile eşleşmelidir.
Hem ortak hem de özel anahtarlar gerektiğinden sertifika biçimi PFX olmalıdır. Bu sunucu tarafı sertifikasını oluşturma gereksinimlerine bakın.
Not
Test amacıyla X.509 sunucu sertifikasının otomatik olarak imzalanan sertifikasını kullanabilirsiniz. Otomatik olarak imzalanan sertifikaların kümenin FQDN'sini eşleştirmesi gerekmez.
Yönetici İstemci sertifikası
Bu, istemcinin Service Fabric kümesinde kimlik doğrulaması yapmak için kullandığı ve otomatik olarak imzalanabilen sertifikadır. Bu istemci sertifikasını oluşturma gereksinimlerine bakın.Aşağıdaki öğelerin Azure Stack Hub Marketi'nde kullanılabilir olması gerekir:
- Windows Server 2016 - Şablon, kümeyi oluşturmak için Windows Server 2016 görüntüsünü kullanır.
- Özel Betik Uzantısı - Microsoft'tan Sanal Makine Uzantısı.
- PowerShell İstenen Aşama Yapılandırması - Microsoft'tan Sanal Makine Uzantısı.
Key Vault’a gizli dizi ekleme
Service Fabric kümesini dağıtmak için, Service Fabric kümesi için doğru Key Vault Gizli Dizi Tanımlayıcısı veya URL'sini belirtmeniz gerekir. Azure Resource Manager şablonu giriş olarak bir Key Vault alır. Ardından şablon, Service Fabric kümesini yüklerken Küme sertifikasını alır.
Önemli
Service Fabric ile kullanılmak üzere Key Vault gizli dizi eklemek için PowerShell kullanmalısınız. Portalı kullanmayın.
Key Vault oluşturmak ve küme sertifikasını buna eklemek için aşağıdaki betiği kullanın. ( Önkoşullara bakın.) Betiği çalıştırmadan önce örnek betiği gözden geçirin ve belirtilen parametreleri ortamınızla eşleşecek şekilde güncelleştirin. Bu betik, Azure Resource Manager şablonuna sağlamanız gereken değerleri de verir.
İpucu
Betiğin başarılı olması için İşlem, Ağ, Depolama ve Key Vault hizmetlerini içeren genel bir teklif olması gerekir.
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
Daha fazla bilgi için bkz. PowerShell ile Azure Stack Hub'da Key Vault yönetme.
Market öğesini dağıtma
Kullanıcı portalında + Kaynak> oluşturmaİşlem>Hizmeti Doku Kümesi'ne gidin.
Temel bilgiler gibi her sayfa için dağıtım formunu doldurun. Bir değerden emin değilseniz varsayılanları kullanın.
Bağlantısı kesilmiş bir Azure Stack Hub'a yapılan dağıtımlar veya Service Fabric'in başka bir sürümünü dağıtmak için Service Fabric dağıtım paketini ve buna karşılık gelen çalışma zamanı paketini indirin ve bir Azure Stack Hub blobu üzerinde barındırın. Bu değerleri Service Fabric dağıtım paketi URL'si ve Service Fabric çalışma zamanı paketi URL'si alanlarına sağlayın.
Not
Service Fabric'in en son sürümüyle ilgili SDK'sı arasında uyumluluk sorunları vardır. Bu sorun giderilene kadar lütfen dağıtım paketi URL'sine ve çalışma zamanı paketi URL'sine aşağıdaki parametreleri sağlayın. Aksi takdirde dağıtımlarınız başarısız olur.
- Service Fabric dağıtım paketi URL'si: 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
- Service Fabric çalışma zamanı paketi URL'si: https://download.microsoft.com/download/B/0/B/B0BCCAC5-65AA-4BE3-AB13-D5FF5890F4B5/6.5.641.9590/MicrosoftAzureServiceFabric.6.5.641.9590.cab
Bağlantısız dağıtımlar için bu paketleri belirtilen konumdan indirin ve yerel olarak bir Azure Stack Hub Blobu üzerinde barındırın.
Ağ Ayarları sayfasında, uygulamalarınız için açılacak belirli bağlantı noktalarını belirtebilirsiniz:
Güvenlik sayfasında Azure Key Vault oluşturma ve Gizli Diziyi Karşıya Yükleme adımlarından elde ettiğiniz değerleri ekleyin.
Yönetici İstemci Sertifikası Parmak İzi için Yönetici İstemci sertifikasının parmak izini girin. ( Önkoşullara bakın.)
- Kaynak Key Vault: Betik sonuçlarından tüm
keyVault id
dizeyi belirtin. - Küme Sertifikası URL'si: Betik sonuçlarından url'nin
Secret Id
tamamını belirtin. - Küme Sertifikası parmak izi: Betik sonuçlarından Küme Sertifikası Parmak İzi'ni belirtin.
- Sunucu Sertifikası URL'si: Küme sertifikasından ayrı bir sertifika kullanmak istiyorsanız, sertifikayı bir anahtar kasasına yükleyin ve gizli dizinin tam URL'sini sağlayın.
- Sunucu Sertifikası parmak izi: Sunucu Sertifikası için parmak izini belirtin
- Yönetici İstemci Sertifikası Parmak İzleri: Önkoşullarda oluşturulan Yönetici İstemci Sertifikası Parmak İzini belirtin.
- Kaynak Key Vault: Betik sonuçlarından tüm
Sihirbazı tamamlayın ve ardından Oluştur'u seçerek Service Fabric Kümesini dağıtın.
Service Fabric Kümesine Erişme
Service Fabric kümesine erişmek için Service Fabric Explorer veya Service Fabric PowerShell'i kullanabilirsiniz.
Service Fabric Explorer kullanma
Tarayıcının Yönetici istemci sertifikanıza erişebildiğinden ve Service Fabric kümenizde kimlik doğrulaması yapabilecek olduğundan emin olun.
a. Internet Explorer'ı açın ve İnternet Seçenekleri>İçerik>Sertifikaları'na gidin.
b. Sertifikalar'da İçeri Aktar'ı seçerek Sertifika İçeri Aktarma Sihirbazı'nı başlatın ve İleri'ye tıklayın. İçeri Aktaracak Dosya sayfasında Gözat'a tıklayın ve Azure Resource Manager şablonuna sağladığınız Yönetici İstemci sertifikasını seçin.
Not
Bu sertifika, daha önce Key Vault eklenen Küme sertifikası değildir.
c. Dosya Gezgini penceresinin uzantı açılan listesinde "Kişisel Bilgi Değişimi" öğesinin seçili olduğundan emin olun.
d. Sertifika Deposu sayfasında Kişisel'i seçin ve sihirbazı tamamlayın.
Service Fabric kümenizin FQDN'sini bulmak için:
a. Service Fabric kümenizle ilişkili kaynak grubuna gidin ve Genel IP adresi kaynağını bulun. Genel IP adresi dikey penceresini açmak için Genel IP adresiyle ilişkili nesneyi seçin.
b. Genel IP adresi dikey penceresinde FQDN , DNS adı olarak görüntülenir.
Service Fabric Explorer url'sini ve İstemci bağlantı uç noktasını bulmak için Şablon dağıtımının sonuçlarını gözden geçirin.
Tarayıcınızda
https://*FQDN*:19080
adresine gidin. FQDN değerini 2. adımdaki Service Fabric kümenizin FQDN'siyle değiştirin.
Otomatik olarak imzalanan bir sertifika kullandıysanız bağlantının güvenli olmadığını belirten bir uyarı alırsınız. Web sitesine devam etmek için Daha Fazla Bilgi'yi seçin ve ardından Web sayfasına gidin.Sitede kimlik doğrulaması yapmak için kullanılacak sertifikayı seçmeniz gerekir. Diğer seçenekler'i seçin, uygun sertifikayı seçin ve ardından Service Fabric Explorer bağlanmak için Tamam'a tıklayın.
Service Fabric PowerShell kullanma
Azure Service Fabric belgelerinde Windows'ta geliştirme ortamınızı hazırlama bölümünden Microsoft Azure Service Fabric SDK'sını yükleyin.
Yükleme tamamlandıktan sonra, Service Fabric cmdlet'lerinin PowerShell'den erişilebilir olduğundan emin olmak için sistem Ortamı değişkenlerini yapılandırın.
a. Denetim Masası>Sistem ve Güvenlik>Sistemi'ne gidin ve Gelişmiş sistem ayarları'nı seçin.
b. Sistem Özellikleri'ninGelişmiş sekmesinde Ortam Değişkenleri'ni seçin.
c. Sistem değişkenleri için Yol'u düzenleyin ve C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code dosyasının ortam değişkenleri listesinin en üstünde olduğundan emin olun.
Ortam değişkenlerinin sırasını değiştirdikten sonra, PowerShell'i yeniden başlatın ve service Fabric kümesine erişmek için aşağıdaki PowerShell betiğini çalıştırın:
Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric CLUSTER FQDN\]:19000" \` -X509Credential -ServerCertThumbprint 761A0D17B030723A37AA2E08225CD7EA8BE9F86A \` -FindType FindByThumbprint -FindValue 0272251171BA32CEC7938A65B8A6A553AA2D3283 \` -StoreLocation CurrentUser -StoreName My -Verbose
Not
Betikteki küme adından önce https:// yoktur. Bağlantı noktası 19000 gereklidir.