Compare commits
2 Commits
4b6537ad14
...
734e2434f5
| Author | SHA1 | Date | |
|---|---|---|---|
|
734e2434f5
|
|||
|
3a02a37833
|
+43
-36
@@ -1,38 +1,42 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
addressable (2.9.0)
|
||||
public_suffix (>= 2.0.2, < 8.0)
|
||||
base64 (0.3.0)
|
||||
bigdecimal (3.2.2)
|
||||
bigdecimal (4.1.2)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.3.5)
|
||||
concurrent-ruby (1.3.6)
|
||||
csv (3.3.5)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
faraday (2.13.1)
|
||||
faraday (2.14.2)
|
||||
faraday-net_http (>= 2.0, < 3.5)
|
||||
json
|
||||
logger
|
||||
faraday-net_http (3.4.1)
|
||||
net-http (>= 0.5.0)
|
||||
ffi (1.17.2)
|
||||
ffi (1.17.2-arm64-darwin)
|
||||
ffi (1.17.2-x86_64-darwin)
|
||||
faraday-net_http (3.4.3)
|
||||
net-http (~> 0.5)
|
||||
ffi (1.17.4)
|
||||
ffi (1.17.4-arm64-darwin)
|
||||
ffi (1.17.4-x86_64-darwin)
|
||||
ffi (1.17.4-x86_64-linux-gnu)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (4.31.1)
|
||||
google-protobuf (4.35.0)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.31.1-arm64-darwin)
|
||||
rake (~> 13.3)
|
||||
google-protobuf (4.35.0-arm64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.31.1-x86_64-darwin)
|
||||
rake (~> 13.3)
|
||||
google-protobuf (4.35.0-x86_64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.7)
|
||||
rake (~> 13.3)
|
||||
google-protobuf (4.35.0-x86_64-linux-gnu)
|
||||
bigdecimal
|
||||
rake (~> 13.3)
|
||||
http_parser.rb (0.8.1)
|
||||
i18n (1.14.8)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.4.1)
|
||||
addressable (~> 2.4)
|
||||
@@ -66,56 +70,59 @@ GEM
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.12.2)
|
||||
kramdown (2.5.1)
|
||||
rexml (>= 3.3.9)
|
||||
json (2.19.5)
|
||||
kramdown (2.5.2)
|
||||
rexml (>= 3.4.4)
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.9.0)
|
||||
listen (3.10.0)
|
||||
logger
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.7.0)
|
||||
mercenary (0.4.0)
|
||||
minimal-mistakes-jekyll (4.27.1)
|
||||
minimal-mistakes-jekyll (4.28.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-feed (~> 0.1)
|
||||
jekyll-gist (~> 1.5)
|
||||
jekyll-include-cache (~> 0.1)
|
||||
jekyll-paginate (~> 1.1)
|
||||
jekyll-sitemap (~> 1.3)
|
||||
net-http (0.6.0)
|
||||
uri
|
||||
net-http (0.9.1)
|
||||
uri (>= 0.11.1)
|
||||
octokit (4.25.1)
|
||||
faraday (>= 1, < 3)
|
||||
sawyer (~> 0.9)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (6.0.2)
|
||||
rake (13.3.0)
|
||||
public_suffix (7.0.5)
|
||||
rake (13.4.2)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.4.1)
|
||||
rouge (4.5.2)
|
||||
rexml (3.4.4)
|
||||
rouge (4.7.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.89.2)
|
||||
sass-embedded (1.100.0)
|
||||
google-protobuf (~> 4.31)
|
||||
rake (>= 13)
|
||||
sass-embedded (1.89.2-aarch64-mingw-ucrt)
|
||||
sass-embedded (1.100.0-aarch64-mingw-ucrt)
|
||||
google-protobuf (~> 4.31)
|
||||
sass-embedded (1.89.2-arm64-darwin)
|
||||
sass-embedded (1.100.0-arm64-darwin)
|
||||
google-protobuf (~> 4.31)
|
||||
sass-embedded (1.89.2-x86_64-darwin)
|
||||
sass-embedded (1.100.0-x86_64-darwin)
|
||||
google-protobuf (~> 4.31)
|
||||
sawyer (0.9.2)
|
||||
sass-embedded (1.100.0-x86_64-linux-gnu)
|
||||
google-protobuf (~> 4.31)
|
||||
sawyer (0.9.3)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (>= 0.17.3, < 3)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.6.0)
|
||||
uri (1.0.3)
|
||||
webrick (1.9.1)
|
||||
uri (1.1.1)
|
||||
webrick (1.9.2)
|
||||
|
||||
PLATFORMS
|
||||
aarch64-mingw-ucrt
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
install:
|
||||
bundle config set --local path 'vendor/bundle'
|
||||
bundle install
|
||||
bundle exec jekyll serve
|
||||
bundle exec jekyll serve --future
|
||||
|
||||
clean:
|
||||
rm -rf _site vendor .bundle .jekyll-cache
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
layout: single
|
||||
title: "Hello, world!"
|
||||
date: 1970-01-01
|
||||
author_profile: true
|
||||
---
|
||||
|
||||
Hello, world!
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
layout: single
|
||||
title: "Why I'm building custom Vagrant boxes"
|
||||
date: 2026-05-25
|
||||
author_profile: true
|
||||
---
|
||||
|
||||
_TL;DR: I've built custom Vagrant boxes for Debian 13 and Rocky Linux 10 using
|
||||
Packer.
|
||||
[Grab them from the registry](https://portal.cloud.hashicorp.com/vagrant/discover/krislamo.org)
|
||||
or [take my configs to build them](https://git.krislamo.org/kris/pkrbuilds)
|
||||
yourself._
|
||||
|
||||
When
|
||||
[HashiCorp relicensed its free software](https://www.theregister.com/software/2023/08/11/hashicorp-changes-its-source-licence-to-bsl/1551785)
|
||||
to the non-free BSL in 2023, the two projects that received significant
|
||||
community-backed forks under the existing MPL terms were Terraform (OpenTofu)
|
||||
and Vault (OpenBao), unsurprisingly given their weight in maintaining production
|
||||
environments across the industry. That left less consequential HashiCorp
|
||||
software, like Vagrant, without the momentum to keep it free, which I've used
|
||||
for many years to design, test, and understand systems infrastructure.
|
||||
|
||||
Despite this, nearly three years later, you can still install the
|
||||
[free version of Vagrant on Debian](https://packages.debian.org/trixie/vagrant)
|
||||
because a maintainer continues to patch 2.3.7 to make it work (HashiCorp's
|
||||
non-free version is on 2.4.9 at the time of writing). Vagrant is just a
|
||||
convenience wrapper that automates the lifecycle of transient test virtual
|
||||
machines, so the urgency to find another solution has been low, especially as
|
||||
long as Debian continues to package it.
|
||||
|
||||
Following the Debian 13 release, Debian Vagrant box updates stalled for a while
|
||||
after the
|
||||
[maintainer decided to stop publishing images](https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg2049694.html)
|
||||
due to Vagrant's non-free upstream status and breaking changes to HashiCorp's
|
||||
image hosting platform. That led me to start building
|
||||
[custom Debian 13 boxes](https://git.krislamo.org/kris/pkrbuilds/src/branch/main/debian-13)
|
||||
with Packer.[^packer] One clear benefit of a custom box is baking in the NFS
|
||||
client for host file sharing, so it's present from first boot, rather than
|
||||
installed during the first `vagrant up`, as you'd have to on the current
|
||||
official Debian image.
|
||||
|
||||
Lately, I've also been looking to run Rocky Linux boxes and ran into yet another
|
||||
issue with official distro Vagrant boxes: the Rocky Linux registry links have
|
||||
been [broken for months](https://git.resf.org/infrastructure/meta/issues/138),
|
||||
making all official Rocky Linux boxes entirely unavailable. So now I'm building
|
||||
and publishing both Debian 13 and
|
||||
[Rocky Linux 10](https://git.krislamo.org/kris/pkrbuilds/src/branch/main/rocky-10)
|
||||
Vagrant boxes for the libvirt provider.
|
||||
|
||||
Thankfully, Debian appears to have resumed updating its boxes more recently,
|
||||
which is great, and likely the path most people should take for Debian. Still, a
|
||||
deeper understanding of building custom boxes, greater control over updates, and
|
||||
the additional flexibility of baking the NFS client have led me to continue
|
||||
rolling my own. I publish them mostly for my own convenience, but since they're
|
||||
public, feel free to use them or build them yourself if they're useful.
|
||||
|
||||
[^packer]:
|
||||
There's some irony in concern for a free Vagrant and then building images
|
||||
with Packer, as it's the same BSL relicense. But it's the obvious tool, in
|
||||
the same ecosystem, and made for exactly this. And like Vagrant, it's low
|
||||
stakes enough.
|
||||
Reference in New Issue
Block a user