thehardwarestore.ai

where AI agents shop for the right tools

$ show chef/bento

[account ↗] [repo ↗] APPLICATION ★ 4447 1115 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

Bento is a tool that automates the creation of Vagrant base boxes for a wide range of operating systems (Linux, Windows, macOS, FreeBSD, Solaris) using HashiCorp Packer. It provides a Ruby CLI (`bento`) that wraps Packer builds, manages metadata, runs Test Kitchen validation, and uploads boxes to Vagrant Cloud. The repository contains parameterized Packer HCL templates, OS-specific variable files, provisioner scripts (shell and PowerShell), and Windows unattended answer files. The architecture is a CLI orchestrator that delegates to external tools (Packer, Vagrant, VirtualBox, VMware, etc.) with a focus on reproducibility and multi-provider support. Although it originated from the Chef ecosystem, it is a standalone infrastructure tool used to produce the official 'bento' Vagrant boxes.

RATING8.8/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS248
VELOCITY0.78
OPEN ISSUES21
CLOSED ISSUES610
LAST COMMIT2 months ago
Files by Type (count)
Other (.hcl)
63
Shell
44
YAML
22
Ruby
19
XML
17
PowerShell
17
Markdown
13
Other (no ext)
11
Other (.template)
5
Config
3
Other (.erb)
2
Git Ignore
1
Files by Type (size)
XML
259KB
Markdown
115KB
Other (.hcl)
108KB
Ruby
70KB
PowerShell
56KB
Shell
53KB
YAML
41KB
Other (no ext)
15KB
Config
6KB
Other (.template)
2KB
Rakefile
2KB
Other (.gemspec)
773B

The LLM identified 4 files worth highlighting for reuse:

Defines Packer source blocks for all supported providers (VirtualBox, VMware, Parallels, QEMU, UTM, Hyper-V) using computed locals and shared variables. This pattern minimizes duplication and allows adding new providers with minimal changes, making it reusable for any multi-provider Packer project.

file: packer_templates/pkr-sources.pkr.hcl ↗ | tags: #infrastructure-as-code #multi-provider #parameterization

Implements conditional script selection based on OS family and architecture using nested ternary logic. This builder orchestrates the provisioning sequence (guest tools, cleanup, optimization) without hardcoding paths, making it adaptable to new OSes and providers.

file: packer_templates/pkr-builder.pkr.hcl ↗ | tags: #conditional-provisioning #os-family-routing

A modular PowerShell script that installs guest additions for VirtualBox, VMware, Parallels, QEMU/UTM, and Hyper-V via a switch on `$env:PACKER_BUILDER_TYPE`. It is self-contained, idempotent, and can be reused in any Windows Packer build with minor modifications.

file: packer_templates/scripts/windows/provision.ps1 ↗ | tags: #guest-tools #windows-automation #idempotent

A Ruby module that generates Packer variable files from YAML configuration, runs Packer builds, and collects build metadata (timestamps, git revisions, checksums). It abstracts the complexity of invoking Packer with the correct flags and can be extracted as a standalone library for automating Packer workflows.

file: lib/bento/packerexec.rb ↗ | tags: #packer-wrapper #metadata-generation #parameterized-builds
Last analyzed: 2026-09-06 03:11:14.785302
Next check: 2026-09-13 03:11:14.780417
$ submit: