Exercício – analisar um cenário e mapeá-lo a uma opção de tecnologia

Concluído

A sua organização cresce e a procura aumenta na Europa e Ásia. A sua organização está sediada nos Estados Unidos. A maioria da sua infraestrutura é baseada na cloud. Os seus utilizadores europeus estão a comunicar a existência de um site lento. Para fornecer um melhor serviço aos clientes na Europa, a sua empresa pediu-lhe para criar um novo e melhorado servidor Web para a Europa. A máquina tem de ser configurada como um servidor Web IIS quando for aprovisionada.

Foi-lhe pedido que escolhesse ferramentas de aprovisionamento adequadas. As ferramentas também devem ser fáceis de utilizar e personalizar.

Neste exercício, você provisiona um servidor Web para atender aos requisitos.

Aprovisionar um servidor Web

Você precisa usar várias ferramentas para provisionar um servidor web. Usando um modelo do Azure Resource Manager, você pode definir o ambiente para seu servidor Web. O modelo do Resource Manager também pode ajudá-lo a definir uma configuração de estado desejado (DSC) para seu servidor Web. Quando você se vincula a um manipulador de extensão DSC no modelo do Gerenciador de Recursos, o ambiente e o estado desejado são aplicados quando você provisiona o servidor Web. O manipulador de extensão DSC ajuda a impor o estado DSC que você definiu.

No exercício seguinte, irá utilizar um modelo do Resource Manager para aprovisionar uma máquina virtual. O processador da extensão DSC incluído no modelo impõe o seu estado à máquina virtual. Pode utilizar uma conta de armazenamento do Azure para alojar o seu ficheiro de configuração do DSC.

Clonar a configuração e o modelo

Vamos começar obtendo um arquivo de configuração e um modelo do Azure Resource Manager do GitHub.

  1. Na instância do Azure Cloud Shell à direita, execute o seguinte comando para clonar o repositório GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-choose-compute-provisioning.git
    

Examinar e compactar o arquivo de configuração de estado

A Configuração de Estado é definida no arquivo Webserver.ps1 , que inclui o servidor Web do IIS em sua máquina virtual. Vamos examinar esse ficheiro.

  1. Para abrir o ficheiro, execute estes comandos:

    cd mslearn-choose-compute-provisioning
    code Webserver.ps1
    

    O ficheiro de configuração inclui o seguinte código. Observe que o mesmo instala o IIS, ASP.NET e a Consola de Gestão do IIS.

    Configuration Webserver
    {
        param ($MachineName)
    
        Node $MachineName
        {
            #Install the IIS Role
            WindowsFeature IIS
            {
                Ensure = "Present"
                Name = "Web-Server"
            }
    
            #Install ASP.NET 4.5
            WindowsFeature ASP
            {
                Ensure = "Present"
                Name = "Web-Asp-Net45"
            }
    
            WindowsFeature WebServerManagementConsole
            {
                Name = "Web-Mgmt-Console"
                Ensure = "Present"
            }
        }
    }
    
  2. Para fechar o editor de códigos, pressione Ctrl+Q.

  3. Para ver o conteúdo do repositório clonado, execute este comando:

    ls -al
    

    Repare que o repositório contém o ficheiro Webserver.ps1 e o ficheiro comprimido Webserver.zip. Irá utilizar o ficheiro comprimido posteriormente neste exercício.

Configurar o modelo

O repositório GitHub que você clonou também contém um modelo do Resource Manager. Vamos editar o modelo para adicionar o local do arquivo de configuração compactado a ele.

  1. No Cloud Shell, execute este comando para abrir o modelo:

    code template.json
    
  2. No arquivo template.json, procure o <parameters> elemento . Observe que alguns membros, como vmName, não têm valores padrão. Quando utilizar o modelo, ser-lhe-á pedido que introduza valores para essas propriedades.

  3. Você também pode fornecer um valor padrão para a URL do arquivo de configuração. No arquivo de código template.json , localize este código:

    "modulesUrl": {
        "type": "string",
        "metadata": {
            "description": "URL for the DSC configuration module."
        }
    },
    
  4. Adicione o valor padrão da seguinte forma para que ele se pareça com este código:

    "modulesUrl": {
        "type": "string",
        "defaultValue": "https://github.com/MicrosoftDocs/mslearn-choose-compute-provisioning/raw/master/Webserver.zip",
        "metadata": {
            "description": "URL for the DSC configuration module."
        }
    },
    
  5. Salve o modelo pressionando Ctrl+S.

    Na seção do arquivo template.json, observe que os <variables> valores são armazenados para configurar a rede para uma máquina virtual.

    <resources> Na seção , observe que o modelo define um endereço IP, uma rede virtual, uma máquina virtual e outros recursos relacionados.

  6. Feche o editor de código pressionando Ctrl+Q.

Validar o seu modelo

Agora que você tem um modelo concluído e um arquivo de configuração compactado, pode usar a CLI do Azure para implantá-los. Antes de implantar, valide seus arquivos para ver se a implantação pode ser bem-sucedida.

  1. No Cloud Shell, execute este comando para validar sua implantação. Quando lhe for pedida uma palavra-passe, introduza uma palavra-passe complexa à sua escolha.

    az deployment group validate \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --template-file template.json \
        --parameters vmName=hostVM1 adminUsername=serveradmin
    
  2. Se sua implantação for validada, a saída mostrará informações sobre sua implantação. Preste especial atenção à error propriedade, que está perto do início da saída e pode ser encontrada rolando de volta pelo texto de saída. Deverá ser null.

    Screenshot of Cloud Shell showing a successful template validation with a callout highlighting the error property set to null.

    Se não existirem erros, significa que o modelo foi validado e pode ser implementado.

Implementar o seu modelo

Agora que você sabe que o modelo é válido, você pode implantá-lo.

  1. Para implementar o modelo, execute o seguinte comando. Quando for solicitada uma senha, digite a senha que você definiu na tarefa anterior.

    az deployment group create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --template-file template.json \
        --parameters vmName=hostVM1 adminUsername=serveradmin
    

    Pode levar vários minutos para que a implantação seja concluída.

  2. Quando a implantação estiver concluída, você deverá ter uma máquina virtual configurada como um servidor Web IIS. Para confirmar que foi configurado, execute o seguinte comando para listar todos os recursos no grupo de recursos.

    az resource list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table \
        --query "[*].{Name:name, Type:type}"
    

    A saída deve mostrar seu host, extensão, interface de rede, endereço público, rede virtual e conta de armazenamento. Se você vir todos esses recursos listados, sua implantação foi bem-sucedida.

  3. Execute o seguinte comando para gerar o URL para o seu servidor Web. O endereço IP de saída confirma que o IIS foi instalado com êxito.

    echo http://$(az vm show \
        --show-details \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name hostVM1 \
        --query publicIps \
        --output tsv)
    
  4. Selecione o URL ou copie e cole o mesmo numa nova janela do browser. Deverá ver a página predefinida do IIS.

    Screenshot of the default IIS page on the virtual machine that was deployed.

Parabéns! Você provisionou com êxito um servidor Web usando um modelo do Gerenciador de Recursos e impôs uma Configuração de Estado Desejado (DSC) em sua máquina virtual usando um manipulador de extensão DSC.