Esercizio - Analizzare uno scenario e associarlo a un'opzione di tecnologia
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.
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.
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" } } }
Per chiudere l'editor di codice, premere CTRL+Q.
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.
In Cloud Shell eseguire questo comando per aprire il modello:
code template.json
Nel file template.json cercare l'elemento
<parameters>
. Si noti che alcuni membri, ad esempiovmName
, non hanno valori predefiniti. Quando si usa il modello, viene richiesto di immettere i valori per tali proprietà.È 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." } },
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." } },
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.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.
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
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 esserenull
.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.
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.
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.
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)
Selezionare l'URL oppure copiarlo e incollarlo in una nuova finestra del browser. Verrà visualizzata la pagina IIS predefinita.
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.