Exercício — Controlar a ordem de implantação dos recursos

Concluído

Nesta parte, você começa executando algumas tarefas básicas de configuração. No Visual Studio Code, você conecta uma sessão de terminal à assinatura do Azure fornecida pelo ambiente de área restrita do Azure gratuito. Isso permite que você autentique comandos no Azure.

Em seguida, você executa um modelo do ARM básico que provisiona uma VM (máquina virtual) do Linux. Após a conclusão da implantação, você verifica se a VM está em execução e pode ser conectada.

Embora trabalhar com VMs seja uma tarefa comum, você descobre que um recurso de VM requer componentes de rede e armazenamento que devem existir antes que a VM possa ser criada. É possível observar como o constructo dependsOn permite que você defina a ordem na qual os recursos são provisionados.

Instalação

Aqui, você abre o Visual Studio Code, cria uma sessão do PowerShell e se conecta à assinatura do Azure fornecida pelo ambiente de área restrita do Azure gratuito.

É preciso executar essas tarefas de instalação uma vez durante este módulo. Você poderá consultar essas etapas novamente se sair ou se desconectar em um exercício posterior.

Abrir o PowerShell no Visual Studio Code

  1. Abra o Visual Studio Code.

  2. Abra uma janela do terminal usando o menu Terminal.

  3. Se o menu suspenso à direita da janela do terminal mostrar pwsh, você terá o shell correto para trabalhar e poderá ir para a próxima seção.

    Screenshot of Terminal window, terminal type.

  4. Caso contrário, selecione o menu suspenso e escolha Selecionar o Shell Padrão.

  5. Selecione o pwsh.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Selecione o + no terminal para criar um terminal com pwsh como o shell.

Entrar no Azure

  1. Execute Connect-AzAccount para entrar na sua conta.

    Connect-AzAccount
    

    Uma janela do navegador é exibida.

  2. Selecione a conta que você usou para ativar a área restrita e feche a janela do navegador quando solicitado.

Definir a assinatura ativa

  1. Execute Get-AzSubscription para obter a ID da assinatura do ambiente de área restrita.

    Get-AzSubscription
    

    Procure Concierge Subscription e copie a segunda coluna. Ela será parecida com cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

  2. Execute Set-AzContext alterar sua assinatura ativa para a Assinatura do Concierge.

    Observação

    Substitua {Sua ID da assinatura} pela ID da Assinatura do Concierge que você acabou de obter no último comando.

    $subscription = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $subscription
    

Definir o grupo de recursos padrão

Normalmente, ao executar um comando da CLI do Azure, você precisa especificar um grupo de recursos.

A área restrita fornece um grupo de recursos padrão para você. Para tornar os comandos da CLI do Azure mais fáceis de executar, defina aqui o grupo de recursos padrão.

Execute o cmdlet Set-AzDefault para definir o grupo de recursos padrão.

Set-AzDefault -ResourceGroupName <rgn>resource group name</rgn>

Observação

Normalmente, ao usar o PowerShell para implantar recursos no Azure, é preciso especificar um grupo de recursos. Você está ignorando esse requisito definindo o contexto da sua implantação com Set-AzDefault.

O que há em uma implantação típica de VM

Ao implantar uma VM, lembre-se de que há vários recursos que precisam ser implantados com ela para que a VM funcione.

Confira um breve resumo dos tipos de recursos que normalmente precisam ser implantados com uma VM:

  • Microsoft.Storage/storageAccounts. Uma conta de armazenamento fornece espaço em disco para o sistema operacional e os arquivos.
  • Microsoft.Network/publicIPAddresses. Um endereço IP público permite que você se conecte à VM pela Internet.
  • Microsoft.Network/networkSecurityGroups. Um grupo de segurança de rede contém regras para lidar com o tráfego de entrada e de saída para sua rede virtual.
  • Microsoft.Network/virtualNetworks. Sua VM precisa ser colocada em uma rede virtual. Este recurso requer que o grupo de segurança de rede seja implantado antes dele.
  • Microsoft.Network/networkInterfaces. Este recurso depende de dois outros recursos: o endereço IP público e a rede virtual.
  • Microsoft.Compute/virtualMachines. A máquina virtual é o recurso primário que você implantará. Ela depende de dois recursos diferentes: da conta de armazenamento e das interfaces de rede.

