Есть ли способ снабдить голого металла пакером?
Можно ли использовать Packer для установки и подготовки голого металлического сервера? Packer предоставляет веб-серверу пакеты репозитория и preseed/kickstart и может запускать некоторые другие программные обеспечения (ansible,puppet, chef и т. Д.). Может ли он быть использован для установки серверов без поддержки? Если да, то как должен выглядеть упаковщик.json?
1 ответ
У меня был похожий вопрос. Я нашел эту тему об использовании Packer с загрузкой PXE.
https://github.com/hashicorp/packer/issues/955
Из ветки Василий Толстов прокомментировал:
[Это] очень просто: установить все необходимые вещи внутри виртуальной машины (для live-загрузки Debian, для Dracut fedora / centos с возможностью загрузки из сети). после [сборки] этого [с] упаковщика запустите следующий скрипт (пример для 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 \;
и в пакере скачайте артефакты с vm:
{
"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"
}