Packer 可用于安装和配置裸机服务器吗?Packer 为 Web 服务器提供存储库包和 preseed/kickstart,并可运行其他一些配置软件(ansible、puppet、chef 等)。它可用于安装裸机服务器吗?如果可以,packer .json 应该是什么样子?
答案1
我也有类似的问题。我在使用 Packer 进行 PXE 启动时找到了这个问题帖子。
https://github.com/hashicorp/packer/issues/955
在该帖子中,Vasiliy Tolstov 评论道:
[它]非常简单:在虚拟机中安装所有需要的东西(对于 Debian 实时启动,对于 fedora/centos Dracut 具有从网络启动的能力)。在使用打包程序构建之后,运行以下脚本(以 Debian 为例):
#!/bin/sh -ex
apt-get -y install squashfs-tools
mkdir -p /mnt/squashfs /squashfs
mount -o bind / /mnt/squashfs
mksquashfs /mnt/squashfs /squashfs/filesystem.squashfs -comp gzip -no-exports -xattrs -noappend -no-recovery -e
/mnt/squashfs/squashfs/filesystem.squashfs
find /boot -name 'vmlinuz-*' -type f -exec cp {} /squashfs/vmlinuz \;
find /boot -name 'init*' -type f -exec cp {} /squashfs/initrd.img \;
并在打包程序中从虚拟机下载工件:
{
"type": "file",
"direction": "download",
"sources": [
"/squashfs/vmlinuz"
],
"destination": "output/{{user `name`}}-squashfs/{{user `name`}}.vmlinuz"
},
{
"type": "file",
"direction": "download",
"sources": [
"/squashfs/initrd.img"
],
"destination": "output/{{user `name`}}-squashfs/{{user `name`}}.initrd"
},
{
"type": "file",
"direction": "download",
"sources": [
"/squashfs/filesystem.squashfs"
],
"destination": "output/{{user `name`}}-squashfs/{{user `name`}}.squashfs"
}