Image Customizer を使用して Azure Linux イメージをカスタマイズする

イメージ カスタマイザーは、既存の Azure Linux イメージを特定のシナリオに合わせて変更するオープンソース ツールです。 chrootおよびループバック ブロック デバイスを使用して、仮想マシン (VM) を起動せずにカスタマイズを実行し、プロセスを高速で信頼性が高く、CI/CD ワークフローに簡単に統合できるようにします。 これは、公式のAzure Linux イメージを構築するために使用されるのと同じテクノロジです。 完全な構成リファレンスと高度な使用方法については、 イメージ カスタマイザーのドキュメントを参照してください。

Note

Azure Image Builder (AIB) と Image Customizer の統合はまだ利用できません。 現時点では、イメージ カスタマイザーを直接使用して、Azure Linux イメージをカスタマイズできます。

イメージ カスタマイザーを使用すると、次のことができます。

  • パッケージを追加または削除します。
  • ファイルまたはディレクトリを追加します。
  • ユーザーとシステム設定を構成します。
  • カスタム パーティション レイアウトを適用します。
  • 複数の形式で出力イメージを生成します。

イメージ カスタマイザーでは、入れ子になったカスタマイズもサポートされているため、既にカスタマイズされているイメージをさらにカスタマイズできます。 複数のイメージを構築するチームの場合は、最初に共有カスタム 基本イメージを作成して、メンテナンスのオーバーヘッドを軽減することを検討してください。

Note

Azure Linux 4.0 は現在、preview であり、評価とテストの目的に厳密に限定されています。 運用環境での使用には適していません。

Prerequisites

  • ホスト にインストールされている Docker。
  • ベース イメージ: 任意の Azure Linux イメージ (Azure Marketplace のイメージ、または既に管理しているイメージ)。
  • 構成ファイル: 変更を記述する YAML または JSON ファイル。

サポートされているホスト システム

イメージ カスタマイザーは次のコマンドで実行できます。

  • Azure Linux
  • Ubuntu 22.04

イメージ カスタマイザーを使用する

イメージ カスタマイザーは、Microsoft Artifact Registry (MCR) に発行されたコンテナーとして実行されます。

使用可能なタグを一覧表示する

次のコマンドを使用して、Image Customizer コンテナーで使用可能なタグを一覧表示します。

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

イメージをカスタマイズする

イメージ カスタマイザー コンテナーを実行し、基本イメージと構成ファイルをコンテナーにマウントしてイメージをカスタマイズします。 例えば次が挙げられます。

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"

次の値を置き換えます。

プレースホルダー Description
<shared-dir> 基本イメージと構成ファイルを含むディレクトリへの絶対パス。 カスタマイズされたイメージもここに書き込まれます。
<base-image.vhdx> 変更する基本イメージ ファイルへのパス。
<config-file.yaml> 変更を記述する構成ファイルへのパス。
<output-image.raw> カスタマイズされた出力イメージのパス。

詳細については、 イメージ カスタマイザーのドキュメントを参照してください