Implantar VM do Linux

Aqui, você faz o download de um modelo do ARM de um repositório GitHub que fornecemos. O modelo provisiona uma VM do Linux e todos os recursos necessários para executá-la.

  1. Execute o seguinte comando curl para baixar o modelo do ARM:

    curl -O 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json'
    
  2. Execute o cmdlet ConvertTo-SecureString e atribua os resultados a uma variável do PowerShell chamada $secure:

    $secure = "insecurepassword123!" | ConvertTo-SecureString -AsPlainText -Force
    

    Agora você tem uma versão criptografada de sua senha que pode passar o script de implantação a seguir.

  3. Execute o comando New-AzResourceGroupDeployment para implantar o modelo:

    New-AzResourceGroupDeployment `
      -TemplateFile "./azuredeploy.json" `
      -adminUsername "azureuser" `
      -vmName "vm1" `
      -adminPasswordOrKey $secure
    

    O comando pode levar alguns minutos para ser executado. Enquanto o comando é executado, se desejar, você poderá examinar o modelo do ARM em uma guia separada no navegador.

    Observe as dependências de recurso pesquisando a chave dependsOn. Por exemplo, o recurso de máquina virtual depende da interface da rede:

    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2020-06-01",
    "name": "[parameters('vmName')]",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]"
    ],
    

Verificar a implantação

Verifique se a VM está provisionada e pode ser conectada via SSH. Para fazer isso:

  1. Execute o comando Invoke-Expression para se conectar à VM via SSH:

    Invoke-Expression (Get-AzResourceGroupDeployment -Name azuredeploy -ResourceGroupName <rgn>your resource group</rgn>).outputs.sshCommand.value
    

    Quando solicitado, insira yes para continuar a se conectar. Em seguida, insira a senha do administrador, insecurepassword123!.

    Importante

    Na prática, mantenha as senhas seguras. Use também a autenticação de chave pública, que normalmente é mais segura do que usar senhas.

  2. De sua conexão SSH com a VM, execute hostname para imprimir o nome do host da VM:

    hostname
    

    Você vê o nome do host interno da VM, vm1:

    vm1
    
  3. Execute exit para sair de sua sessão SSH.

    exit
    

Parabéns, você implantou com êxito uma VM do Linux usando um modelo do ARM. Uma VM é um tipo de recurso comum que inclui recursos dependentes.

Instalação

Aqui, você abre o Visual Studio Code, cria uma sessão de terminal e se conecta à assinatura do Azure fornecida pelo ambiente de área restrita do Azure gratuito.

É preciso executar essas tarefas de instalação uma vez durante este módulo. Você poderá consultar essas etapas novamente se sair ou se desconectar em um exercício posterior.

Abrir um shell no Visual Studio Code

  1. Abra o Visual Studio Code.

  2. Abra uma janela do terminal usando o menu Terminal.

  3. Se o menu suspenso exibir seu shell preferencial (bash ou zsh, por exemplo), você poderá pular para a próxima seção.

  4. Caso contrário, selecione o menu suspenso e escolha Selecionar o Shell Padrão.

  5. Selecione o tipo de shell desejado.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Selecione o + no terminal para criar um terminal com seu tipo de shell selecionado.

Entrar no Azure

  1. No terminal, execute az login:

    az login
    

    Uma janela do navegador é exibida.

  2. Selecione a conta que você usou para ativar a área restrita e feche a janela do navegador quando solicitado.

Definir a assinatura ativa

Execute o seguinte comando az account set para definir o ambiente de área restrita do Azure como sua assinatura ativa:

az account set -s "Concierge Subscription"

Observação

Se o comando falhar, execute az account list --refresh --all e execute o comando az account set novamente.

Definir o grupo de recursos padrão

Normalmente, ao executar um comando da CLI do Azure, você precisa especificar um grupo de recursos.

A área restrita fornece um grupo de recursos padrão para você. Para tornar os comandos da CLI do Azure mais fáceis de executar, defina aqui o grupo de recursos padrão.

Execute o seguinte comando az configure para definir o grupo de recursos padrão:

