summaryrefslogtreecommitdiff
path: root/create-vm
blob: f79b0b1e9f429dad742ce6ccf2e319f82b3edd9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 "$@"