Initial import.
This commit is contained in:
commit
6df60caedc
|
@ -0,0 +1 @@
|
||||||
|
packer/build
|
|
@ -0,0 +1,5 @@
|
||||||
|
# bladerunner
|
||||||
|
|
||||||
|
This is my setup for my
|
||||||
|
[computeblade](https://publish.obsidian.md/ai6ua/Projects/Computing/ComputeBlade)
|
||||||
|
cluster, which will theoretically be here around September 2023.
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Set up a packer image in Docker.
|
||||||
|
FROM ubuntu:22.04
|
||||||
|
MAINTAINER Kyle Isom <kyle@imap.cc>
|
||||||
|
|
||||||
|
add . packer
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/env", "bash"]
|
|
@ -0,0 +1,9 @@
|
||||||
|
# bladerunner/packer
|
||||||
|
|
||||||
|
This directory contains the tooling to build raspberry pi images using
|
||||||
|
packer.
|
||||||
|
|
||||||
|
|
||||||
|
### Resources
|
||||||
|
|
||||||
|
- [Build a Raspberry Pi image with Packer](https://linuxhit.com/build-a-raspberry-pi-image-packer-packer-builder-arm/)
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
PACKER_VERSION=1.8.6
|
||||||
|
INSTALL_DIR=/usr/local/bin
|
||||||
|
ARCH=amd64
|
||||||
|
PACKER_FILE=packer_${PACKER_VERSION}_linux_${ARCH}
|
||||||
|
UPSTREAM="https://github.com/mkaczanowski/packer-builder-arm"
|
||||||
|
UPGRADE="false"
|
||||||
|
|
||||||
|
prep () {
|
||||||
|
mkdir -p build
|
||||||
|
pushd build
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packer () {
|
||||||
|
if [ -x ${INSTALL_DIR}/packer ]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -LO https://releases.hashicorp.com/packer/${PACKER_VERSION}/${PACKER_FILE}.zip
|
||||||
|
unzip ${PACKER_FILE}
|
||||||
|
sudo mv packer ${INSTALL_DIR}/
|
||||||
|
rm ${PACKER_FILE}.zip
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packer_builder_arm () {
|
||||||
|
if [ -x "${INSTALL_DIR}/packer-builder-arm" -a -z "${UPGRADE}" ]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
git clone "${UPSTREAM}"
|
||||||
|
pushd "${UPSTREAM##*/}"
|
||||||
|
go mod download
|
||||||
|
go build
|
||||||
|
sudo mv packer-builder-arm ${INSTALL_DIR}/
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup {
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
prep
|
||||||
|
install_packer
|
||||||
|
install_packer_builder_arm
|
||||||
|
cleanup
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
INSTALL_DIR="/usr/local/bin"
|
||||||
|
GODEB=https://godeb.s3.amazonaws.com/godeb-${ARCH}.tar.gz
|
||||||
|
GOVERSION=1.20.3
|
||||||
|
|
||||||
|
preflight () {
|
||||||
|
|
||||||
|
if [ "$(uname -s)" != "Linux" ]
|
||||||
|
then
|
||||||
|
echo '[!] godeb is only supported on Linux.' > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$(uname -m)" in
|
||||||
|
amd64) ARCH="amd64" ;;
|
||||||
|
arm64) ARCH="arm64" ;;
|
||||||
|
*)
|
||||||
|
echo "[!] $(uname -m) is an unsupported architecture." > /dev/stderr
|
||||||
|
echo '[!] supported architectures: amd64, arm64' > /dev/stderr
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
install_godeb () {
|
||||||
|
if [ -x "${INSTALL_DIR}/godeb" ]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local GODEB_ARCHIVE="${GODEB##*/}"
|
||||||
|
|
||||||
|
pushd /tmp
|
||||||
|
curl -LO "${GODEB}"
|
||||||
|
tar xzf "${GODEB_ARCHIVE}"
|
||||||
|
sudo mv godeb "${INSTALL_DIR}/"
|
||||||
|
rm "${GODEB_ARCHIVE}"
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
install_go {
|
||||||
|
pushd /tmp
|
||||||
|
echo '[*] installing go - this will request sudo'
|
||||||
|
godeb install "${GOVERSION}"
|
||||||
|
# note: deliberately leaving this in /tmp for inspection
|
||||||
|
# if needed.
|
||||||
|
popd
|
||||||
|
}
|
Loading…
Reference in New Issue