生成Ignition配置

Ignition概述

IGNING是一个配置实用程序,它读取配置文件(JSON格式),并基于该配置配置Fedora CoreOS系统。可配置组件包括存储和文件系统、系统单元和用户。

在系统的第一次引导期间(在initramf中),Ignition只运行一次。由于Ignition在引导过程的早期运行,它可以在用户空间开始引导之前对磁盘进行重新分区、格式化文件系统、创建用户和写入文件。因此,在系统d启动时,系统d服务已经写入磁盘,从而加快了引导时间。

配置流程

Ignition配置采用JSON格式,便于机器快速阅读。然而,这些文件对人类来说并不容易读写。该解决方案是一个对人和机器都友好的两步配置过程:

运行buane将YAML文件转换为JSON Ignition配置。

在转换过程中,Butane验证YAML文件的语法,该文件可以在您使用它启动FCOS系统之前捕获错误。

一旦你有了Ignition装置( .ign )文件,您可以使用它来引导VM中的FCOS系统或将其安装在裸机上。

在配置Fedora CoreOS实例之前,尝试使用全套定制详细信息来规划您的配置。但是,如果您忘记了什么,请不要担心,因为您只需修复配置并从新的映像重新部署实例即可。

得到Butane

您可以使用docker或podman将Butane作为容器运行,也可以将其作为独立二进制文件下载。

除非另有说明,否则新释放的Butane与旧释放的Butane向后兼容。

通过一个带有 podmandocker

你可以从托管的容器中获得Butane quay.io

podman pull quay.io/coreos/butane:release
这个 release 标记跟踪最新版本,而 latest Tag跟踪Git开发分支。

使用标准输入和标准输出或使用文件运行Butane:

使用标准输入和标准输出运行Butane的示例
podman run --interactive --rm quay.io/coreos/butane:release \
       --pretty --strict < your_config.bu > transpiled_config.ign
使用文件作为输入和标准输出运行Butane的示例
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。

通过分发包安装

Installing on Fedora

Butane以Fedora套餐的形式提供:

sudo dnf install -y butane

Installing via Homebrew

Butane作为一种 自制酒 套餐:

brew install butane

Installing via MacPorts

Butane作为一种 MacPorts 套餐:

sudo port install butane

Installing via Scoop

Butane作为一种 铲子 通过 临时演员

scoop bucket add extras
scoop install butane

独立二进制文件

Linux

要在Linux上使用Butane二进制文件,请执行以下步骤:

如果您还没有这样做,请下载 Fedora签名密钥 并导入它们:

+

curl https://getfedora.org/static/fedora.gpg | gpg --import
通过GPG进行验证:

+

gpg --verify butane-x86_64-unknown-linux-gnu.asc

macOS

要在MacOS上使用Butane二进制文件,请执行以下步骤:

如果您还没有这样做,请下载 Fedora签名密钥 并导入它们:

+

curl https://getfedora.org/static/fedora.gpg | gpg --import
通过GPG进行验证:

+

gpg --verify butane-x86_64-apple-darwin.asc

Windows

要在Windows上使用Butane二进制文件,请执行以下步骤:

如果您还没有这样做,请下载 Fedora签名密钥 并导入它们:

+

Invoke-RestMethod -Uri https://getfedora.org/static/fedora.gpg | gpg --import
通过GPG进行验证:

+

gpg --verify butane-x86_64-pc-windows-gnu.exe.asc

一个简单的例子

创建修改默认Fedora CoreOS用户的基本Ignition配置 core 以允许此用户使用SSH密钥登录。

总体步骤如下:

必备条件

使用生成的启动配置启动一个新的Fedora CoreOS映像。

本例使用一对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配置上运行Butane:

+

butane --pretty --strict example.bu > example.ign

+ .使用 example.ign 将文件保存到 Boot Fedora CoreOS