xref: /netbsd-src/distrib/utils/embedded/files/ec2_init (revision 76c7fc5f6b13ed0b1508e6b313e88e59977ed78e)
1#!/bin/sh
2#
3# $NetBSD: ec2_init,v 1.1 2018/11/30 20:53:02 jmcneill Exp $
4#
5# PROVIDE: ec2_init
6# REQUIRE: NETWORKING
7# BEFORE:  LOGIN
8
9$_rc_subr_loaded . /etc/rc.subr
10
11name="ec2_init"
12rcvar=${name}
13start_cmd="ec2_init"
14stop_cmd=":"
15
16METADATA_URL="http://169.254.169.254/latest/meta-data/"
17SSH_KEY_URL="public-keys/0/openssh-key"
18HOSTNAME_URL="hostname"
19
20SSH_KEY_FILE="/root/.ssh/authorized_keys"
21
22ec2_init()
23{
24	(
25	umask 022
26	# fetch the key pair from Amazon Web Services
27	EC2_SSH_KEY=$(ftp -o - "${METADATA_URL}${SSH_KEY_URL}")
28
29	if [ -n "$EC2_SSH_KEY" ]; then
30		# A key pair is associated with this instance, add it
31		# to root 'authorized_keys' file
32		mkdir -p $(dirname "$SSH_KEY_FILE")
33		touch "$SSH_KEY_FILE"
34		cd $(dirname "$SSH_KEY_FILE")
35
36		grep -q "$EC2_SSH_KEY" "$SSH_KEY_FILE"
37		if [ $? -ne 0 ]; then
38			echo "Setting EC2 SSH key pair: ${EC2_SSH_KEY##* }"
39			echo "$EC2_SSH_KEY" >> "$SSH_KEY_FILE"
40		fi
41	fi
42
43	# set hostname
44	HOSTNAME=$(ftp -o - "${METADATA_URL}${HOSTNAME_URL}")
45	echo "Setting EC2 hostname: ${HOSTNAME}"
46	echo "$HOSTNAME" > /etc/myname
47	hostname "$HOSTNAME"
48	)
49}
50
51load_rc_config $name
52run_rc_command "$1"
53