Compare commits
2 Commits
4b6537ad14
...
734e2434f5
| Author | SHA1 | Date | |
|---|---|---|---|
|
734e2434f5
|
|||
|
3a02a37833
|
+43
-36
@@ -1,38 +1,42 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
addressable (2.8.7)
|
addressable (2.9.0)
|
||||||
public_suffix (>= 2.0.2, < 7.0)
|
public_suffix (>= 2.0.2, < 8.0)
|
||||||
base64 (0.3.0)
|
base64 (0.3.0)
|
||||||
bigdecimal (3.2.2)
|
bigdecimal (4.1.2)
|
||||||
colorator (1.1.0)
|
colorator (1.1.0)
|
||||||
concurrent-ruby (1.3.5)
|
concurrent-ruby (1.3.6)
|
||||||
csv (3.3.5)
|
csv (3.3.5)
|
||||||
em-websocket (0.5.3)
|
em-websocket (0.5.3)
|
||||||
eventmachine (>= 0.12.9)
|
eventmachine (>= 0.12.9)
|
||||||
http_parser.rb (~> 0)
|
http_parser.rb (~> 0)
|
||||||
eventmachine (1.2.7)
|
eventmachine (1.2.7)
|
||||||
faraday (2.13.1)
|
faraday (2.14.2)
|
||||||
faraday-net_http (>= 2.0, < 3.5)
|
faraday-net_http (>= 2.0, < 3.5)
|
||||||
json
|
json
|
||||||
logger
|
logger
|
||||||
faraday-net_http (3.4.1)
|
faraday-net_http (3.4.3)
|
||||||
net-http (>= 0.5.0)
|
net-http (~> 0.5)
|
||||||
ffi (1.17.2)
|
ffi (1.17.4)
|
||||||
ffi (1.17.2-arm64-darwin)
|
ffi (1.17.4-arm64-darwin)
|
||||||
ffi (1.17.2-x86_64-darwin)
|
ffi (1.17.4-x86_64-darwin)
|
||||||
|
ffi (1.17.4-x86_64-linux-gnu)
|
||||||
forwardable-extended (2.6.0)
|
forwardable-extended (2.6.0)
|
||||||
google-protobuf (4.31.1)
|
google-protobuf (4.35.0)
|
||||||
bigdecimal
|
bigdecimal
|
||||||
rake (>= 13)
|
rake (~> 13.3)
|
||||||
google-protobuf (4.31.1-arm64-darwin)
|
google-protobuf (4.35.0-arm64-darwin)
|
||||||
bigdecimal
|
bigdecimal
|
||||||
rake (>= 13)
|
rake (~> 13.3)
|
||||||
google-protobuf (4.31.1-x86_64-darwin)
|
google-protobuf (4.35.0-x86_64-darwin)
|
||||||
bigdecimal
|
bigdecimal
|
||||||
rake (>= 13)
|
rake (~> 13.3)
|
||||||
http_parser.rb (0.8.0)
|
google-protobuf (4.35.0-x86_64-linux-gnu)
|
||||||
i18n (1.14.7)
|
bigdecimal
|
||||||
|
rake (~> 13.3)
|
||||||
|
http_parser.rb (0.8.1)
|
||||||
|
i18n (1.14.8)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
jekyll (4.4.1)
|
jekyll (4.4.1)
|
||||||
addressable (~> 2.4)
|
addressable (~> 2.4)
|
||||||
@@ -66,56 +70,59 @@ GEM
|
|||||||
jekyll (>= 3.7, < 5.0)
|
jekyll (>= 3.7, < 5.0)
|
||||||
jekyll-watch (2.2.1)
|
jekyll-watch (2.2.1)
|
||||||
listen (~> 3.0)
|
listen (~> 3.0)
|
||||||
json (2.12.2)
|
json (2.19.5)
|
||||||
kramdown (2.5.1)
|
kramdown (2.5.2)
|
||||||
rexml (>= 3.3.9)
|
rexml (>= 3.4.4)
|
||||||
kramdown-parser-gfm (1.1.0)
|
kramdown-parser-gfm (1.1.0)
|
||||||
kramdown (~> 2.0)
|
kramdown (~> 2.0)
|
||||||
liquid (4.0.4)
|
liquid (4.0.4)
|
||||||
listen (3.9.0)
|
listen (3.10.0)
|
||||||
|
logger
|
||||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
rb-inotify (~> 0.9, >= 0.9.10)
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
logger (1.7.0)
|
logger (1.7.0)
|
||||||
mercenary (0.4.0)
|
mercenary (0.4.0)
|
||||||
minimal-mistakes-jekyll (4.27.1)
|
minimal-mistakes-jekyll (4.28.0)
|
||||||
jekyll (>= 3.7, < 5.0)
|
jekyll (>= 3.7, < 5.0)
|
||||||
jekyll-feed (~> 0.1)
|
jekyll-feed (~> 0.1)
|
||||||
jekyll-gist (~> 1.5)
|
jekyll-gist (~> 1.5)
|
||||||
jekyll-include-cache (~> 0.1)
|
jekyll-include-cache (~> 0.1)
|
||||||
jekyll-paginate (~> 1.1)
|
jekyll-paginate (~> 1.1)
|
||||||
jekyll-sitemap (~> 1.3)
|
jekyll-sitemap (~> 1.3)
|
||||||
net-http (0.6.0)
|
net-http (0.9.1)
|
||||||
uri
|
uri (>= 0.11.1)
|
||||||
octokit (4.25.1)
|
octokit (4.25.1)
|
||||||
faraday (>= 1, < 3)
|
faraday (>= 1, < 3)
|
||||||
sawyer (~> 0.9)
|
sawyer (~> 0.9)
|
||||||
pathutil (0.16.2)
|
pathutil (0.16.2)
|
||||||
forwardable-extended (~> 2.6)
|
forwardable-extended (~> 2.6)
|
||||||
public_suffix (6.0.2)
|
public_suffix (7.0.5)
|
||||||
rake (13.3.0)
|
rake (13.4.2)
|
||||||
rb-fsevent (0.11.2)
|
rb-fsevent (0.11.2)
|
||||||
rb-inotify (0.11.1)
|
rb-inotify (0.11.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
rexml (3.4.1)
|
rexml (3.4.4)
|
||||||
rouge (4.5.2)
|
rouge (4.7.0)
|
||||||
safe_yaml (1.0.5)
|
safe_yaml (1.0.5)
|
||||||
sass-embedded (1.89.2)
|
sass-embedded (1.100.0)
|
||||||
google-protobuf (~> 4.31)
|
google-protobuf (~> 4.31)
|
||||||
rake (>= 13)
|
rake (>= 13)
|
||||||
sass-embedded (1.89.2-aarch64-mingw-ucrt)
|
sass-embedded (1.100.0-aarch64-mingw-ucrt)
|
||||||
google-protobuf (~> 4.31)
|
google-protobuf (~> 4.31)
|
||||||
sass-embedded (1.89.2-arm64-darwin)
|
sass-embedded (1.100.0-arm64-darwin)
|
||||||
google-protobuf (~> 4.31)
|
google-protobuf (~> 4.31)
|
||||||
sass-embedded (1.89.2-x86_64-darwin)
|
sass-embedded (1.100.0-x86_64-darwin)
|
||||||
google-protobuf (~> 4.31)
|
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)
|
addressable (>= 2.3.5)
|
||||||
faraday (>= 0.17.3, < 3)
|
faraday (>= 0.17.3, < 3)
|
||||||
terminal-table (3.0.2)
|
terminal-table (3.0.2)
|
||||||
unicode-display_width (>= 1.1.1, < 3)
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
unicode-display_width (2.6.0)
|
unicode-display_width (2.6.0)
|
||||||
uri (1.0.3)
|
uri (1.1.1)
|
||||||
webrick (1.9.1)
|
webrick (1.9.2)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
aarch64-mingw-ucrt
|
aarch64-mingw-ucrt
|
||||||
|
|||||||
@@ -3,8 +3,7 @@
|
|||||||
install:
|
install:
|
||||||
bundle config set --local path 'vendor/bundle'
|
bundle config set --local path 'vendor/bundle'
|
||||||
bundle install
|
bundle install
|
||||||
bundle exec jekyll serve
|
bundle exec jekyll serve --future
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf _site vendor .bundle .jekyll-cache
|
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