vms/recipes/alpine/provisionning/matchbox.sh

62 lines
1.5 KiB
Bash

#!/bin/sh
VERSION=0.9.1
ARCH=amd64
BIN="matchbox"
FILENAME="matchbox-v${VERSION}-linux-${ARCH}.tar.gz"
URL="https://github.com/poseidon/matchbox/releases/download/v${VERSION}/${FILENAME}"
MATCHBOX_DIR="/var/lib/matchbox"
ASSETS_DIR="${MATCHBOX_DIR}/assets/"
MATCHBOX_USER="matchbox"
FL_VERSIONS="current 3374.2.0"
apk add wget
echo "Downloading matchbox"
cd /tmp
wget -q --show-progress "${URL}"
tar -xzvf "${FILENAME}"
cd ./matchbox-v${VERSION}-linux-${ARCH}
echo "Installing matchbox"
cp ${BIN} /usr/local/bin
echo "Installing get-flatcar"
cp ./scripts/get-flatcar /usr/local/bin
chmod +x /usr/local/bin/get-flatcar
useradd -U "${MATCHBOX_USER}"
mkdir -p "${ASSETS_DIR}"
chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${MATCHBOX_DIR}"
chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${ASSETS_DIR}"
tout=30
item=1
echo "Provisionning matchbox with flatcar images"
echo " * Current stable image (try 1)"
for version in ${FL_VERSIONS}; do
while ! bash -x /usr/local/bin/get-flatcar stable ${version} ${ASSETS_DIR}; do
sleep 1
echo " * ${version} stable image (try ${item})"
if [ "${tout}" -eq "${item}" ]; then
break
exit 1
fi
item=$((item+1))
done
done
echo " * 3374.2.0 stable image (try 1)"
get-flatcar stable 3374.2.0 "${ASSETS_DIR}"
if [ "${?}" -ne 0 ]; then
sleep 3
echo " * 3374.2.0 stable image (try 2)"
get-flatcar stable 3374.2.0 "${ASSETS_DIR}"
fi
chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${ASSETS_DIR}"
ls -lhaR ${ASSETS_DIR}
cp -rp ./scripts/tls /root
exit "${?}"