TinyIPA 镜像¶
TinyIPA 是一个基于 TinyCoreLinux 的 Ironic 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 环境变量(例如 master 或 stable-queens)指定的版本。它将安装并配置 OpenSSH(如果需要),并使用相同的 SSH_PUBLIC_KEY shell 变量或本地用户的公共密钥为名为 tc 的用户添加公共 SSH 密钥。
在 ramdisk 中启用 biosdevname¶
如果你想在 inventory 中收集 NIC 的 BIOS 给定的名称,请在构建 tinyIPA 之前在你的 shell 中设置 TINYIPA_REQUIRE_BIOSDEVNAME 变量
export TINYIPA_REQUIRE_BIOSDEVNAME=true