Criar um Cluster Service Fabric usando Azure Resource ManagerCreate a Service Fabric cluster using Azure Resource Manager

Um cluster de Service Fabric do Azure é um conjunto de máquinas virtuais conectadas à rede em que seus microserviços são implantados e gerenciados.An Azure Service Fabric cluster is a network-connected set of virtual machines into which your microservices are deployed and managed. Um Cluster Service Fabric em execução no Azure é um recurso do Azure e é implantado usando o Azure Resource Manager.A Service Fabric cluster running in Azure is an Azure resource and is deployed using the Azure Resource Manager. Este artigo descreve como implantar um cluster de Service Fabric seguro no Azure usando o Gerenciador de recursos.This article describes how to deploy a secure Service Fabric cluster in Azure using the Resource Manager. Você pode usar um modelo de cluster padrão ou um modelo personalizado.You can use a default cluster template or a custom template. Se você ainda não tiver um modelo personalizado, poderá aprender a criar um.If you don't already have a custom template, you can learn how to create one.

O tipo de segurança escolhido para proteger o cluster (ou seja,: Windows Identity, X509 etc.) deve ser especificado para a criação inicial do cluster e não pode ser alterado depois disso.The type of security chosen to secure the cluster (i.e.: Windows identity, X509 etc.) must be specified for the initial creation of the cluster, and cannot be changed thereafter. Antes de configurar um cluster, leia Service Fabric cenários de segurança de cluster.Before setting up a cluster, read Service Fabric cluster security scenarios. No Azure, Service Fabric usa o certificado X509 para proteger o cluster e seus pontos de extremidade, autenticar clientes e criptografar dados.In Azure, Service Fabric uses x509 certificate to secure your cluster and its endpoints, authenticate clients, and encrypt data. Azure Active Directory também é recomendável para proteger o acesso aos pontos de extremidade de gerenciamento.Azure Active Directory is also recommended to secure access to management endpoints. Para obter mais informações, leia Configurar o Azure ad para autenticar clientes.For more information, read Set up Azure AD to authenticate clients.

Se você estiver criando um cluster de produção para executar cargas de trabalho de produção, recomendamos que você leia primeiro a lista de verificação de preparação de produção.If you are creating a production cluster to run production workloads, we recommend you first read through the production readiness checklist.

Nota

Este artigo foi atualizado para utilizar o novo módulo AZ do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Pode continuar a utilizar o módulo AzureRM, que continuará a receber correções de erros até, pelo menos, dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para obter mais informações sobre o novo módulo Az e a compatibilidade do AzureRM, veja Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, veja Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Pré-requisitosPrerequisites

Neste artigo, use os módulos Service Fabric RM PowerShell ou CLI do Azure para implantar um cluster:In this article, use the Service Fabric RM powershell or Azure CLI modules to deploy a cluster:

Você pode encontrar a documentação de referência para os módulos de Service Fabric aqui:You can find the reference documentation for the Service Fabric modules here:

Iniciar sessão no AzureSign in to Azure

Antes de executar qualquer um dos comandos neste artigo, primeiro entre no Azure.Before running any of the commands in this article, first sign in to Azure.

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

Criar um novo cluster usando um certificado autoassinado gerado pelo sistemaCreate a new cluster using a system generated self-signed certificate

Use os comandos a seguir para criar um cluster protegido com um certificado autoassinado gerado pelo sistema.Use the following commands to create a cluster secured with a system generated self-signed certificate. Esse comando configura um certificado de cluster primário que é usado para segurança de cluster e para configurar o acesso de administrador para executar operações de gerenciamento usando esse certificado.This command sets up a primary cluster certificate that is used for cluster security and to set up admin access to perform management operations using that certificate. Os certificados autoassinados são úteis para proteger os clusters de teste.Self-signed certificates are useful for securing test clusters. Os clusters de produção devem ser protegidos com um certificado de uma autoridade de certificação (CA).Production clusters should be secured with a certificate from a certificate authority (CA).

Usar o modelo de cluster padrão fornecido no móduloUse the default cluster template that ships in the module

Use o comando a seguir para criar um cluster rapidamente, especificando parâmetros mínimos, usando o modelo padrão.Use the following command to create a cluster quickly, by specifying minimal parameters, using the default template.

O modelo usado está disponível nos exemplos de modelo do Service Fabric do Azure: modelo do Windows e modelo do UbuntuThe template that is used is available on the Azure Service Fabric template samples : windows template and Ubuntu template

O comando a seguir pode criar clusters Windows ou Linux, você precisa especificar o sistema operacional de acordo.The following command can create either Windows or Linux clusters, you need to specify the OS accordingly. Os comandos do PowerShell/CLI também geram o certificado no CertificateOutputFolderespecificado; no entanto, verifique se a pasta do certificado já foi criada.The PowerShell/CLI commands also output the certificate in the specified CertificateOutputFolder; however, make sure certificate folder already created. O comando também usa outros parâmetros, como SKU de VM.The command takes in other parameters such as VM SKU as well.

Nota

