summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-10-04 15:05:54 +0300
committerLars Wirzenius <liw@liw.fi>2020-10-04 15:05:54 +0300
commit7f531f989ca154a2dc311f783e9c7d04c112ff38 (patch)
tree54b9d422ba75b9c4ded79ba8885a1c1416fd5221
parent876d6370e1e0b63eca488bd85639b8b0db659cd0 (diff)
downloadick-contractor-7f531f989ca154a2dc311f783e9c7d04c112ff38.tar.gz
create-vm
-rwxr-xr-xcreate-vm36
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 "$@"