TinyIPA 镜像

TinyIPA 是一个基于 TinyCoreLinuxIronic Python Agent 镜像。它非常轻量级,因此非常适合用于 CI 使用。它可能缺少必要的驱动程序,并且构建过程使用不安全的通信,因此不建议在生产环境中使用这些镜像。

需求

你需要克隆 ironic-python-agent-builder 的 git 仓库

git clone https://opendev.org/openstack/ironic-python-agent-builder
cd ironic-python-agent-builder/tinyipa

然后你需要安装一些实用工具。对于主构建脚本

  • wget

  • pip

  • unzip

  • sudo

  • awk

  • mksquashfs

对于构建 ISO,你还需要

  • mkisofs, genisoimage, 或 xorrisofs

构建

构建 ramdisk

要创建一个新的 ramdisk,请运行

make

或者

./build-tinyipa.sh && ./finalise-tinyipa.sh

完成之后,将会创建两个新文件

  • tinyipa.vmlinuz - 内核镜像

  • tinyipa.gz - initramfs 镜像

将它们上传到 Image 服务或其他你希望托管它们的位置(对于独立的 ironic,可以使用 HTTP 或 FILE 位置)。

构建 ISO

构建完 tinyIPA 后,如果需要,可以将其打包成 ISO。要创建一个可引导的 ISO,请运行

make iso

或者

./build-iso.sh

完成之后,将会创建一个新文件

  • tinyipa.iso

清理

要清理整个构建环境,请运行

make clean

要仅清理 iso 或仅清理 ramdisk 构建

make clean_iso

或者

make clean_build

高级选项

启用/禁用 ramdisk 的 SSH 访问

默认情况下,tinyIPA 将会安装 OpenSSH 服务器,但没有授权的公共 SSH 密钥来访问它。

如果你想启用对镜像的 SSH 访问,请在构建 tinyIPA 之前在你的 shell 中设置 AUTHORIZE_SSH 变量

export AUTHORIZE_SSH=true

默认情况下,它将使用运行构建的用户提供的公共 RSA 或 DSA 密钥。要提供不同的公共 SSH 密钥,请在构建 tinyIPA 之前在你的 shell 中导出其路径

export SSH_PUBLIC_KEY=<full-path-to-public-key>

如果你想完全禁用 SSH,请在构建 tinyIPA 之前在你的 shell 中将 INSTALL_SSH 变量设置为 false

export INSTALL_SSH=false

如果你想更改先前构建的 tinyIPA 镜像的 SSH 访问权限,请使用 make 目标 addssh

make addssh

该命令将使用由 TINYIPA_RAMDISK_FILE 环境变量指定的本地镜像,或者从 tarballs.openstack.org 下载由 BRANCH_PATH 环境变量(例如 masterstable-queens)指定的版本。它将安装并配置 OpenSSH(如果需要),并使用相同的 SSH_PUBLIC_KEY shell 变量或本地用户的公共密钥为名为 tc 的用户添加公共 SSH 密钥。

在 ramdisk 中启用 biosdevname

如果你想在 inventory 中收集 NIC 的 BIOS 给定的名称,请在构建 tinyIPA 之前在你的 shell 中设置 TINYIPA_REQUIRE_BIOSDEVNAME 变量

export TINYIPA_REQUIRE_BIOSDEVNAME=true