ansible skeleton, tweaking packer Docker build.
This commit is contained in:
parent
1fda2a7dd2
commit
3534b1274f
|
@ -0,0 +1,6 @@
|
||||||
|
- hosts: cluster
|
||||||
|
roles:
|
||||||
|
- base
|
||||||
|
- hosts: blade-coral
|
||||||
|
roles:
|
||||||
|
- coral
|
|
@ -0,0 +1,34 @@
|
||||||
|
[blades]
|
||||||
|
cluster-dev-01
|
||||||
|
cluster-dev-02
|
||||||
|
cluster-dev-03
|
||||||
|
cluster-dev-04
|
||||||
|
cluster-dev-05
|
||||||
|
cluster-tpm-01
|
||||||
|
cluster-tpm-02
|
||||||
|
cluster-tpm-03
|
||||||
|
cluster-tpm-04
|
||||||
|
cluster-tpm-05
|
||||||
|
|
||||||
|
[blade-dev]
|
||||||
|
cluster-dev-01
|
||||||
|
cluster-dev-02
|
||||||
|
cluster-dev-03
|
||||||
|
cluster-dev-04
|
||||||
|
cluster-dev-05
|
||||||
|
|
||||||
|
[blade-tpm]
|
||||||
|
cluster-tpm-01
|
||||||
|
cluster-tpm-02
|
||||||
|
cluster-tpm-03
|
||||||
|
cluster-tpm-04
|
||||||
|
cluster-tpm-05
|
||||||
|
|
||||||
|
# which boards have the Coral TPUs enabled?
|
||||||
|
[blade-coral]
|
||||||
|
cluster-dev-04
|
||||||
|
cluster-tpm-04
|
||||||
|
cluster-tpm-05
|
||||||
|
|
||||||
|
[cluster-main]
|
||||||
|
cluster-00
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Role: Base
|
||||||
|
|
||||||
|
The baseline for each board is the bare-minimum tooling that a blade needs to
|
||||||
|
start up.
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Role: Coral
|
||||||
|
|
||||||
|
The `coral` blades have a pair of Coral TPUs on them, and need to be setup
|
||||||
|
appropriately.
|
|
@ -2,12 +2,14 @@
|
||||||
FROM ubuntu:22.04
|
FROM ubuntu:22.04
|
||||||
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y install git curl sudo
|
RUN apt-get update && apt-get -y install git curl sudo xz-utils
|
||||||
RUN git clone https://git.wntrmute.dev/kyle/bladerunner
|
RUN git clone https://git.wntrmute.dev/kyle/bladerunner
|
||||||
RUN bladerunner/tools/install-go.sh
|
RUN bladerunner/tools/install-go.sh
|
||||||
|
|
||||||
ADD . packer
|
ADD . packer
|
||||||
WORKDIR packer
|
WORKDIR packer
|
||||||
|
VOLUME build
|
||||||
RUN ./install-packer.sh
|
RUN ./install-packer.sh
|
||||||
|
WORKDIR build/packer-builder-arm
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/env", "bash"]
|
ENTRYPOINT ["/usr/bin/env", "bash"]
|
||||||
|
|
|
@ -8,11 +8,12 @@ ARCH=amd64
|
||||||
PACKER_FILE=packer_${PACKER_VERSION}_linux_${ARCH}
|
PACKER_FILE=packer_${PACKER_VERSION}_linux_${ARCH}
|
||||||
UPSTREAM="https://github.com/mkaczanowski/packer-builder-arm"
|
UPSTREAM="https://github.com/mkaczanowski/packer-builder-arm"
|
||||||
UPGRADE="false"
|
UPGRADE="false"
|
||||||
|
BUILD_DIR="$(pwd)/build"
|
||||||
|
|
||||||
prep () {
|
prep () {
|
||||||
sudo apt-get update && sudo apt-get -y install git unzip qemu-user-static e2fsprogs dosfstools 'bsdtar|libarchive-tools'
|
sudo apt-get update && sudo apt-get -y install git unzip qemu-user-static e2fsprogs dosfstools 'bsdtar|libarchive-tools'
|
||||||
mkdir -p build
|
mkdir -p ${BUILD_DIR}
|
||||||
pushd build
|
pushd ${BUILD_DIR}
|
||||||
}
|
}
|
||||||
|
|
||||||
install_packer () {
|
install_packer () {
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
IMAGE_TYPE="${1:-ubuntu}"
|
||||||
|
PACKER_IMAGE_NAME="bladerunner/packer:latest"
|
||||||
|
PACKER_BUILD_FILE=
|
||||||
|
|
||||||
|
errmsg () {
|
||||||
|
echo "$@" > /dev/stderr
|
||||||
|
}
|
||||||
|
|
||||||
|
preflight () {
|
||||||
|
case "${IMAGE_TYPE}" in
|
||||||
|
ubuntu) PACKER_BUILD_FILE="boards/raspberry-pi-4/ubuntu_server_20.04_arm64.json" ;;
|
||||||
|
raspbian) PACKER_BUILD_FILE="boards/raspberry-pi/raspios-lite-arm.json" ;;
|
||||||
|
custom)
|
||||||
|
PACKER_BUILD_FILE="${2:-}"
|
||||||
|
if [ -z "${PACKER_BUILD_FILE}" ]
|
||||||
|
then
|
||||||
|
errmsg "[!] custom board requires a board file path"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
errmsg "[!] invalid image type ${IMAGE_TYPE}."
|
||||||
|
errmsg "[!] valid image types are"
|
||||||
|
errmsg " - raspbian"
|
||||||
|
errmsg " - ubuntu"
|
||||||
|
errmsg " - custom path/to/board/file"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$(docker image ls -q ${PACKER_IMAGE_NAME})" ]
|
||||||
|
then
|
||||||
|
docker image build -t "${PACKER_IMAGE_NAME}" .
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
run_image () {
|
||||||
|
# privileged is required for loopback devices
|
||||||
|
docker run --privileged=true -i -t -v build:/packer/build -v /dev:/dev ${PACKER_IMAGE_NAME} -c "packer build ${PACKER_BUILD_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
preflight
|
||||||
|
run_image
|
Loading…
Reference in New Issue