diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-10-04 15:05:54 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-10-04 15:05:54 +0300 |
commit | 7f531f989ca154a2dc311f783e9c7d04c112ff38 (patch) | |
tree | 54b9d422ba75b9c4ded79ba8885a1c1416fd5221 | |
parent | 876d6370e1e0b63eca488bd85639b8b0db659cd0 (diff) | |
download | ick-contractor-7f531f989ca154a2dc311f783e9c7d04c112ff38.tar.gz |
create-vm
-rwxr-xr-x | create-vm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/create-vm b/create-vm new file mode 100755 index 0000000..f79b0b1 --- /dev/null +++ b/create-vm @@ -0,0 +1,36 @@ +#!/bin/bash + +set -eu -o pipefail + +cloud_init_iso() +{ + local iso="$1" + local hostname="$2" + local pubkey="$3" + local dir="$(mktemp -d)" + + cat <<EOF > "$dir/meta-data" +# Amazon EC2 style metadata +local-hostname: $hostname +EOF + + cat <<EOF > "$dir/user-data" +#cloud-config +ssh_authorized_keys: +- $pubkey +EOF + + genisoimage -quiet -volid cidata -joliet -rock -output "$iso" "$dir" + rm -rf "$dir" +} + + +main() +{ + local vm="$1" + local pubkey="$(cat "$2")" + cloud_init_iso "$vm.iso" "$vm" "$pubkey" +} + + +main "$@" |