az configure --defaults group=<rgn>resource group name</rgn>

O que há em uma implantação típica de VM

Ao implantar uma VM, lembre-se de que há vários recursos que precisam ser implantados com ela para que a VM funcione.

Confira um breve resumo dos tipos de recursos que normalmente precisam ser implantados com uma VM:

  • Microsoft.Storage/storageAccounts. Uma conta de armazenamento fornece espaço em disco para o sistema operacional e os arquivos.
  • Microsoft.Network/publicIPAddresses. Um endereço IP público permite que você se conecte à VM pela Internet.
  • Microsoft.Network/networkSecurityGroups. Um grupo de segurança de rede contém regras para lidar com o tráfego de entrada e de saída para sua rede virtual.
  • Microsoft.Network/virtualNetworks. Sua VM precisa ser colocada em uma rede virtual. Este recurso requer que o grupo de segurança de rede seja implantado antes dele.
  • Microsoft.Network/networkInterfaces. Este recurso depende de dois outros recursos: o endereço IP público e a rede virtual.
  • Microsoft.Compute/virtualMachines. A máquina virtual é o recurso primário que você implantará. Ela depende de dois recursos diferentes: da conta de armazenamento e das interfaces de rede.

Implantar VM do Linux

Aqui, você baixará um modelo do ARM (Azure Resource Manager) de um repositório GitHub que fornecemos. O modelo provisiona uma VM do Linux e todos os recursos necessários para executá-la.

  1. Execute o seguinte comando wget para baixar o modelo do ARM:

    wget https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json
    

    Se você não tiver o wget instalado, poderá executar o comando curl:

    curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
    
  2. Execute o comando az deployment group create para implantar o modelo:

    az deployment group create \
      --template-file azuredeploy.json \
      --parameters adminUsername=azureuser vmName=vm1 adminPasswordOrKey='insecurepassword123!'
    

    O comando pode levar alguns minutos para ser executado. Enquanto o comando é executado, se desejar, você poderá examinar o modelo do ARM em uma guia separada no navegador.

    Observe as dependências de recurso pesquisando a chave dependsOn. Por exemplo, o recurso de máquina virtual depende da interface da rede:

    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2020-06-01",
    "name": "[parameters('vmName')]",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]"
    ],
    

Verificar a implantação

Verifique se a VM está provisionada e pode ser conectada via SSH. Para fazer isso:

  1. Execute o seguinte comando az deployment group list para listar os grupos de implantação em sua assinatura:

    az deployment group list --output table
    

    Você verá um grupo de implantação chamado azuredeploy:

    Name         ResourceGroup                               State      Timestamp                         Mode
    -----------  ------------------------------------------  ---------  --------------------------------  -----------
    azuredeploy  learn-1ef901aa-3f6a-46aa-8e93-a7f11e5192b8  Succeeded  2020-11-24T17:55:39.762517+00:00  Incremental
    
  2. Execute o seguinte comando az deployment group show para mostrar o comando SSH que você pode usar para se conectar à VM:

    az deployment group show \
      --name azuredeploy \
      --query properties.outputs.sshCommand.value \
      --output tsv
    

    O modelo do ARM define essa propriedade na seção output. Veja um exemplo:

    ssh azureuser@simplelinuxvm-a33zb3sc332ue.westus.cloudapp.azure.com
    
  3. Execute o comando novamente, desta vez usando a sintaxe $() para executar o comando SSH:

    $(az deployment group show \
      --name azuredeploy \
      --query properties.outputs.sshCommand.value \
      --output tsv)
    

    Quando solicitado, insira yes para continuar a se conectar. Em seguida, insira a senha do administrador, insecurepassword123!.

    Importante

    Na prática, mantenha as senhas seguras. Use também a autenticação de chave pública, que normalmente é mais segura do que usar senhas.

  4. De sua conexão SSH com a VM, execute hostname para imprimir o nome do host da VM:

    hostname
    

    Você vê o nome do host interno da VM, vm1:

    vm1
    
  5. Execute exit para sair de sua sessão SSH.

    exit
    

Parabéns, você implantou com êxito uma VM do Linux usando um modelo do ARM. Uma VM é um tipo de recurso comum que inclui recursos dependentes.