O comando do PowerShell a seguir funciona apenas com o módulo Azure PowerShell Az.The following PowerShell command only works with the Azure PowerShell Az module. Para verificar a versão atual do Azure Resource Manager versão do PowerShell, execute o seguinte comando do PowerShell "Get-Module AZ".To check the current version of Azure Resource Manager PowerShell version, run the following PowerShell command "Get-Module Az". Siga este link para atualizar sua versão Azure Resource Manager PowerShell.Follow this link to upgrade your Azure Resource Manager PowerShell version.

Implantar o cluster usando o PowerShell:Deploy the cluster using 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

Implante o cluster usando CLI do Azure:Deploy the cluster using 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="UbuntuServer1604"
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

Usar seu próprio modelo personalizadoUse your own custom template

Se você precisar criar um modelo personalizado para atender às suas necessidades, é altamente recomendável que você comece com um dos modelos que estão disponíveis nos exemplos de modelo do Azure Service Fabric.If you need to author a custom template to suit your needs, it is highly recommended that you start with one of the templates that are available on the Azure Service Fabric template samples. Saiba como Personalizar o modelo de cluster.Learn how to customize your cluster template.

Se você já tiver um modelo personalizado, verifique se todos os três parâmetros relacionados ao certificado no modelo e no arquivo de parâmetro são nomeados da seguinte maneira e se os valores são nulos da seguinte maneira:If you already have a custom template, double-check that all the three certificate related parameters in the template and the parameter file are named as follows and values are null as follows:

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

Implantar o cluster usando o PowerShell:Deploy the cluster using 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 

Implante o cluster usando CLI do Azure:Deploy the cluster using 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

Criar um novo cluster usando seu próprio certificado X. 509Create a new cluster using your own X.509 certificate

Use o comando a seguir para criar um cluster, se você tiver um certificado que deseja usar para proteger o cluster com o.Use the following command to create cluster, if you have a certificate that you want to use to secure your cluster with.

Se esse for um certificado assinado por uma autoridade de certificação que você acabará usando para outros fins também, é recomendável que você forneça um grupo de recursos distinto especificamente para o cofre de chaves.If this is a CA signed certificate that you will end up using for other purposes as well, then it is recommended that you provide a distinct resource group specifically for your key vault. Recomendamos que você coloque o cofre de chaves em seu próprio grupo de recursos.We recommend that you put the key vault into its own resource group. Essa ação permite que você remova os grupos de recursos de computação e armazenamento, incluindo o grupo de recursos que contém o cluster de Service Fabric, sem perder suas chaves e segredos.This action lets you remove the compute and storage resource groups, including the resource group that contains your Service Fabric cluster, without losing your keys and secrets. O grupo de recursos que contém o cofre de chaves deve estar na mesma região que o cluster que o está usando.The resource group that contains your key vault must be in the same region as the cluster that is using it.

Usar o modelo padrão de cinco nós, um tipo de nó que é fornecido no móduloUse the default five node, one node type template that ships in the module

O modelo usado está disponível nos exemplos do Azure: modelo do Windows e modelo do UbuntuThe template that is used is available on the Azure samples : Windows template and Ubuntu template

Implantar o cluster usando o PowerShell:Deploy the cluster using 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 

Implante o cluster usando CLI do Azure:Deploy the cluster using 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="UbuntuServer1604"

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

Usar seu próprio modelo de cluster personalizadoUse your own custom cluster template

Se você precisar criar um modelo personalizado para atender às suas necessidades, é altamente recomendável que você comece com um dos modelos que estão disponíveis nos exemplos de modelo do Azure Service Fabric.If you need to author a custom template to suit your needs, it is highly recommended that you start with one of the templates that are available on the Azure Service Fabric template samples. Saiba como Personalizar o modelo de cluster.Learn how to customize your cluster template.

Se você já tiver um modelo personalizado, certifique-se de verificar novamente se todos os três parâmetros relacionados ao certificado no modelo e no arquivo de parâmetro são nomeados da seguinte maneira e se os valores são nulos da seguinte maneira.If you already have a custom template, then make sure to double check that all the three certificate related parameters in the template and the parameter file are named as follows and values are null as follows.

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

Implantar o cluster usando o PowerShell:Deploy the cluster using 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

Implante o cluster usando CLI do Azure:Deploy the cluster using 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 

Usar um ponteiro para um segredo carregado em um cofre de chavesUse a pointer to a secret uploaded into a key vault

Para usar um cofre de chaves existente, o cofre de chaves deve ser habilitado para implantação para permitir que o provedor de recursos de computação obtenha certificados dele e instale-os em nós de cluster.To use an existing key vault, the key vault must be enabled for deployment to allow the compute resource provider to get certificates from it and install it on cluster nodes.

Implantar o cluster usando o PowerShell:Deploy the cluster using 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 

Implante o cluster usando CLI do Azure:Deploy the cluster using Azure CLI:

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

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

Passos seguintesNext steps

Neste ponto, você tem um cluster seguro em execução no Azure.At this point, you have a secure cluster running in Azure. Em seguida, Conecte-se ao seu cluster e saiba como gerenciar os segredos do aplicativo.Next, connect to your cluster and learn how to manage application secrets.

Para obter a sintaxe e as propriedades JSON para usar um modelo, consulte referência de modelo Microsoft. perfabric/clusters.For the JSON syntax and properties to use a template, see Microsoft.ServiceFabric/clusters template reference.