Personalizzare le immagini Linux di Azure con Image Customizer

Image Customizer è uno strumento open source che modifica le immagini Linux Azure esistenti in base allo scenario specifico. Utilizza chroot e dispositivi a blocchi loopback per eseguire personalizzazioni senza avviare una macchina virtuale (VM), rendendo il processo rapido, affidabile e facile da integrare nei flussi di lavoro CI/CD. Questa è la stessa tecnologia usata per compilare le immagini ufficiali Azure Linux. Per informazioni di riferimento sulla configurazione completa e sull'utilizzo avanzato, vedere la documentazione di Image Customizer.

Annotazioni

L'integrazione di Azure Image Builder (AIB) con Image Customizer non è ancora disponibile. Per il momento, è possibile usare direttamente Image Customizer per personalizzare le immagini Linux di Azure.

Con Image Customizer è possibile:

  • Aggiungere o rimuovere pacchetti.
  • Aggiungere file o directory.
  • Configurare utenti e impostazioni di sistema.
  • Applicare layout di partizione personalizzati.
  • Produrre immagini di output in più formati.

Image Customizer supporta anche la personalizzazione annidata, in modo da poter personalizzare ulteriormente un'immagine già personalizzata. Per i team che creano più immagini, è consigliabile creare prima un'immagine di base personalizzata condivisa per ridurre il sovraccarico di manutenzione.

Annotazioni

Azure Linux 4.0 è ora disponibile in preview ed è strettamente limitato a scopi di valutazione e test. Non è adatto per l'uso in produzione.

Prerequisiti

  • Docker installato nell'host.
  • A immagine di base: qualsiasi immagine Linux Azure (dal Azure Marketplace o da una già gestita).
  • Un file di configurazione: file YAML o JSON che descrive le modifiche.

Sistemi host supportati

È possibile eseguire Image Customizer in:

  • Azure Linux
  • Ubuntu 22.04

Usare il personalizzatore di immagini

Image Customizer viene eseguito come contenitore pubblicato nel Microsoft Artifact Registry (MCR).

Elencare i tag disponibili

Elencare i tag disponibili per il contenitore Image Customizer con il comando seguente:

curl -s "https://mcr.microsoft.com/v2/azurelinux/imagecustomizer/tags/list" | jq '.tags[]'

Personalizzare un'immagine

Personalizzare un'immagine eseguendo il contenitore Image Customizer con l'immagine di base e il file di configurazione montati nel contenitore. Per esempio:

docker run --rm \
    --privileged \
    -v "<shared-dir>:z" \
    -v "/dev:/dev" \
    "mcr.microsoft.com/azurelinux/imagecustomizer:latest" \
    imagecustomizer \
        --image-file <base-image.vhdx> \
        --config-file <config-file.yaml> \
        --output-image-format raw \
        --output-image-file <output-image.raw> \
        --build-dir "/tmp"

Sostituire i valori seguenti:

Segnaposto Description
<shared-dir> Percorso assoluto della directory contenente l'immagine di base e il file di configurazione. L'immagine personalizzata è scritta anche qui.
<base-image.vhdx> Percorso del file di immagine di base da modificare.
<config-file.yaml> Percorso del file di configurazione che descrive le modifiche.
<output-image.raw> Percorso dell'immagine di output personalizzata.

Per altre informazioni, vedere la documentazione di Image Customizer.