nestos-assembler是用于构建NestOS系统的构建环境。
nestos-assembler是一个构建环境,该环境包含一系列工具,可用来构建NestOS,nestos-assembler实现了在构建和测试操作系统的过程都是封装在一个容器中。
nestos-assembler可以简单理解为是一个可以构建NestOS的容器环境,该环境集成了构建NestOS所需的一些脚本、rpm包和工具。
因nestos-assembler代码变化较为剧烈,历史提交记录过多,克隆该仓库时建议使用如下命令,降低代码目录体积,提高拉取速率:
git clone --depth=1 --single-branch https://gitee.com/openeuler/nestos-assembler.git
添加参数含义为仅下载单独分支的最新1条提交记录
git clone --depth=1 --single-branch https://gitee.com/openeuler/nestos-assembler.git
cd nestos-assembler/
docker build -f Dockerfile . -t nestos-assembler:your_tag
nosa 脚本的作用是封装nestos-assembler调用过程,简化命令执行复杂度。受限于用户使用容器引擎及构建容器镜像名称的不同,当前nestos-assembler暂未提供nosa脚本,请按照以下步骤在nestos-assembler运行环境中自行修改实现:
- 编写nosa脚本内容,参考示例如下,注意根据实际容器镜像名称修改:
#!/bin/bash
sudo docker run --rm -it --security-opt label=disable --privileged --user=root \
-v ${PWD}:/srv/ --device /dev/kvm --device /dev/fuse --network=host \
--tmpfs /tmp -v /var/tmp:/var/tmp -v /root/.ssh/:/root/.ssh/ -v /etc/pki/ca-trust/:/etc/pki/ca-trust/ \
${COREOS_ASSEMBLER_CONFIG_GIT:+-v $COREOS_ASSEMBLER_CONFIG_GIT:/srv/src/config/:ro} \
${COREOS_ASSEMBLER_GIT:+-v $COREOS_ASSEMBLER_GIT/src/:/usr/lib/coreos-assembler/:ro} \
${COREOS_ASSEMBLER_CONTAINER_RUNTIME_ARGS} \
${COREOS_ASSEMBLER_CONTAINER:-nestos-assembler:your_tag} "$@"
- 将该脚本保存或移动至 /usr/local/bin/ 目录
- 赋予可执行权限:
sudo chmod +x /usr/local/bin/nosa
| 命令 | 描述 |
|---|---|
| nosa init | 初始化构建工作目录,拉取构建配置 |
| nosa fetch | 更新最新构建配置,下载并缓存所需rpm包 |
| nosa build | 构建新版本ostree文件系统,生成OCI格式归档文件 |
| 命令 | 描述 |
|---|---|
| nosa list | 列出当前工作目录下历史构建及已构建发布件 |
| nosa clean | 删除全部历史构建(builds、tmp) |
| nosa prune | 删除特定构建版本 |
| nosa compress | 压缩构建发布件 |
| nosa decompress | 解压缩构建发布件 |
| nosa uncompress | 解压缩构建发布件 |
| nosa tag | 管理构建版本标识 |
| 命令 | 描述 |
|---|---|
| nosa buildextend-qemu | 构建qemu平台qcow2格式镜像,可由build命令添加目标同步完成 |
| nosa buildextend-metal | 构建raw格式磁盘镜像,可由build命令添加目标同步完成 |
| nosa buildextend-metal4k | 构建原生4k模式raw格式磁盘镜像,可由build命令添加目标同步完成 |
| nosa buildextend-live | 构建带有live环境的ISO镜像,必须已构建完毕metal和metal4k格式镜像 |
| nosa buildextend-openstack | 构建适用于openstack环境的qcow2镜像 |
| 命令 | 描述 |
|---|---|
| nosa kola run | 使用kola测试框架对指定版本构建进行自动化功能测试 |
| nosa kola testiso | 使用kola测试框架对指定版本构建不同平台发布件进行自动化场景测试(e.g. iso, PXE) |
| nosa kola-run | 等效于kola run,通过此命令可排除测试过程无效日志干扰,获取测试统计结果及有效日志摘录 |
| nosa push-container | 推送OCI格式ostree文件系统至容器镜像仓库 |
| nosa run | 运行指定构建版本的NestOS qemu实例,一般用于调试验证 |
| nosa shell | 进入nestos-assembler容器镜像环境bash,一般用于调试验证 |
nestos-assembler 遵从 Apache 2.0 版权协议
nestos-assembler 为 coreos-assembler 衍生版本,将在openEuler生态内适配维护,后期考虑独立演进。
感谢Fedora CoreOS团队对 coreos-assembler 的精彩付出。
参见 对比上游项目主要改动。