diff options
-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 "$@" |