Esercizio - Analizzare uno scenario e associarlo a un'opzione di tecnologia

Completato

L'organizzazione cresce e la domanda aumenta in Europa e Asia. L'organizzazione ha sede negli Stati Uniti. La maggior parte dell'infrastruttura è basata sul cloud. Gli utenti europei segnalano un sito Web lento. Per offrire un servizio migliore ai clienti in Europa, l'azienda ha chiesto di creare un server Web nuovo e migliorato per l'Europa. Il computer deve essere configurato come server Web IIS quando ne viene effettuato il provisioning.

È necessario scegliere gli strumenti di provisioning appropriati. Gli strumenti devono anche essere semplici da usare e facilmente personalizzabili.

In questo esercizio si effettua il provisioning di un server Web per soddisfare i requisiti.

Effettuare il provisioning di un server Web

È necessario usare più strumenti per effettuare il provisioning di un server Web. Usando un modello di Azure Resource Manager, è possibile definire l'ambiente per il server Web. Il modello di Resource Manager consente anche di definire una configurazione DSC (Desired State Configuration) per il server Web. Con il collegamento a un gestore estensione DSC nel modello di Resource Manager, quando si effettua il provisioning del server Web, vengono applicati sia l'ambiente che lo stato desiderato. Il gestore estensione DSC consente di applicare lo stato DSC definito.

Nell'esercizio seguente si usa un modello di Resource Manager per effettuare il provisioning di una macchina virtuale. Il gestore dell'estensione DSC incluso nel modello applica lo stato nella macchina virtuale. Per ospitare il file di configurazione DSC si usa un account di archiviazione di Azure.

Clonare la configurazione e il modello

Iniziare ottenendo un file di configurazione e un modello di Azure Resource Manager da GitHub.

  1. Nell'istanza di Azure Cloud Shell a destra eseguire il comando seguente per clonare il repository GitHub.

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

Esaminare e comprimere il file di State Configuration

La definizione di State Configuration è disponibile nel file Webserver.ps1, che include il server Web IIS nella macchina virtuale. Esaminare il file.

  1. Per aprire il file, eseguire questi comandi:

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

    Il file di configurazione include il codice seguente. Si noti che vengono installati IIS, ASP.NET e la Console di gestione 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. Per chiudere l'editor di codice, premere CTRL+Q.

  3. Per visualizzare il contenuto del repository clonato, eseguire questo comando:

    ls -al
    

    Si noti che il repository contiene sia il file Webserver.ps1 che il file compresso Webserver.zip. Il file compresso verrà usato più avanti in questo esercizio.

Configurare il modello

Il repository GitHub che è stato clonato contiene anche un modello di Resource Manager. Modificare il modello per aggiungervi il percorso del file di configurazione compresso.

  1. In Cloud Shell eseguire questo comando per aprire il modello:

    code template.json
    
  2. Nel file template.json cercare l'elemento <parameters>. Si noti che alcuni membri, ad esempio vmName, non hanno valori predefiniti. Quando si usa il modello, viene richiesto di immettere i valori per tali proprietà.

  3. È anche possibile specificare un valore predefinito per l'URL del file di configurazione. Nel file di codice template.json individuare questo codice:

    "modulesUrl": {
        "type": "string",
        "metadata": {
            "description": "URL for the DSC configuration module."
        }
    },
    
  4. Aggiungere il valore predefinito come illustrato di seguito in modo che il codice risulti simile al seguente:

    "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. Salvare il modello premendo CTRL+S.

    Nella sezione <variables> del file template.json si noti che sono archiviati i valori per configurare la rete per una macchina virtuale.

    Nella sezione <resources> si noti che il modello definisce un indirizzo IP, una rete virtuale, una macchina virtuale e altre risorse correlate.

  6. Chiudere l'editor di codice premendo CTRL+Q.

Convalidare il modello

Ora che si dispone di un modello completo e di un file di configurazione compresso, è possibile usare l'interfaccia della riga di comando di Azure per distribuirli. Prima della distribuzione, convalidare i file per verificare se la distribuzione può avere esito positivo.

  1. In Cloud Shell eseguire questo comando per convalidare la distribuzione. Quando viene richiesta la password, immettere una password complessa a propria scelta.

    az deployment group validate \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --template-file template.json \
        --parameters vmName=hostVM1 adminUsername=serveradmin
    
  2. Se la distribuzione viene convalidata, l'output mostrerà informazioni su di essa. Fare particolare attenzione alla proprietà error, che è possibile trovare scorrendo verso l'alto il testo dell'output fino alla parte iniziale. Il valore dovrebbe essere null.

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

    Se non ci sono errori, il modello è stato convalidato e può essere distribuito.

Distribuire il modello

Dopo aver verificato che il modello è valido, è possibile distribuirlo.

  1. Per distribuire il modello, eseguire il comando seguente. Quando viene richiesta una password, immettere quella definita nell'attività precedente.

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

    Il completamento della distribuzione può richiedere alcuni minuti.

  2. Al termine della distribuzione, si avrà una macchina virtuale configurata come server Web IIS. Per verificare che sia stata configurata, eseguire il comando seguente per elencare tutte le risorse nel gruppo di risorse.

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

    L'output dovrebbe mostrare l'host, l'estensione, l'interfaccia di rete, l'indirizzo pubblico, la rete virtuale e l'account di archiviazione. Se tutte queste risorse sono elencate, la distribuzione è stata completata correttamente.

  3. Eseguire il comando seguente per generare l'URL per il server Web. L'indirizzo IP di output conferma che IIS è stato installato correttamente.

    echo http://$(az vm show \
        --show-details \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name hostVM1 \
        --query publicIps \
        --output tsv)
    
  4. Selezionare l'URL oppure copiarlo e incollarlo in una nuova finestra del browser. Verrà visualizzata la pagina IIS predefinita.

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

Complimenti. È stato effettuato il provisioning di un server Web usando un modello di Resource Manager ed è stata applicata la configurazione DSC (Desired State Configuration) nella macchina virtuale tramite un gestore estensione DSC.