web-dev-qa-db-ja.com

Packerでベアメタルをプロビジョニングする方法はありますか?

Packerを使用してベアメタルサーバーをインストールおよびプロビジョニングできますか? PackerはWebサーバーにリポジトリパッケージとpreseed/kickstartを提供し、他のいくつかのプロビジョニングソフトウェア(ansible、puppet、chefなど)を実行できます。ベアメタルサーバーのインストールに使用できますか?はいの場合、packer .jsonはどのように見えるべきですか?

同様の質問がありました。 PXEブートでPackerを使用するときにこの問題のスレッドが見つかりました。

https://github.com/hashicorp/packer/issues/955

スレッドから、Vasiliy Tolstovはコメントしました:

[それは]非常に簡単です:VM(Debian live-bootの場合、Fedora/centos Dracutの場合はネットからブートできる機能)の内部に必要なものをすべてインストールします)。 with] packerは次のスクリプトを実行します(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 \;

そしてpackerで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"
}
6
Frobbit