Scenario di Automazione di Azure - Provisioning di una macchina virtuale di AWSAzure Automation scenario - provision an AWS virtual machine

In questo articolo viene illustrato come sfruttare Automazione di Azure per effettuare il provisioning di una macchina virtuale nella sottoscrizione di Amazon Web Service (AWS) e come assegnare alla VM un nome specifico. Questa operazione è definita in AWS "assegnazione di tag" alla VM.In this article, we demonstrate how you can leverage Azure Automation to provision a virtual machine in your Amazon Web Service (AWS) subscription and give that VM a specific name – which AWS refers to as “tagging” the VM.

PrerequisitiPrerequisites

Per le finalità di questo articolo, è necessario avere un account di Automazione di Azure e una sottoscrizione di AWS.For the purposes of this article, you need to have an Azure Automation account and an AWS subscription. Per altre informazioni sulla configurazione di un account di Automazione di Azure e sulla configurazione delle credenziali della sottoscrizione di AWS, vedere l'articolo relativo alla configurazione dell'autenticazione in Amazon Web Services.For more information on setting up an Azure Automation account and configuring it with your AWS subscription credentials, review Configure Authentication with Amazon Web Services. Questo account deve essere creato o aggiornato con le credenziali della sottoscrizione di AWS prima di continuare, perché nei passaggi seguenti verrà fatto riferimento all'account.This account should be created or updated with your AWS subscription credentials before proceeding, as we will reference this account in the steps below.

Distribuire il modulo di PowerShell di Amazon Web ServicesDeploy Amazon Web Services PowerShell Module

