Store VM metadata as JSON
This commit is contained in:
parent
bbd57d8dd2
commit
7af04b7535
11 changed files with 188 additions and 178 deletions
43
customize.sh
43
customize.sh
|
|
@ -89,6 +89,10 @@ if ! command -v resize2fs >/dev/null 2>&1; then
|
|||
log "resize2fs required"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v jq >/dev/null 2>&1; then
|
||||
log "jq required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "copying base rootfs to $OUT_ROOTFS"
|
||||
cp --reflink=auto "$BASE_ROOTFS" "$OUT_ROOTFS"
|
||||
|
|
@ -165,16 +169,22 @@ for _ in $(seq 1 200); do
|
|||
done
|
||||
[[ -S "$API_SOCK" ]] || { log "firecracker api socket not ready"; exit 1; }
|
||||
|
||||
cat > "$VM_DIR/info" <<EOF
|
||||
id=$VM_ID
|
||||
name=$VM_NAME
|
||||
pid=$FC_PID
|
||||
created_at=$(date -Iseconds)
|
||||
guest_ip=$GUEST_IP
|
||||
tap=$TAP_DEV
|
||||
api_sock=$API_SOCK
|
||||
log=$LOG_FILE
|
||||
EOF
|
||||
VM_CONFIG_JSON="$(sudo -E curl --unix-socket "$API_SOCK" -sS http://localhost/vm/config)"
|
||||
CREATED_AT="$(date -Iseconds)"
|
||||
jq -n \
|
||||
--arg id "$VM_ID" \
|
||||
--arg name "$VM_NAME" \
|
||||
--arg pid "$FC_PID" \
|
||||
--arg created_at "$CREATED_AT" \
|
||||
--arg guest_ip "$GUEST_IP" \
|
||||
--arg tap "$TAP_DEV" \
|
||||
--arg api_sock "$API_SOCK" \
|
||||
--arg log "$LOG_FILE" \
|
||||
--arg rootfs "$OUT_ROOTFS" \
|
||||
--arg kernel "$KERNEL" \
|
||||
--argjson config "$VM_CONFIG_JSON" \
|
||||
'{meta:{id:$id,name:$name,pid:$pid,created_at:$created_at,guest_ip:$guest_ip,tap:$tap,api_sock:$api_sock,log:$log,rootfs:$rootfs,kernel:$kernel},config:$config}' \
|
||||
> "$VM_DIR/vm.json"
|
||||
|
||||
log "configuring machine"
|
||||
sudo -E curl --unix-socket "$API_SOCK" -X PUT http://localhost/machine-config \
|
||||
|
|
@ -232,6 +242,19 @@ ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
|
|||
printf 'nameserver %s\n' \"$DNS_SERVER\" > /etc/resolv.conf
|
||||
echo \"$VM_NAME\" > /etc/hostname
|
||||
printf '127.0.0.1 localhost\n127.0.1.1 %s\n' \"$VM_NAME\" > /etc/hosts
|
||||
mkdir -p /home /var
|
||||
if ! grep -q '^/dev/vdb ' /etc/fstab; then
|
||||
echo '/dev/vdb /home ext4 defaults 0 2' >> /etc/fstab
|
||||
fi
|
||||
if ! grep -q '^/dev/vdc ' /etc/fstab; then
|
||||
echo '/dev/vdc /var ext4 defaults 0 2' >> /etc/fstab
|
||||
fi
|
||||
if ! grep -q '^tmpfs /run ' /etc/fstab; then
|
||||
echo 'tmpfs /run tmpfs defaults,nodev,nosuid,mode=0755 0 0' >> /etc/fstab
|
||||
fi
|
||||
if ! grep -q '^tmpfs /tmp ' /etc/fstab; then
|
||||
echo 'tmpfs /tmp tmpfs defaults,nodev,nosuid,mode=1777 0 0' >> /etc/fstab
|
||||
fi
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y install git less tree ca-certificates curl
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue