Distribuera ett Service Fabric-kluster i Azure Stack Hub
Använd Service Fabric-klusterobjektet från Azure Marketplace för att distribuera ett skyddat Service Fabric-kluster i Azure Stack Hub.
Mer information om hur du arbetar med Service Fabric finns i Översikt över säkerhetsscenarier för Azure Service Fabric- och Service Fabric-kluster i Azure-dokumentationen.
Service Fabric-klustret i Azure Stack Hub använder inte resursprovidern Microsoft.ServiceFabric. I Azure Stack Hub är Service Fabric-klustret i stället en VM-skalningsuppsättning med förinstallerad programvara med hjälp av Desired State Configuration (DSC).
Förutsättningar
Följande krävs för att distribuera Service Fabric-klustret:
Klustercertifikat
Det här är X.509-servercertifikatet som du lägger till i Key Vault när du distribuerar Service Fabric.CN på det här certifikatet måste matcha det fullständigt kvalificerade domännamnet (FQDN) för Det Service Fabric-kluster som du skapar.
Certifikatformatet måste vara PFX eftersom både offentliga och privata nycklar krävs. Se kraven för att skapa det här certifikatet på serversidan.
Anteckning
Du kan använda ett självsignerat certifikat i stället för X.509-servercertifikatet i testsyfte. Självsignerade certifikat behöver inte matcha klustrets FQDN.
Admin klientcertifikat
Det här är det certifikat som klienten använder för att autentisera till Service Fabric-klustret, som kan vara självsignerat. Se kraven för att skapa det här klientcertifikatet.Följande objekt måste vara tillgängliga på Azure Stack Hub Marketplace:
- Windows Server 2016 – Mallen använder Windows Server 2016-avbildningen för att skapa klustret.
- Tillägg för anpassat skript – Tillägg för virtuell dator från Microsoft.
- Önskad faskonfiguration för PowerShell – Tillägg för virtuell dator från Microsoft.
Lägga till en hemlighet i Key Vault
Om du vill distribuera ett Service Fabric-kluster måste du ange rätt Key Vault hemlig identifierare eller URL för Service Fabric-klustret. Azure Resource Manager-mallen tar en Key Vault som indata. Mallen hämtar sedan klustercertifikatet när du installerar Service Fabric-klustret.
Viktigt
Du måste använda PowerShell för att lägga till en hemlighet för att Key Vault för användning med Service Fabric. Använd inte portalen.
Använd följande skript för att skapa Key Vault och lägga till klustercertifikatet i det. (Se förutsättningarna.) Innan du kör skriptet granskar du exempelskriptet och uppdaterar de angivna parametrarna så att de matchar din miljö. Det här skriptet matar också ut de värden som du behöver ange till Azure Resource Manager-mallen.
Tips
Innan skriptet kan lyckas måste det finnas ett offentligt erbjudande som innehåller tjänsterna för beräkning, nätverk, lagring och 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
Mer information finns i Hantera Key Vault på Azure Stack Hub med PowerShell.
Distribuera Marketplace-objektet
I användarportalen går du till + Skapa en resurs>Compute>Service Fabric-kluster.
För varje sida, till exempel Grundläggande, fyller du i distributionsformuläret. Använd standardvärden om du inte är säker på ett värde.
För distributioner till en frånkopplad Azure Stack Hub eller för att distribuera en annan version av Service Fabric laddar du ned Service Fabric-distributionspaketet och dess motsvarande körningspaket och är värd för det på en Azure Stack Hub-blob. Ange dessa värden i fälten URL för Service Fabric-distributionspaketet och Service Fabric-körningspaketets URL .
Anteckning
Det finns kompatibilitetsproblem mellan den senaste versionen av Service Fabric och dess motsvarande SDK. Innan problemet har åtgärdats anger du följande parametrar till distributionspaketets URL och körningspaket-URL. Distributionerna misslyckas annars.
- URL för Service Fabric-distributionspaket: 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 för Service Fabric-körningspaket: https://download.microsoft.com/download/B/0/B/B0BCCAC5-65AA-4BE3-AB13-D5FF5890F4B5/6.5.641.9590/MicrosoftAzureServiceFabric.6.5.641.9590.cab
För frånkopplade distributioner laddar du ned dessa paket från den angivna platsen och är värd för dem lokalt på en Azure Stack Hub-blob.
På sidan Nätverksinställningar kan du ange specifika portar som ska öppnas för dina program:
På sidan Säkerhet lägger du till de värden som du fick från att skapa Azure-Key Vault och ladda upp hemligheten.
För tumavtrycket Admin klientcertifikat anger du tumavtrycket för Admin-klientcertifikatet. (Se förutsättningarna.)
- Källa Key Vault: Ange hela
keyVault id
strängen från skriptresultatet. - URL för klustercertifikat: Ange hela URL:en från
Secret Id
från skriptresultatet. - Tumavtryck för klustercertifikat: Ange tumavtrycket för klustercertifikatet från skriptresultatet.
- Url till servercertifikat: Om du vill använda ett separat certifikat från klustercertifikatet laddar du upp certifikatet till ett nyckelvalv och anger den fullständiga URL:en till hemligheten.
- Tumavtryck för servercertifikat: Ange tumavtrycket för servercertifikatet
- Admin tumavtryck för klientcertifikat: Ange Admin tumavtrycket för klientcertifikatet som skapades i förutsättningarna.
- Källa Key Vault: Ange hela
Slutför guiden och välj sedan Skapa för att distribuera Service Fabric-klustret.
Få åtkomst till Service Fabric-klustret
Du kan komma åt Service Fabric-klustret med hjälp av antingen Service Fabric Explorer eller Service Fabric PowerShell.
Använda Service Fabric Explorer
Kontrollera att webbläsaren har åtkomst till ditt Admin-klientcertifikat och kan autentisera till Ditt Service Fabric-kluster.
a. Öppna Internet Explorer och gå tillInnehållscertifikat> för Internetalternativ>.
b. På Certifikat väljer du Importera för att starta guiden Importera certifikat och klickar sedan på Nästa. På sidan Fil att importera klickar du på Bläddra och väljer det Admin klientcertifikat som du angav i mallen Azure Resource Manager.
Anteckning
Det här certifikatet är inte det klustercertifikat som tidigare lades till i Key Vault.
c. Kontrollera att du har valt "Personal Information Exchange" i listrutan för tillägg i Utforskaren-fönstret.
d. På sidan Certifikatarkiv väljer du Personlig och slutför sedan guiden.
Så här hittar du FQDN för ditt Service Fabric-kluster:
a. Gå till den resursgrupp som är associerad med Service Fabric-klustret och leta upp resursen offentlig IP-adress . Välj objektet som är associerat med den offentliga IP-adressen för att öppna bladet Offentlig IP-adress .
b. På bladet Offentlig IP-adress visas FQDN som DNS-namn.
Om du vill hitta URL:en för Service Fabric Explorer och klientanslutningsslutpunkten granskar du resultatet av malldistributionen.
Gå till
https://*FQDN*:19080
i webbläsaren. Ersätt FQDN med FQDN för ditt Service Fabric-kluster från steg 2.
Om du har använt ett självsignerat certifikat får du en varning om att anslutningen inte är säker. Om du vill fortsätta till webbplatsen väljer du Mer information och sedan Gå vidare till webbsidan.Om du vill autentisera till webbplatsen måste du välja ett certifikat som ska användas. Välj Fler alternativ, välj lämpligt certifikat och klicka sedan på OK för att ansluta till Service Fabric Explorer.
Använda Service Fabric PowerShell
Installera Microsoft Azure Service Fabric SDK från Förbered din utvecklingsmiljö i Windows i Azure Service Fabric-dokumentationen.
När installationen är klar konfigurerar du systemmiljövariablerna för att säkerställa att Service Fabric-cmdletarna är tillgängliga från PowerShell.
a. Gå till Kontrollpanelen>System och säkerhetssystem> och välj sedan Avancerade systeminställningar.
b. På fliken Avancerat i Systemegenskaper väljer du Miljövariabler.
c. För Systemvariabler redigerar du Sökväg och kontrollerar att C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code finns överst i listan över miljövariabler.
När du har ändrat ordningen på miljövariablerna startar du om PowerShell och kör sedan följande PowerShell-skript för att få åtkomst till Service Fabric-klustret:
Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric CLUSTER FQDN\]:19000" \` -X509Credential -ServerCertThumbprint 761A0D17B030723A37AA2E08225CD7EA8BE9F86A \` -FindType FindByThumbprint -FindValue 0272251171BA32CEC7938A65B8A6A553AA2D3283 \` -StoreLocation CurrentUser -StoreName My -Verbose
Anteckning
Det finns inga https:// före namnet på klustret i skriptet. Port 19000 krävs.