CoreOS 不重装而使用json文档更新系统配置的方法(2303.3.0)

CoreOS在启动过程中,先加载内核,内核再加一个参数,来判断是不是第一次启动。
如果第一次启动,就执行ignitoin配置。
通过研究,在/boot/coreos下touch一个名称为first_boot的空文档 ,内核就认为是第一次启动了

注: 查看 /boot/coreos/grub/grub.cfg.tar 的解压后文档,可以知道整个启动流程。

/usr/share/oem/config.ign 这个文档中,保存的就是我们首次安装CoreOS时,配置文档 ignition.json 的内容

通过查看系统挂载信息可以知道目录 /usr/share/oem 是可写的

core@localhost ~ $ mount
/dev/mapper/usr on /usr type ext4 (ro,relatime,seclabel)
/dev/sda6 on /usr/share/oem type ext4 (rw,nodev,relatime,seclabel)
...

那么问题就简单了,要重新配置,则:

  1. 编写新的config.yaml配置文档再使用ct 工具,转换为 .json格式的文档;
  2. 用将新的配置文档内容替换掉 /usr/share/oem/config.ign 的内容;
  3. /boot/coreos/ 目录下, touch 一个 名为first_boot 的空文档;
  4. reboot;

Ignition是coreos开发的一种新型的系统初始化配置方式,有以下特点:

  1. 只运行一次。在系统安装完成后,第一次开机启动时运行。
  2. 执行时间非常早,在内核加载后,initramfs阶段执行。
  3. 所以可以进行很多在系统阶段无法操作的工作。如格式化磁盘,调整网络配置,对只读文件系统进行写操作等。
发布了76 篇原创文章 · 获赞 27 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/kunyus/article/details/103948158
今日推荐