Igniton 配置手工更新

栏目: 服务器 · 发布时间: 5年前

内容简介:以前闭着眼睛用 matchbox+dnsmasq+bootkube来全自动化安装 coreos的 tectonic服务,现在coreos也步docker后尘了,每个tectonic版本出来都变化巨大,不向前兼容,还没什么文档,全靠瞎摸索。每个版本出来,配置文件很多,手工一个个更新太麻烦,直接重装系统吧,安装是快,5分钟搞定,但各种rkt,docker镜像,拜gfw所赐,一天能下载完算运气好的了(有梯子也不好使)。所以琢磨一下怎么不重装系统,把配置文件比较快捷的更新掉,据.......很久很久的研究,发现配

以前闭着眼睛用 matchbox+dnsmasq+bootkube来全自动化安装 coreos的 tectonic服务,现在coreos也步 docker 后尘了,每个tectonic版本出来都变化巨大,不向前兼容,还没什么文档,全靠瞎摸索。

每个版本出来,配置文件很多,手工一个个更新太麻烦,直接重装系统吧,安装是快,5分钟搞定,但各种rkt,docker镜像,拜gfw所赐,一天能下载完算运气好的了(有梯子也不好使)。

所以琢磨一下怎么不重装系统,把配置文件比较快捷的更新掉,据.......很久很久的研究,发现配置文件是装机时,通过一个叫ignitoin的方式灌进系统的。

ignition的配置文件很容易在matchbox上找到,通过 http://matchbox:8080/ignition% ... alled 很方便的下载下来了。可怎么用了?以前的cloud-init配置可以直接用coreos-cloudinit --from-file=xxxx, 可这个文件不能这么用啊。

继续折腾,翻官方文档,说启动过程中,先加载内核,内核可以加一个参数判断是不是第一次启动。如果第一次启动,就执行ignitoin配置。查看/boot/分区,在coreos/grub下发现grub.cfg.tar(什么时候用压缩文件了,印象中grub.cfg不一直是明文的么),解开看了看,差不多明白咋回事了,就是在/boot/coreos下touch一个first_boot文件,内核就认为是第一次启动了。官方文档说内核会从网络上下载ign配置文件执行,OK,立即touch文件,重启。。。。。。。啥效果都没看到,配置文件还是老的啊。

折腾again,看看系统日志,journalctl -t ignitiong --no-pager, 可以看到ignition确实执行了,还把json格式文件的配置给我看了,可tmd是老的配置文件啊,我手头有新配置文件啊,放哪儿内核能找到呢?

.......动用find大发,在/var目录,/etc目录等,搜啊搜,啥都没收到。没有任何文档告诉我ignition的配置文件放哪儿的。 对于代码小白,又看不懂源代码。

继续看日志吧,发现在ignitoin之前,有这么一段:

Sep 28 05:18:46 localhost ignition[264]: Ignition v0.17.2

Sep 28 05:18:46 localhost ignition[264]: parsed url from cmdline: "oem:///coreos-install.json"

Sep 28 05:18:46 localhost ignition[264]: oem config not found in "/usr/share/oem", trying "/mnt/oem"

Sep 28 05:18:47 localhost ignition[264]: op(1): [started]  mounting "/dev/disk/by-label/OEM" at "/mnt/oem"

Sep 28 05:18:47 localhost ignition[264]: op(1): [finished] mounting "/dev/disk/by-label/OEM" at "/mnt/oem"

Sep 28 05:18:47 localhost ignition[264]: op(2): [started]  unmounting "/mnt/oem"

Sep 28 05:18:47 localhost ignition[264]: op(2): [finished] unmounting "/mnt/oem"

看样子它在找oem配置,找一个coreos-install.json, 动用find大法,发现在/usr/share/oem中有这么一个文件。查看内容,果然是ignitoin的配置文件(可日志还非常瞎掰的说oem config not found in "/usr/share/oem")。

OK,把手头的新配置文件覆盖上去,再touch first_boot, 重启,终于搞定,打完收工。

----------分割线----------

Ignition是coreos开发的一种新型的系统初始化配置方式,

主页 https://coreos.com/ignition/

对比它自家的cloud-init,据说有以下特点:

. 只运行一次。在系统安装完成后,第一次开机启动时运行。

. 执行时间非常早,在内核加载后,initramfs阶段执行,所以可以干很多在系统阶段没法干的事情,如格式化磁盘,调整网络配置,写只读文件系统等事情。

. json化配置文件,简单易用。

-------继续分割线-----

感叹一下,现在coreos更新很快,没有了林帆 @帆 大神更新大作 《coreos实践之路》,这coreos越来越不知道怎么用了,这coreos要想大规模普及,任重道远啊!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品心经:产品经理应该知道的60件事(第2版)

产品心经:产品经理应该知道的60件事(第2版)

闫荣 / 机械工业出版社 / 2016-4 / 69.00

本书第一版出版后广获好评,应广大读者要求,作者把自己在实践中新近总结的10个关于产品的最佳实践融入到了这本新书中。这"10件事"侧重于深挖产品需求和产品疯传背后的秘密,配合之前的"50件事",不仅能帮产品经理打造出让用户尖叫并疯传的产品,还能帮助产品经理迅速全方位提升自己的能力。 本书作者有超过10年的产品工作经验,在互联网产品领域公认的大咖,这本书从产品经理核心素养、产品认知、战略与规划、......一起来看看 《产品心经:产品经理应该知道的60件事(第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具