A small packer
template
and terraform
config to:
- build a custom FreeBSD image on Triton
- Provision the custom FreeBSD image on Triton (or use one of the stock images)
- Make sure you have a Triton profile setup:
triton profile get
&&triton profile set-current
make build
- Takes ~8min to complete the image create and patchingcp .terraform.vars{.example,}
- Copy the UUID out of
make build
and add it to.terraform.vars
- Edit remaining values in
.terraform.vars
accordingly make plan && make apply
See the comments in
freebsd.json5
,
provider.tf
,
servers.tf
,
and
GNUmakefile
for additional details.
- If the template fails for some reason in order to be able to log into the
instance and debug the problem, abort:
make build EXTRA_ARGS=-on-error=abort
For versions of Packer older than 1.0.0 (unrelased as of 2017-05-21)
where hashicorp/packer#4909 had
not been merged yet, the following patch is required. Apply with patch -p1 < pre-4909.patch
:
diff --git b/freebsd.json5 a/freebsd.json5
index 2f6eed9..396eb4b 100644
--- b/freebsd.json5
+++ a/freebsd.json5
@@ -50,6 +50,9 @@
provisioners: [
{
type: "shell",
+ // Workaround until https://github.com/hashicorp/packer/pull/4909 is
+ // merged and released.
+ execute_command: "/bin/chmod +x {{ .Path }}; /usr/bin/env {{ .Vars }} {{ .Path }}",
inline: [
"/usr/bin/uname -a",