Il runbook di provisioning della macchina virtuale usa il modulo di PowerShell di AWS per l'esecuzione delle operazioni.Our VM provisioning runbook will leverage the AWS PowerShell module to do its work. Seguire questa procedura per aggiungere il modulo all'account di Automazione configurato con le credenziali della sottoscrizione di AWS.Perform the following steps to add the module to your Automation account that is configured with your AWS subscription credentials.

  1. Aprire il Web browser, accedere a PowerShell Gallery e fare clic sul pulsante Deploy to Azure Automation (Distribuisci in Automazione di Azure).Open your web browser and navigate to the PowerShell Gallery and click on the Deploy to Azure Automation button.

    Importazione del modulo PS per AWSAWS PS Module Import
  2. Verrà visualizzata la pagina di accesso di Azure e dopo l'autenticazione si verrà indirizzati al portale di Azure e verrà visualizzata la pagina seguente.You are taken to the Azure login page and after authenticating, you will be routed to the Azure portal and presented with the following page.

    Pagina di importazione del modulo
  3. Selezionare il gruppo di risorse dall'elenco a discesa Gruppo di risorse e nel riquadro Parametri fornire le informazioni seguenti:Select the Resource Group from the Resource Group drop-down list and on the Parameters pane, provide the following information:

    • Nell'elenco a discesa account di automazione nuovo o esistente (stringa) selezionare Esistente.From the New or Existing Automation Account (string) drop-down list select Existing.
    • Nella casella Automation Account Name (string) (Nome dell'account di Automazione - stringa) digitare il nome esatto dell'account di Automazione che include le credenziali per la sottoscrizione di AWS.In the Automation Account Name (string) box, type in the exact name of the Automation account that includes the credentials for your AWS subscription. Ad esempio, se è stato creato un account dedicato denominato AWSAutomation, digitare tale valore nella casella.For example, if you created a dedicated account named AWSAutomation, then that is what you type in the box.
    • Selezionare l'area appropriata dall'elenco a discesa Posizione dell'account di Automazione .Select the appropriate region from the Automation Account Location drop-down list.
  4. Dopo avere completato l'immissione delle informazioni necessarie, fare clic su Crea.When you have completed entering the required information, click Create.

    Nota

    Durante l'importazione di un modulo di PowerShell in Automazione di Azure, vengono estratti anche i cmdlet e queste attività verranno visualizzate solo dopo il completamento dell'importazione del modulo e l'estrazione dei cmdlet.While importing a PowerShell module into Azure Automation, it is also extracting the cmdlets and these activities will not appear until the module has completely finished importing and extracting the cmdlets. Il processo potrebbe richiedere alcuni minuti.This process can take a few minutes.

  5. Nel portale di Azure aprire l'account di Automazione a cui si fa riferimento nel passaggio 3.In the Azure portal, open your Automation account referenced in step 3.
  6. Fare clic sul riquadro Asset e nel riquadro Assets (Risorse) selezionare il riquadro Moduli.Click on the Assets tile and on the Assets pane, select the Modules tile.
  7. Nella pagina Moduli il modulo AWSPowerShell viene visualizzato nell'elenco.On the Modules page you will see the AWSPowerShell module in the list.

Creare un runbook per la distribuzione di una VM in AWSCreate AWS deploy VM runbook

Dopo la distribuzione del modulo di PowerShell per AWS, è possibile creare un runbook per automatizzare il provisioning di una macchina virtuale in AWS mediante uno script di PowerShell.Once the AWS PowerShell Module has been deployed, we can now author a runbook to automate provisioning a virtual machine in AWS using a PowerShell script. La procedura seguente illustra come sfruttare lo script di PowerShell nativo in Automazione di Azure.The steps below will demonstrate how to leverage native PowerShell script in Azure Automation.

Nota

Per altre opzioni e altre informazioni su questo script, vedere la PowerShell Gallery.For further options and information regarding this script, please visit the PowerShell Gallery.

  1. Scaricare lo script New-AwsVM di PowerShell da PowerShell Gallery aprendo una sessione di PowerShell e digitando quanto segue:Download the PowerShell script New-AwsVM from the PowerShell Gallery by opening a PowerShell session and typing the following:
    Save-Script -Name New-AwsVM -Path <path>
  2. Dal portale di Azure aprire l'account di automazione e selezionare Runbook nella sezione Automazione processi a sinistra.From the Azure portal, open your Automation account and select Runbooks under the section Process Automation on the left.
  3. Nella pagina Runbook selezionare Aggiungi runbook.From the Runbooks page, select Add a runbook.
  4. Nel riquadro Aggiungi runbook selezionare Creazione rapida (Crea un nuovo runbook).On the Add a runbook pane, select Quick Create (Create a new runbook).
  5. Nel riquadro delle proprietà di Runbook digitare un nome per il runbook nella casella Nome, nell'elenco a discesa Tipo di runbook selezionare PowerShell e quindi fare clic su Crea.On the Runbook properties pane, type a name in the Name box for your runbook and from the Runbook type drop-down list select PowerShell, and then click Create.

    Riquadro Create runbook (Crea runbook)Create runbook pane
  6. Quando viene visualizzata la pagina Modifica runbook di PowerShell, copiare e incollare lo script di PowerShell nell'area di creazione del runbook.When the Edit PowerShell Runbook page appears, copy and paste the PowerShell script into the runbook authoring canvas.

    Script di PowerShell per il runbook

    Nota

    Notare quanto segue quando si utilizza lo script di PowerShell di esempio:Please note the following when working with the example PowerShell script:

    • Il runbook contiene alcuni valori predefiniti dei parametri.The runbook contains a number of default parameter values. Valutare tutti i valori predefiniti e apportare gli aggiornamenti necessari.Please evaluate all default values and update where necessary.
    • Se le credenziali di AWS sono state archiviate come asset delle credenziali con nome diverso rispetto ad AWScred, sarà necessario aggiornare lo script alla riga 57 in modo che il valore corrisponda.If you have stored your AWS credentials as a credential asset named differently than AWScred, you will need to update the script on line 57 to match accordingly.
    • Quando si utilizzano i comandi dell'interfaccia della riga di comando di AWS in PowerShell, in particolare con questo runbook di esempio, è necessario specificare l'area di AWS.When working with the AWS CLI commands in PowerShell, especially with this example runbook, you must specify the AWS region. In caso contrario, i cmdlet avranno esito negativo.Otherwise, the cmdlets will fail. Per altre informazioni, vedere l'argomento di AWS Specify AWS Region (Specificare l'area di AWS) nel documento relativo agli strumenti di AWS per PowerShell.View AWS topic Specify AWS Region in the AWS Tools for PowerShell document for further details.
  7. Per recuperare un elenco di nomi di immagine dalla sottoscrizione di AWS, avviare PowerShell ISE e importare il modulo di PowerShell per AWS.To retrieve a list of image names from your AWS subscription, launch PowerShell ISE and import the AWS PowerShell Module. Eseguire l'autenticazione in AWS sostituendo Get-AutomationPSCredential nell'ambiente ISE con AWScred = Get-Credential.Authenticate against AWS by replacing Get-AutomationPSCredential in your ISE environment with AWScred = Get-Credential. Alla richiesta delle credenziali, specificare il proprio ID chiave di accesso come nome utente e la propria chiave di accesso segreta come password.This will prompt you for your credentials and you can provide your Access Key ID for the username and Secret Access Key for the password. Vedere l'esempio seguente:See the example below:

     #Sample to get the AWS VM available images
     #Please provide the path where you have downloaded the AWS PowerShell module
     Import-Module AWSPowerShell
     $AwsRegion = "us-west-2"
     $AwsCred = Get-Credential
     $AwsAccessKeyId = $AwsCred.UserName
     $AwsSecretKey = $AwsCred.GetNetworkCredential().Password
    
     # Set up the environment to access AWS
     Set-AwsCredentials -AccessKey $AwsAccessKeyId -SecretKey $AwsSecretKey -StoreAs AWSProfile
     Set-DefaultAWSRegion -Region $AwsRegion
    
     Get-EC2ImageByName -ProfileName AWSProfile
    

    Viene restituito l'output seguente:The following output is returned:

    Ottenere immagini AWS Get AWS images

  8. Copiare e incollare uno dei nomi di immagine in una variabile di Automazione, indicato nel runbook come $InstanceType.Copy and paste the one of the image names in an Automation variable as referenced in the runbook as $InstanceType. Dato che in questo esempio si usa la sottoscrizione a livelli gratuita di AWS, per l'esempio di runbook verrà usato il valore t2.micro .Since in this example we are using the free AWS tiered subscription, we'll use t2.micro for our runbook example.
  9. Salvare il runbook, quindi fare clic su Pubblica per pubblicare il runbook e quindi fare clic su quando richiesto.Save the runbook, then click Publish to publish the runbook and then Yes when prompted.

