跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 Image Builder:blueprint 构建 qcow2

    Image Builder 在 RHEL 10 上是本地 API 服务:osbuild-composer 跑在 socket 后面,composer-cli 通过它推 blueprint、排 compose、取产物。本页在 390 上构建一个最小 qcow2。

    在 PVE 390 rhel10-lab(RHEL 10.2)执行:

    Terminal window
    sudo dnf -y install osbuild-composer composer-cli
    sudo systemctl enable --now osbuild-composer.socket
    sudo composer-cli status show

    输出:

    API server status:
    Database version: 0
    Database supported: true
    Schema version: 0
    API version: 1

    E3 记录:plans/content-expansion/evidence/rhel/rhel-image-builder/run.json(6 步,含 compose 状态、镜像大小/sha256)。

    • osbuild-composer.socket 按需拉起服务,不需要手动 systemctl start;
    • composer-cli 只是客户端,所有状态在 composer 的数据库里;
    • 构建在 /var/lib/osbuild-composer 下,空间要留够;
    • 产物默认不自动下载,要 composer-cli compose image <uuid>。

    /tmp/rhel10-lab.toml:

    name = "rhel10-lab"
    description = "RHEL 10.2 lab image"
    version = "0.0.1"
    [[packages]]
    name = "bash"
    version = "*"
    [[packages]]
    name = "coreutils"
    version = "*"
    [[packages]]
    name = "openssh-server"
    version = "*"
    [[packages]]
    name = "vim-minimal"
    version = "*"
    [customizations.kernel]
    append = "quiet"

    推送:

    Terminal window
    sudo composer-cli blueprints push /tmp/rhel10-lab.toml
    sudo composer-cli blueprints list
    # rhel10-lab
    Terminal window
    sudo composer-cli compose start rhel10-lab qcow2
    # Compose 83d6309b-fb9e-49ec-8d64-056d65dbb653 added to the queue
    sudo composer-cli compose list
    ID Status Blueprint Version Type
    83d6309b-fb9e-49ec-8d64-056d65dbb653 FINISHED rhel10-lab 0.0.1 qcow2

    compose info 会列出解析后的依赖:NetworkManager、audit、aardvark-dns 等基础包都会自动带入,不是只装你写的 4 个包。

    Terminal window
    sudo mkdir -p /srv/images
    cd /srv/images
    sudo composer-cli compose image 83d6309b-fb9e-49ec-8d64-056d65dbb653
    sudo chown cloud-user:cloud-user *.qcow2
    $ stat -c '%s' *.qcow2
    1058406400
    $ sha256sum *.qcow2
    c4229b471730ae31e83c8358781e4d7e46ba33782119d660cacfa56aac5c579d
    $ qemu-img info *.qcow2
    file format: qcow2
    virtual size: 10 GiB (10737418240 bytes)
    disk size: 0.986 GiB
    compat: 1.1

    1.06GB 文件对应 10G 虚拟磁盘;qcow2 是稀疏的,disk size 才是实际占用。

    现象原因处置
    composer-cli 连不上socket 没起systemctl enable --now osbuild-composer.socket
    compose 一直 RUNNING仓库慢/依赖解析compose info 看日志、journalctl -u osbuild-composer
    Permission denied 读镜像文件 root:root 0600chown 或 sudo 读取
    磁盘不足/var/lib/osbuild-composer 满清理旧 compose、扩盘
    • osbuild-composer.socket active;
    • blueprint 名称/版本正确;
    • compose 类型选对(qcow2/ami/vhd 等);
    • compose 状态 FINISHED 再下载;
    • 校验大小/sha256/qemu-img;
    • 记录 blueprint 版本,便于复现。
    • 未把产物导入 PVE 启动验证(镜像无 cloud-init 用户,登录需另配);
    • 未测试 %post/customizations(用户、服务、防火墙);
    • 未测试其他输出类型(ami/vhd/oci);
    • 未测试离线/隔离网络下的 compose。