生成Ignition配置
Ignition概述
IGNING是一个配置实用程序,它读取配置文件(JSON格式),并基于该配置配置Fedora CoreOS系统。可配置组件包括存储和文件系统、系统单元和用户。
在系统的第一次引导期间(在initramf中),Ignition只运行一次。由于Ignition在引导过程的早期运行,它可以在用户空间开始引导之前对磁盘进行重新分区、格式化文件系统、创建用户和写入文件。因此,在系统d启动时,系统d服务已经写入磁盘,从而加快了引导时间。
配置流程
Ignition配置采用JSON格式,便于机器快速阅读。然而,这些文件对人类来说并不容易读写。该解决方案是一个对人和机器都友好的两步配置过程:
在转换过程中,Butane验证YAML文件的语法,该文件可以在您使用它启动FCOS系统之前捕获错误。
一旦你有了Ignition装置( .ign
)文件,您可以使用它来引导VM中的FCOS系统或将其安装在裸机上。
在配置Fedora CoreOS实例之前,尝试使用全套定制详细信息来规划您的配置。但是,如果您忘记了什么,请不要担心,因为您只需修复配置并从新的映像重新部署实例即可。 |
得到Butane
您可以使用docker或podman将Butane作为容器运行,也可以将其作为独立二进制文件下载。
除非另有说明,否则新释放的Butane与旧释放的Butane向后兼容。 |
通过一个带有 podman
或 docker
你可以从托管的容器中获得Butane quay.io :
podman pull quay.io/coreos/butane:release
这个 release 标记跟踪最新版本,而 latest Tag跟踪Git开发分支。
|
使用标准输入和标准输出或使用文件运行Butane:
podman run --interactive --rm quay.io/coreos/butane:release \
--pretty --strict < your_config.bu > transpiled_config.ign
podman run --interactive --rm --security-opt label=disable \
--volume ${PWD}:/pwd --workdir /pwd quay.io/coreos/butane:release \
--pretty --strict your_config.bu > transpiled_config.ign
为便于输入,您还可以将以下别名添加到您的外壳配置中:
alias butane='podman run --rm --interactive \
--security-opt label=disable \
--volume ${PWD}:/pwd --workdir /pwd \
quay.io/coreos/butane:release'
这些示例使用的是podman,但您可以以类似的方式使用docker。 |
独立二进制文件
Linux
要在Linux上使用Butane二进制文件,请执行以下步骤:
+
curl https://getfedora.org/static/fedora.gpg | gpg --import
+
gpg --verify butane-x86_64-unknown-linux-gnu.asc
macOS
要在MacOS上使用Butane二进制文件,请执行以下步骤:
+
curl https://getfedora.org/static/fedora.gpg | gpg --import
+
gpg --verify butane-x86_64-apple-darwin.asc
Windows
要在Windows上使用Butane二进制文件,请执行以下步骤:
+
Invoke-RestMethod -Uri https://getfedora.org/static/fedora.gpg | gpg --import
+
gpg --verify butane-x86_64-pc-windows-gnu.exe.asc
一个简单的例子
创建修改默认Fedora CoreOS用户的基本Ignition配置 core
以允许此用户使用SSH密钥登录。
总体步骤如下:
必备条件
本例使用一对SSH公钥和私钥。如果你还没有,你可以 生成SSH密钥对 。
SSH公钥将被提供给Fedora CoreOS机器(通过Ignition)。SSH私钥需要可供本地工作站上的用户使用,以便通过SSH远程验证您自己。
正在编写Butane配置
+
variant: fcos
version: 1.4.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAA...
+
.将上面的行替换为 ssh-rsa
使用您的SSH公钥文件的内容。
+
.使用名称保存该文件 example.bu
。
YAML文件必须具有一致的缩进。尽管Butane会检查语法错误,但要确保缩进与上面的示例匹配。总体而言,Butane构型必须符合Butane构型 配置规范 格式化。 |
使用Butane
+
butane --pretty --strict example.bu > example.ign
+
.使用 example.ign
将文件保存到 Boot Fedora CoreOS 。