Test del runbook per la VM per AWSTesting the AWS VM runbook

Prima di continuare il test del runbook, è necessario verificare alcuni elementi.Before we proceed with testing the runbook, we need to verify a few things. In particolare:Specifically:

  • Gli asset per l'autenticazione in AWS sono stati creati e sono stati denominati AWScred o lo script è stato aggiornato per fare riferimento al nome dell'asset delle credenziali.An asset for authenticating against AWS has been created called AWScred or the script has been updated to reference the name of your credential asset.
  • Il modulo di PowerShell di AWS è stato importato in Automazione di AzureThe AWS PowerShell module has been imported in Azure Automation
  • È stato creato un nuovo runbook e i valori dei parametri sono stati verificati e aggiornati, se necessarioA new runbook has been created and parameter values have been verified and updated where necessary
  • Le opzioni Registra record dettagliati e, facoltativamente, Registra record di avanzamento nell'impostazione Registrazione e traccia sono state impostate su .Log verbose records and optionally Log progress records under the runbook setting Logging and tracing have been set to On.

    Registrazione e traccia per i runbookRunbook Logging and Tracing
  1. Per avviare il runbook, fare clic su Avvia e quindi su OK quando si apre il riquadro Avvia runbook.We want to start the runbook, so click Start and then click OK when the Start Runbook pane opens.
  2. Nel riquadro Avvia runbook fornire un valore VMname.On the Start Runbook pane, provide a VMname. Accettare i valori predefiniti per gli altri parametri preconfigurati nello script in precedenza.Accept the default values for the other parameters that you preconfigured in the script earlier. Fare clic su OK per avviare il processo del runbook.Click OK to start the runbook job.

    Avvio del runbook New-AwsVMStart New-AwsVM runbook
  3. Viene aperto un riquadro del processo per il processo del runbook appena creato.A job pane is opened for the runbook job that we just created. Chiudere questo riquadro.Close this pane.
  4. Per visualizzare lo stato di avanzamento del processo e i Flussi di output, selezionare il riquadro Tutti i log nella pagina del processo del runbook.We can view progress of the job and view output Streams by selecting the All Logs tile from the runbook job page.

    Output del flussoStream output
  5. Per confermare che è in corso il provisioning della VM, accedere ad AWS Management Console se non è già stato effettuato l'accesso.To confirm the VM is being provisioned, log into the AWS Management Console if you are not currently logged in.

    Macchina virtuale distribuita in una console di AWS

Passaggi successiviNext steps