diff --git a/README.md b/README.md index 39089271b7366030e5c539a0a201e3b54fa751a4..cf9c32a94ec940ff463558386e9aeadab7920be7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ #### 在不断演进的云原生世界中,容器化和虚拟化技术已经成为了现代应用程序交付和管理的关键组成部分。为满足这个不断增长的需求,NestOS推出了NestOS For Container 和 NestOS For Virt两个版本,专注于提供最佳的容器主机和虚拟化解决方案。现已发布NestOS-24.03-LTS版本,欢迎各位开发者访问[NestOS官方网站](https://nestos.openeuler.org/)下载体验。 -#### 从24.03-LTS版本开始,我们对发布目录进行了规划改造,以适应更复杂的发布需求。 +#### 从24.03-LTS版本开始,NestOS对发布流进行了升级改造,优化目录结构,简化发布流程,以适应更复杂的发布需求。关于发布流改造的详细说明,请参阅[NestOS发布流管理](https://gitee.com/openeuler/NestOS/blob/master/docs/zh/usr_manual/NestOS%E5%8F%91%E5%B8%83%E6%B5%81%E7%AE%A1%E7%90%86.md) ## 1. NestOS For Container NestOS For Container(以下简称NFC)集成了rpm-ostree支持、ignition配置等技术,采用双根文件系统,原子化更新的设计思路,使用nestos-assembler快速集成构建。并针对K8S、openStack等平台进行适配,优化容器运行底噪,使系统具备十分便捷的集群组建能力,可以更安全的运行大规模的容器化工作负载。 @@ -10,7 +10,7 @@ NestOS For Container(以下简称NFC)集成了rpm-ostree支持、ignition配 ### 1.1 NFC-快速开始 -[在虚拟化平台部署-以VMware为例](https://gitee.com/openeuler/NestOS/blob/master/docs/zh/usr_manual/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B.md) +[快速开始](https://gitee.com/openeuler/NestOS/blob/master/docs/zh/usr_manual/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B.md) ### 1.2 NFC-应用指南 ①. [rpm-ostree使用](https://gitee.com/openeuler/NestOS/blob/master/docs/zh/usr_manual/rpm-ostree%E4%BD%BF%E7%94%A8.md) diff --git "a/docs/zh/usr_manual/nestos\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" "b/docs/zh/usr_manual/NestOS\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" similarity index 31% rename from "docs/zh/usr_manual/nestos\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" rename to "docs/zh/usr_manual/NestOS\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" index 49592c0f70ab77427272a7513b3e5481c26b2a3e..bdf7f74a3e12bf39e04b911ef0c0375b9cc8ed32 100644 --- "a/docs/zh/usr_manual/nestos\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" +++ "b/docs/zh/usr_manual/NestOS\345\217\221\345\270\203\346\265\201\347\256\241\347\220\206.md" @@ -1,82 +1,47 @@ - -NestOS 发布目录结构调整 -自2022年初首次正式发布以来,NestOS的发布流(stream metadata)管理逻辑一直较为简单,仅使用stable流进行发布。从24.03-LTS版本开始,我们对发布目录进行了规划改造,以适应更复杂的发布需求。 +NestOS自首次正式发布以来,其发布流(stream metadata)一直延用Fedora CoreOS的管理策略,仅使用stable流进行发布,该方法较为单一,已无法满足NestOS版本发布现状。结合NestOS版本发布策略以及欧拉版本命名规则,从24.03-LTS版本开始,NestOS对发布流进行了规划改造,以适应更复杂的发布需求。 **发布策略** -发布流命名规则:使用openEuler社区发布的LTS版本号作为流名称。例如,openEuler-24.03-LTS系列对应的发布流为2403-LTS,后续发布的增强版本SP1、SP2等均沿用此发布流。 -**nestos发布根目录**为: https://nestos.org.cn/NestOS-release +发布流命名规则:使用openEuler社区发布的LTS版本号作为发布流名称,生命周期与openEuler保持一致。例如,openEuler-24.03-LTS系列对应的NestOS发布流为2403-LTS,且后续发布的增强版本SP1、SP2等均沿用此发布流。 -**以下是发布目录以及介绍** +**NestOS发布流目录**: https://nestos.org.cn/NestOS-release -``` +**发布流目录结构与介绍** +``` /NestOS-release prod/#产品发布目录,根据流进行区分 - streams/ - 2403-LTS/ - - releases.json #①记录指定流下每一次构建不同架构的版本信息,用于自动更新 - + releases.json #记录指定流下每一次构建不同架构的版本信息,用于自动更新 builds/ - - builds.json #②记录build信息,包括id和架构,来自构建目录 - + builds.json #记录build信息,包括id和架构,来自构建目录 24.03-LTS-20240903.0/ - - release.json #③每个发布件的详细信息(所有架构) - + release.json #每个发布件的详细信息(所有架构) x86_64/ - - meta.json # ④各种元数据,来自构建目录,包括发布件信息,差异包信息等 - + meta.json #各种元数据,来自构建目录,包括发布件信息,差异包信息等 nestos-qemu.x86_64.qcow2.gz # 发布件,用于用户下载 - ... - aarch64/ - ... - 24.03-LTS-SP1-20241230.0/ - release.json - x86_64/ - meta.json - nestos-qemu.x86_64.qcow2.gz - ... - aarch64/ - ... - ... - 2603-LTS/ - ... - - streams/ #⑤记录指定流的最新版本详细信息,包括各种类型镜像的位置、签名等 - + + streams/ #记录指定流的最新版本详细信息,包括各种类型镜像的位置、签名等 2403-LTS.json - 2603-LTS.json - ... - updates/ #⑥记录指定流的每一次的版本摘要信息,仅记录version,用于自动更新 - + updates/ #记录指定流的每一次的版本摘要信息,仅记录version,用于自动更新 2403-LTS.json - 2603-LTS.json ``` - -以上是NestOS 2403版本的发布目录结构及其详细说明。希望这能帮助您更好地理解与使用我们的系统。 - - diff --git "a/docs/zh/usr_manual/\345\277\253\351\200\237\345\274\200\345\247\213.md" "b/docs/zh/usr_manual/\345\277\253\351\200\237\345\274\200\345\247\213.md" index 94f14a89040f568ad647d548fdcdd5c565a2f504..322dbfe37013b426fc05314dd208ea2b222ab46b 100644 --- "a/docs/zh/usr_manual/\345\277\253\351\200\237\345\274\200\345\247\213.md" +++ "b/docs/zh/usr_manual/\345\277\253\351\200\237\345\274\200\345\247\213.md" @@ -1,154 +1,62 @@ -# 快速开始 +## 快速开始 -## 在 VMware 上部署 NestOS +### 快速构建 -本指南展示了如何在VMware虚拟机管理程序上配置最新的 NestOS。 +1)获取nestos-assembler容器镜像 -目前NestOS支持x86_64和aarch64两种架构。 - -### 开始之前 - -​ 在开始部署 NestOS 之前,需要做如下准备工作: - -- 下载 NestOS ISO -- 准备 config.bu 文件 -- 配置 butane 工具(Linux环境/win10环境) -- 安装有VMware的宿主机 - -### 初步安装与启动 - -![image-20211014200951942](/docs/zh/graph/快速开始/image-20211014200951942.png) - -#### 启动 NestOS - -NestOS 初次启动如下图所示 - -![image-20211014201036415](/docs/zh/graph/快速开始/image-20211014201036415.png) - -初次启动 NestOS ,ignition 尚未安装,可根据系统提示使用 nestos-installer 组件进行ignition的安装。 - -![image-20211014201046509](/docs/zh/graph/快速开始/image-20211014201046509.png) - -### 配置 ignition 文件 - -#### 获取 Butane - -可以通过 Butane 将 bu 文件转化为 igniton 文件。ignition 配置文件被设计为可读但难以编写,是为了 -阻止用户尝试手动编写配置。 -Butane 提供了多种环境的支持,可以在 linux/windows 宿主机中或容器环境中进行配置。 - -``` -docker pull hub.oepkgs.net/nestos/butane:0.14.0 -``` - -#### 生成登录密码 - -在宿主机执行如下命令,并输入你的密码。 +推荐使用基于openEuler的base镜像,更多说明请参考6.1 ``` -# openssl passwd -1 -salt yoursalt -Password: -$1$yoursalt$1QskegeyhtMG2tdh0ldQN0 +docker pull hub.oepkgs.net/nestos/nestos-assembler:24.03-LTS.20240903.0-aarch64 ``` -#### 生成ssh-key - -在宿主机执行如下命令,获取公钥和私钥以供后续 ssh 登录。 - -``` -# ssh-keygen -N '' -f ./id_rsa -Generating public/private rsa key pair. -Your identification has been saved in ./id_rsa -Your public key has been saved in ./id_rsa.pub -The key fingerprint is: -SHA256:4fFpDDyGHOYEd2fPaprKvvqst3T1xBQuk3mbdon+0Xs root@host-12-0-0-141 -``` +2)编写名为nosa的脚本并存放至/usr/local/bin,并赋予可执行权限 ``` -The key's randomart image is: -+---[RSA 3072]----+ -| ..= . o . | -| * = o * . | -| + B = * | -| o B O + . | -| S O B o | -| * = . . | -| . +o . . | -| +.o . .E | -| o*Oo ... | -+----[SHA256]-----+ -``` - -可以在当前目录查看id_rsa.pub公钥 +#!/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} "$@" ``` -# cat id_rsa.pub -ssh-rsa -AAAAB3NzaC1yc2EAAAADAQABAAABgQDjf+I9QQZ+3vNWomqxpHkZq7ONHcEYBzs4C9RZahmLYVPBf/3y -HF5wTtfl5CBviERUnLGFn8c4Ua9MNWcJL6zE01xXtDZ2db7vaPwP3Qbo1lKJg1BVw6u+5bMKCJxEnN9+ -aOiX3A2XpkUVxhCoGlei3j78oLRU3ucCLn6m7wVE+P53tNQ5364xWqbAsDXdze4xnNZjlzH9JvjJ5IJY -WjwrD7UUkfI8qDj5ub9Gz+nSenaaSboWADsKe4JTLoU2Gz5fPLCj+uuNFpZAUc/GCe47He5UO6IbHjDI -bxqhzYZQTXdwIgKIM1PL19IkAAY07gU53b4gDSDj7SZYB+jjtgG8VoFF4m7nCJgRDeUKGTNT5fsLPKAZ -tmBvy9Mg5qkK/LisEzjUwPPh1NEb8bgN251wPXmPMjQ1aMzD8t9blq40KEyod2Eg05nW2q5/90ICNQBa -r9AkQrQ/3j8WsejvqseWIi1kq68pqvtcBJkCMiIfzIoUgCgcolw3fZprDhgfau8= root@host-12-0- -0-141 -``` - -#### 编写bu文件 -进行最简单的初始配置,如需更多详细的配置,参考后面的 ignition 详解。 -如下为最简单的 config.bu 文件 - -``` -variant: nestos -version: 1.1.0 -passwd: - users: - - name: core - password_hash: "$1$yoursalt$1QskegeyhtMG2tdh0ldQN0" - ssh_authorized_keys: - - "ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABgQDjf+I9QQZ+3vNWomqxpHkZq7ONHcEYBzs4C9RZahmLYVPBf/3y - HF5wTtfl5CBviERUnLGFn8c4Ua9MNWcJL6zE01xXtDZ2db7vaPwP3Qbo1lKJg1BVw6u+5bMKCJxEnN9+ - aOiX3A2XpkUVxhCoGlei3j78oLRU3ucCLn6m7wVE+P53tNQ5364xWqbAsDXdze4xnNZjlzH9JvjJ5IJY - WjwrD7UUkfI8qDj5ub9Gz+nSenaaSboWADsKe4JTLoU2Gz5fPLCj+uuNFpZAUc/GCe47He5UO6IbHjDI - bxqhzYZQTXdwIgKIM1PL19IkAAY07gU53b4gDSDj7SZYB+jjtgG8VoFF4m7nCJgRDeUKGTNT5fsLPKAZ - tmBvy9Mg5qkK/LisEzjUwPPh1NEb8bgN251wPXmPMjQ1aMzD8t9blq40KEyod2Eg05nW2q5/90ICNQBa - r9AkQrQ/3j8WsejvqseWIi1kq68pqvtcBJkCMiIfzIoUgCgcolw3fZprDhgfau8= root@host-12-0- - 0-141" -``` +注意修改COREOS_ASSEMBLER_CONTAINER 的值为本地环境中实际的nestos-assembler容器镜像。 -#### 生成ignition文件 +3)获取nestos-config -将 config.bu 通过 Butane 工具转换为 config.ign 文件,如下为在容器环境下进行转换。 +使用nosa init 初始化构建工作目录,拉取构建配置,创建工作目录nestos-build,在该目录下执行如下命令 ``` -# docker run --interactive --rm hub.oepkgs.net/nestos/butane:0.14.0 \ ---pretty --strict < your_config.bu > transpiled_config.ign +nosa init https://gitee.com/openeuler/nestos-config ``` -也可在其他环境下进行转换,Butane提供了多种转换的方式,可在如下地址查看。 -https://github.com/coreos/butane +4)调整构建配置 -### 安装 NestOS +nestos-config提供默认构建配置,无需额外操作。如需调整,请参考第5章。 -将宿主机生成的的config.ign文件通过scp拷贝到前面初步启动的 NestOS 中,该OS目前运行在内存中, -并没有安装到硬盘。 +5)NestOS镜像构建 ``` -sudo -i -scp root@10.1.110.88:/root/config.ign /root #从10.1.110.88拷贝,请自行更换你的生成ign文件的机器的ip +# 拉取构建配置、更新缓存 +nosa fetch +# 生成根文件系统、qcow2及OCI镜像 +nosa build +# 生成live iso及PXE镜像 +nosa buildextend-metal +nosa buildextend-metal4k +nosa buildextend-live ``` -根据系统所给提示,执行如下指令完成安装。 +详细构建及部署流程请参考第6章。 -``` -nestos-installer install /dev/sda --ignition-file config.ign -``` +### 快速部署 -安装完成后重启 NestOS 。 +以NestOS ISO镜像为例,启动进入live环境后,执行如下命令根据向导提示完成安装: ``` -systemctl reboot +sudo installnestos ``` -