summaryrefslogtreecommitdiff
path: root/app-admin/amazon-ec2-init/files/amazon-ec2.init
blob: 29ce3aabd6a8a236a6bb792297d1aebf05b2c566 (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
#!/sbin/openrc-run
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

depend() {
         before hostname
         need net.eth0
}

start() {
        einfo "Fetching metadata from EC2 servers"

        ebegin "  hostname"
        local hostname=$(wget -t 2 -T 5 -q -O - http://169.254.169.254/latest/meta-data/local-hostname)
        echo "hostname=${hostname}" >> /etc/conf.d/hostname
        eend $?

        ebegin "  SSH keys"

        mkdir -p /root/.ssh

        local keys=$(wget -t 2 -T 5 -q -O - http://169.254.169.254/latest/meta-data/public-keys/ | cut -d = -f 1 | xargs echo)
        [ -n "${keys}" ] && \
            wget -t 2 -T 5 -q -O - $(for key in $keys; do echo "http://169.254.169.254/latest/meta-data/public-keys/$key/openssh-key"; done) \
            >> /root/.ssh/authorized_keys \
            2>/dev/null

        if [ -f /root/.ssh/authorized_keys ]; then
            chown root:root /root/.ssh/authorized_keys
            chmod 0600 /root/.ssh/authorized_keys
        fi

        eend $?
}