Igniton 配置手工更新

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

内容简介:以前闭着眼睛用 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要想大规模普及,任重道远啊!


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

查看所有标签

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

这就是搜索引擎

这就是搜索引擎

张俊林 / 电子工业出版社 / 2012-1-1 / 45.00元

搜索引擎作为互联网发展中至关重要的一种应用,已经成为互联网各个领域的制高点,其重要性不言而喻。搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系统是如何设计的?这成为广大技术人员和搜索引擎优化人员密切关注的内容。 本书的最大特点是内容新颖全面而又通俗易懂。对于实际搜索引擎所涉及的各种核心技术都有全面细致的介绍,除了作为搜索系统核心的网络爬虫、索引系统、排序系统、......一起来看看 《这就是搜索引擎》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换