Condividi tramite


Preparare l'immagine ubuntu di Azure Marketplace per le macchine virtuali locali di Azure

Questo articolo illustra come preparare un'immagine di Ubuntu Azure Marketplace da usare con macchine virtuali locali di Azure. Seguendo questa procedura, assicurarsi che la macchina virtuale disponga degli aggiornamenti, del supporto e delle funzionalità di integrazione più recenti per la sicurezza.

Prerequisiti

Accedere e impostare la sottoscrizione

  1. Connettersi a un computer nell'istanza locale di Azure.

  2. Accedere e immettere il comando seguente:

    az login --use-device-code
    
  3. Impostare la sottoscrizione.

    az account set --subscription <Subscription ID>
    

Configurare e preparare una macchina virtuale di Azure

Per configurare e preparare una macchina virtuale di Azure, seguire questa procedura:

  1. Accedi al portale di Azure.

  2. Nel riquadro sinistro selezionare Macchine virtuali, quindi selezionare Crea e quindi selezionare Macchina virtuale.

  3. Esplorare le immagini disponibili e scegliere la versione di Ubuntu preferita.

    Screenshot della pagina di selezione dell'immagine del portale di Azure.

  4. Immettere i dettagli necessari nella procedura guidata e completare la configurazione della macchina virtuale di Azure.

    Annotazioni

    Evitare conflitti di nome utente creando la macchina virtuale di Azure con un nome utente che non si usa in Locale di Azure. Se si usa lo stesso nome utente (ad esempio, "usernameA") sia nella macchina virtuale di Azure che in Quella locale di Azure e quindi si riutilizza il disco rigido virtuale, la macchina virtuale mantiene le informazioni di accesso originali. Per ottenere risultati ottimali, configurare macchine virtuali locali di Azure con credenziali diverse, ad esempio "usernameB".

  5. Dopo aver distribuito la macchina virtuale, passare alla pagina di panoramica della macchina virtuale , selezionare l'opzione Connetti e quindi selezionare Console seriale.

    Screenshot dell'opzione di accesso della console seriale nel portale di Azure.

  6. Connettersi alla macchina virtuale con le credenziali ed eseguire questi comandi:

    1. Accedere alla macchina virtuale come utente radice:

      sudo su
      
    2. Pulire la cloud-init configurazione predefinita perché non è pertinente per le macchine virtuali locali di Azure.

      sudo cloud-init clean
      sudo rm -rf /var/lib/cloud/ /var/log/* /tmp/*
      
    3. Pulire le chiavi host SSH specifiche della macchina virtuale.

      sudo rm -f /etc/ssh/ssh_host*
      

Modificare l'origine dati dell'immagine della macchina virtuale

Per modificare l'origine dati dell'immagine della macchina virtuale, seguire questa procedura:

  1. Modificare la directory nel percorso seguente ed elencare i file per individuare il file 90_dpkg.cfgdi origine dati . Eseguire questi comandi:

    cd /etc/cloud/cloud.cfg.d/
    ls
    

    Output di esempio:

    azureuser@ubuntu-image:/etc/cloud/cloud.cfg.d$ ls
    05_logging.cfg  10-azure-kvp.cfg  90-azure.cfg  90_dpkg.cfg
    
  2. Apri il file 90_dpkg.cfg. Eseguire questo comando:

    cat 90_dpkg.cfg
    

    Output di esempio:

    azureuser@ubuntu-image:/etc/cloud/cloud.cfg.d$ cat 90_dpkg.cfg
    # to update this file, run dpkg-reconfigure cloud-init
    datasource_list: [ Azure ]
    
  3. Aprire e aggiornare il datasource_list da Azure a NoCloud. Eseguire questo comando:

    sudo dpkg-reconfigure cloud-init
    

    Output di esempio:

    Cloud-init supports searching different "Data Sources" for information that it uses to configure a cloud instance.
    
    Warning: Only select 'Ec2' if this system will be run on a system with the EC2 metadata service present. Doing so incorrectly will result in a substantial timeout on boot.
    
    Which data sources should be searched?
    
    [ ] NoCloud: Reads info from /var/lib/cloud/seed only  
    [ ] ConfigDrive: Reads data from Openstack Config Drive  
    [ ] OpenNebula: read from OpenNebula context disk  
    [ ] DigitalOcean: reads data from Droplet datasource  
    [*] Azure: read from MS Azure cdrom. Requires walinux-agent
    <Ok>
    
    1. Attivare o disattivare (*) premendo la barra spaziatrice per attivare NoCloud e rimuovere Azure.

    2. Salvare il file premendo INVIO.

    Output di esempio:

    Cloud-init supports searching different "Data Sources" for information that it uses to configure a cloud instance.
    
    Warning: Only select 'Ec2' if this system will be run on a system with the EC2 metadata service present. Doing so incorrectly will result in a substantial timeout on boot.
    
    Which data sources should be searched?
    
    [*] NoCloud: Reads info from /var/lib/cloud/seed only  
    [ ] ConfigDrive: Reads data from Openstack Config Drive  
    [ ] OpenNebula: read from OpenNebula context disk  
    [ ] DigitalOcean: reads data from Droplet datasource  
    [ ] Azure: read from MS Azure cdrom. Requires walinux-agent
    <Ok>
    
  4. Per verificare che il file sia stato aggiornato, eseguire questo comando:

    cat 90_dpkg.cfg
    

    Output di esempio:

    azureuser@ubuntu-image:/etc/cloud/cloud.cfg.d$ cat 90_dpkg.cfg
    # to update this file, run dpkg-reconfigure cloud-init
    datasource_list: [ NoCloud ]
    
  5. Rimuovere la cronologia bash. Eseguire i comandi seguenti:

    sudo rm -f ~/.bash_history
    export HISTSIZE=0
    exit
    
  6. Arrestare la macchina virtuale di Azure al termine delle modifiche alla configurazione.

Esportare un disco del sistema operativo della macchina virtuale di Azure in un disco rigido virtuale nel cluster locale di Azure

Per esportare un disco del sistema operativo della macchina virtuale di Azure in un disco rigido virtuale nel cluster locale di Azure, seguire questa procedura:

  1. Nel portale di Azure per la risorsa Azure Local, vai alla panoramica della macchina virtuale. Nell'opzione Impostazioni selezionare Dischi e selezionare il collegamento Nome dischi .

    Screenshot della pagina dei dettagli del disco del sistema operativo.

  2. In Impostazioni selezionare Esportazione disco e quindi genera URL per generare un URL sicuro per il disco.

    Screenshot dell'opzione di esportazione del disco con generazione di URL sicuri.

  3. Copiare il collegamento dell'URL sicuro generato per il passaggio successivo.

Annotazioni

L'URL di esportazione del disco è un URL SAS con firma di accesso condiviso a tempo limitato.
Se l'URL scade, viene copiato in modo non corretto o non dispone delle autorizzazioni di lettura (r), il passaggio di creazione dell'immagine potrebbe non riuscire con un errore 401 (non autorizzato).
Se si verifica un errore 401, rigenerare l'URL di esportazione del disco e assicurarsi che venga usato prima della scadenza e incollato senza virgolette aggiuntive o interruzioni di riga.

Creare un'immagine locale di Azure

Per creare un'immagine locale di Azure usando il token di firma di accesso condiviso, eseguire questo comando:

$rg = "<resource-group>"
$cl = "/subscriptions/<sub>/resourcegroups/$rg/providers/microsoft.extendedlocation/customlocations/<customlocation-name>"
$sas = '"https://EXAMPLE.blob.storage.azure.net/EXAMPLE/abcd<sas-token>"'

az stack-hci-vm image create -g $rg --custom-location $cl --name "<IMAGE-NAME>" --os-type "Linux" --image-path $sas

Creare una macchina virtuale locale di Azure

Per creare una macchina virtuale locale di Azure usando l'immagine della macchina virtuale locale di Azure creata, seguire la procedura descritta in Creare macchine virtuali locali di Azure abilitate da Azure Arc.