Bento は、Vagrant ベース ボックスを構築するための Packer テンプレートをカプセル化するプロジェクトです。テンプレートのサブセットが構築され、Vagrant Cloud 上の Bentor 組織に公開されます。これらの公開されたボックスは、kitchen-vagrant のデフォルトのボックスとして機能します。
*注記:
bento test
コマンドが機能するには、test-kitchen および Kitchen-vagrant gem をインストールする必要がありますvboxmanage = []
os_pkrvars ファイルに追加します。Vagrant に弁当箱を追加する
vagrant box add bento/ubuntu-18.04
Vagrantfile での弁当ボックスの使用
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1注:これらのプロバイダーのサポートは実験的であると考えられており、対応する Vagrant Cloud イメージは存在する場合と存在しない場合があります。
*2注: AARCH64 または ARM64 のサポートは、Parallels および VMware プロバイダーを通じてのみ保証される進行中の作業です。
bento
実行可能ファイルの使用os_pkrvars
ディレクトリで利用可能なテンプレートを使用して Bentt ツールを使用して Debian vagrant ボックスを構築するには、次のコマンドを使用できます。
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
その他の利用可能なオプション:
ワークステーションの CPU アーキテクチャで利用可能なすべてのビルドをリストするために使用されます。このリストは、build.yml ファイルの do_not_build: セクションによってもフィルターされます。すべてのエントリは正規表現を介して照合され、リストからビルド テンプレートが除外されます。
これは、 bento build
でビルドされるもののみを示しており、テンプレートは指定されていません。フィルター対象の build.yml にテンプレートが含まれている場合でも、テンプレートが指定されている場合は、フィルターがオーバーライドされます。
bento list
Bentt ツールを使用して vagrant box を正常にビルドした場合は、 builds
フォルダーに vagrant box とメタデータ ファイルが存在するはずです。これらのファイルを使用して、テストキッチン構成でビルドをテストできます。次のコマンドを実行してビルドをテストします。
bento test
builds ディレクトリ内のボックスを vagrant クラウド アカウントにアップロードするには、build.yml ファイルを更新してアカウント名と公開する OS を指定します。
アップロード コマンドが機能するように、vagrant cli を設定し、アカウントにログインしていることを確認してください。
bento upload
bento upload
実行すると、各 <box_name>._metadata.json ファイルが読み取られ、提供されたデータを使用して、説明、バージョン、プロバイダー、およびチェックサムがすべて <box_name>._metadata.json から取得されるvagrant cloud publish
コマンドを生成します。ファイル。
packer
の使用VirtualBox プロバイダー専用の Ubuntu 22.04 ボックスを構築するには
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -only=virtualbox-iso.vm -var-file=os_pkrvars/ubuntu/ubuntu-22.04-x86_64.pkrvars.hcl ./packer_templates
すべての可能なプロバイダー用に最新の Debian 12 ボックスを (同時に) ビルドするには
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
VMware と Parallels を除くすべてのプロバイダー向けに最新の CentOS 7 ボックスを構築するには
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -except=parallels-iso.vm,vmware-iso.vm -var-file=os_pkrvars/centos/centos-7-x86_64.pkrvars.hcl ./packer_templates
代替 URL を使用するには
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var ' iso_url=https://mirrors.rit.edu/fedora/fedora/linux/releases/39/Server/x86_64/iso/Fedora-Server-dvd-x86_64-39-1.5.iso ' -var-file=os_pkrvars/fedora/fedora-39-x86_64.pkrvars.hcl ./packer_templates
ビルドが成功すると、ボックス ファイルはリポジトリのルートのbuilds
ディレクトリに保存されます。
準仮想化 KVM/qemu ハードウェア用の Windows ドライバーを含む ISO イメージをダウンロードし、builds/iso/ ディレクトリに配置する必要があります。これはコマンドラインから実行できます: mkdir -p builds/iso/; wget -nv -nc https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -O builds/iso/virtio-win.iso
次のサンプル コマンドを使用して、KVM/qemu Windows ボックスを構築できます。
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
ライセンスまたはサブスクリプションによってのみ利用できるオペレーティング システム用のテンプレートもリポジトリで利用できます。これらには、Red Hat Enterprise Linux、SUSE Linux Enterprise が含まれますが、これらに限定されません。 ISO は公開されていないため、URL 値は必要に応じてオーバーライドする必要があります。これらを最新の状態に保つために、ライセンスを取得したバージョンのオペレーティング システムにアクセスできる人々の努力に依存しています。
ほとんどのプロバイダーは、期待どおりに構築するために、ネットワークへの無制限のアクセスを期待しています。考えられるすべてのファイアウォール構成を列挙することはできませんが、ユーザーにとって役立つと思われるいくつかのスニペットを以下に示します。
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
Hyper-V Gen 2 VM はフロッピー ドライブをサポートしません。以前にフロッピー ドライブを使用してリソースを提供した場合は、特に次のようなファイルを Gen 2 ISO イメージに追加する必要があります。
autounattend.xml
: Gen 2 autounattend.xml
ファイルは EFI パーティションをサポートします。 autounattend.xml
システムに適した Windows バージョンで更新し、パーティションが状況に応じて適切であることを確認します。また、Hyper-V ゲスト サービス ドライバーを保持するドライバー ディスクを管理し、必要に応じてautounattend.xml
ファイルを調整する必要があります。バグ、機能、その他の問題を報告するには、GitHub の問題を使用してください。
私たちがインスピレーションを得て、ベース ボックス構築の複雑な世界における回避策のソースとしてよく使用したこれらの関連プロジェクトに多大な感謝を申し上げます。
これらのベースボックス テンプレートは、もともと Tim Dysinger が「Don'tRepeat Yourself」 (DRY) モジュラー ベースボックスを作成するために行った作業に基づいて、veewee 定義から変換されました。ありがとうティム!
Copyright 2012-2024, Progress Software, Inc. (<[email protected]>)
Copyright 2011-2012, Tim Dysinger (<[email protected]>)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.