New-AzureRmServiceFabricCluster
This command uses certificates that you provide or system generated self-signed certificates to set up a new service fabric cluster. It can use a default template or a custom template that you provide. You have the option of specifying a folder to export the self-signed certificates to or fetching them later from the key vault.
Warning
The AzureRM PowerShell module has been officially deprecated as of February 29, 2024. Users are
advised to migrate from AzureRM to the Az PowerShell module to ensure continued support and
updates.
Although the AzureRM module may still function, it's no longer maintained or supported, placing
any continued use at the user's discretion and risk. Please refer to our
migration resources for guidance on transitioning to the Az module.
Syntax
ByDefaultArmTemplate (Default)
New-AzureRmServiceFabricCluster
[-ResourceGroupName] <String>
-Location <String>
-VmPassword <SecureString>
[-CertificateOutputFolder <String>]
[-CertificatePassword <SecureString>]
[-KeyVaultResouceGroupName <String>]
[-KeyVaultName <String>]
[-Name <String>]
[-VmUserName <String>]
[-ClusterSize <Int32>]
[-CertificateSubjectName <String>]
[-OS <OperatingSystem>]
[-VmSku <String>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByExistingKeyVault
New-AzureRmServiceFabricCluster
[-ResourceGroupName] <String>
-TemplateFile <String>
-ParameterFile <String>
-SecretIdentifier <String>
[-VmPassword <SecureString>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByNewPfxAndVaultName
New-AzureRmServiceFabricCluster
[-ResourceGroupName] <String>
-TemplateFile <String>
-ParameterFile <String>
[-CertificateOutputFolder <String>]
[-CertificatePassword <SecureString>]
[-KeyVaultResouceGroupName <String>]
[-KeyVaultName <String>]
[-CertificateSubjectName <String>]
[-VmPassword <SecureString>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByExistingPfxAndVaultName
New-AzureRmServiceFabricCluster
[-ResourceGroupName] <String>
-TemplateFile <String>
-ParameterFile <String>
-CertificateFile <String>
[-CertificatePassword <SecureString>]
[-SecondaryCertificateFile <String>]
[-SecondaryCertificatePassword <SecureString>]
[-KeyVaultResouceGroupName <String>]
[-KeyVaultName <String>]
[-VmPassword <SecureString>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The New-AzureRmServiceFabricCluster command uses certificates that you provide or system generated self-signed certificates to set up a new service fabric cluster. The template used can be a default template or a custom template that you provide. You have the option of specifying a folder to export the self-signed certificates or fetching them later from the key vault.
If you are specifying a custom template and parameter file, you don't need to provide the certificate information in the parameter file, the system will populate these parameters.
The four options are detailed below. Scroll down for explanations of each of the parameters.
Examples
Example 1: Specify only the cluster size, the cert subject name, and the OS to deploy a cluster.
$pass="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$RGname="test01"
$clusterloc="SouthCentralUS"
$subname="{0}.{1}.cloudapp.azure.com" -f $RGname, $clusterloc
$pfxfolder="c:\certs"
Write-Output "Create cluster in '$clusterloc' with cert subject name '$subname' and cert output path '$pfxfolder'"
New-AzureRmServiceFabricCluster -ResourceGroupName $RGname -Location $clusterloc -ClusterSize 5 -VmPassword $pass -CertificateSubjectName $subname -CertificateOutputFolder $pfxfolder -CertificatePassword $pass -OS WindowsServer2016Datacenter
This command specifies only the cluster size, the cert subject name, and the OS to deploy a cluster.
Example 2: Specify an existing Certificate resource in a key vault and a custom template to deploy a cluster
$RGname="test20"
$templateParmfile="C:\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploytest.parameters.json"
$templateFile="C:\azure-quickstart-templates\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploy.json"
$secretId="https://test1.vault.azure.net:443/secrets/testcertificate4/56ec774dc61a462bbc645ffc9b4b225f"
New-AzureRmServiceFabricCluster -ResourceGroupName $RGname -TemplateFile $templateFile -ParameterFile $templateParmfile -SecretIdentifier $secretId
This command specifies an existing Certificate resource in a key vault and a custom template to deploy a cluster.
Example 3: Create a new cluster using a custom template. Specify a different resource group name for the key vault and have the system upload a new certificate to it
$pass="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$RGname="test20"
$keyVaultRG="test20kvrg"
$keyVault="test20kv"
$clusterloc="SouthCentralUS"
$subname="{0}.{1}.$clusterloc.cloudapp.azure.com" -f $RGName, $clusterloc
$pfxfolder="~\Documents"
$templateParmfile="C:\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploytest.parameters.json"
$templateFile="C:\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploy.json"
New-AzureRmServiceFabricCluster -ResourceGroupName $RGname -TemplateFile $templateFile -ParameterFile $templateParmfile -CertificateOutputFolder $pfxfolder -CertificatePassword $pass -KeyVaultResouceGroupName $keyVaultRG -KeyVaultName $keyVault -CertificateSubjectName $subname
This command creates a new cluster using a custom template. Specify a different resource group name for the key vault and have the system upload a new certificate to it
Example 4: Bring your own Certificate and custom template and create a new cluster
$pass="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$RGname="test20"
$keyVaultRG="test20kvrg"
$keyVault="test20kv"
$pfxsourcefile="c:\Mycertificates\my2017Prodcert.pfx"
$templateParmfile="~\Documents\GitHub\azure-quickstart-templates-parms\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploytest.parameters.json"
$templateFile="~\GitHub\azure-quickstart-templates\service-fabric-secure-nsg-cluster-65-node-3-nodetype\azuredeploy.json"
New-AzureRmServiceFabricCluster -ResourceGroupName $RGname -TemplateFile $templateFile -ParameterFile $templateParmfile -CertificateFile $pfxsourcefile -CertificatePassword $pass -KeyVaultResouceGroupName $keyVaultRG -KeyVaultName $keyVault
This command will let you bring your own Certificate and custom template and create a new cluster.
Parameters
-CertificateFile
The existing certificate file path for the primary cluster certificate.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: Source
Parameter sets
ByExistingPfxAndVaultName
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-CertificateOutputFolder
The folder of the new certificate file to be created.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: Destination
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-CertificatePassword
The password of the certificate file.
Parameter properties
Type: SecureString
Default value: None
Supports wildcards: False
DontShow: False
Aliases: CertPassword
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByExistingPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-CertificateSubjectName
The subject name of the certificate to be created.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: Subject
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-ClusterSize
The number of nodes in the cluster. Default are 5 nodes.
Parameter properties
Type: Int32
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-Confirm
Prompts you for confirmation before running the cmdlet.
Parameter properties
Type: SwitchParameter
Default value: None
Supports wildcards: False
DontShow: False
Aliases: cf
Parameter sets
(All)
Position: Named
Mandatory: False
Value from pipeline: False
Value from pipeline by property name: False
Value from remaining arguments: False
-DefaultProfile
The credentials, account, tenant, and subscription used for communication with azure.
Parameter properties
Type: IAzureContextContainer
Default value: None
Supports wildcards: False
DontShow: False
Aliases: AzureRmContext, AzureCredential
Parameter sets
(All)
Position: Named
Mandatory: False
Value from pipeline: False
Value from pipeline by property name: False
Value from remaining arguments: False
-KeyVaultName
Azure key vault name. If not given, it will be defaulted to the resource group name.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByExistingPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-KeyVaultResouceGroupName
Azure key vault resource group name. If not given, it will be defaulted to resource group name.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByExistingPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-Location
The resource group location.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-Name
Specify the name of the cluster. If not given, it will be same as resource group name.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: ClusterName
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-OS
The Operating System of the VMs that make up the cluster.
Parameter properties
Type: OperatingSystem
Default value: None
Accepted values: WindowsServer2012R2Datacenter, WindowsServer2016Datacenter, WindowsServer2016DatacenterwithContainers, UbuntuServer1604
Supports wildcards: False
DontShow: False
Aliases: VmImage
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: False
Value from pipeline by property name: True
Value from remaining arguments: False
-ParameterFile
The path to the template parameter file.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByExistingKeyVault
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByExistingPfxAndVaultName
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-ResourceGroupName
Specify the name of the resource group.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
(All)
Position: 0
Mandatory: True
Value from pipeline: False
Value from pipeline by property name: True
Value from remaining arguments: False
-SecondaryCertificateFile
The existing certificate file path for the secondary cluster certificate.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: SecSource
Parameter sets
ByExistingPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-SecondaryCertificatePassword
The password of the certificate file.
Parameter properties
Type: SecureString
Default value: None
Supports wildcards: False
DontShow: False
Aliases: SecCertPassword
Parameter sets
ByExistingPfxAndVaultName
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-SecretIdentifier
The existing Azure key vault secret URL, for example: 'https://mykv.vault.azure.net:443/secrets/mysecrets/55ec7c4dc61a462bbc645ffc9b4b225f'.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByExistingKeyVault
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-TemplateFile
The path to the template file.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByExistingKeyVault
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByNewPfxAndVaultName
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
ByExistingPfxAndVaultName
Position: Named
Mandatory: True
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-VmPassword
The password of the Vm.
Parameter properties
Type: SecureString
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: True
Value from pipeline: False
Value from pipeline by property name: True
Value from remaining arguments: False
-VmSku
The Vm Sku.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Aliases: Sku
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: False
Value from pipeline by property name: True
Value from remaining arguments: False
-VmUserName
The user name for logging to Vm.
Parameter properties
Type: String
Default value: None
Supports wildcards: False
DontShow: False
Parameter sets
ByDefaultArmTemplate
Position: Named
Mandatory: False
Value from pipeline: True
Value from pipeline by property name: False
Value from remaining arguments: False
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Parameter properties
Type: SwitchParameter
Default value: None
Supports wildcards: False
DontShow: False
Aliases: wi
Parameter sets
(All)
Position: Named
Mandatory: False
Value from pipeline: False
Value from pipeline by property name: False
Value from remaining arguments: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters .
Parameters: CertificateFile (ByValue), CertificateOutputFolder (ByValue), CertificateSubjectName (ByValue), KeyVaultName (ByValue), KeyVaultResouceGroupName (ByValue), Location (ByValue), Name (ByValue), ParameterFile (ByValue), SecondaryCertificateFile (ByValue), SecretIdentifier (ByValue), TemplateFile (ByValue), VmUserName (ByValue)
Parameters: CertificatePassword (ByValue), SecondaryCertificatePassword (ByValue)
Parameters: ClusterSize (ByValue)
Outputs