ec2_init revision 1.1
11.1Sjmcneill#!/bin/sh
21.1Sjmcneill#
31.1Sjmcneill# $NetBSD: ec2_init,v 1.1 2018/11/30 20:53:02 jmcneill Exp $
41.1Sjmcneill#
51.1Sjmcneill# PROVIDE: ec2_init
61.1Sjmcneill# REQUIRE: NETWORKING
71.1Sjmcneill# BEFORE:  LOGIN
81.1Sjmcneill
91.1Sjmcneill$_rc_subr_loaded . /etc/rc.subr
101.1Sjmcneill
111.1Sjmcneillname="ec2_init"
121.1Sjmcneillrcvar=${name}
131.1Sjmcneillstart_cmd="ec2_init"
141.1Sjmcneillstop_cmd=":"
151.1Sjmcneill
161.1SjmcneillMETADATA_URL="http://169.254.169.254/latest/meta-data/"
171.1SjmcneillSSH_KEY_URL="public-keys/0/openssh-key"
181.1SjmcneillHOSTNAME_URL="hostname"
191.1Sjmcneill
201.1SjmcneillSSH_KEY_FILE="/root/.ssh/authorized_keys"
211.1Sjmcneill
221.1Sjmcneillec2_init()
231.1Sjmcneill{
241.1Sjmcneill	(
251.1Sjmcneill	umask 022
261.1Sjmcneill	# fetch the key pair from Amazon Web Services
271.1Sjmcneill	EC2_SSH_KEY=$(ftp -o - "${METADATA_URL}${SSH_KEY_URL}")
281.1Sjmcneill
291.1Sjmcneill	if [ -n "$EC2_SSH_KEY" ]; then
301.1Sjmcneill		# A key pair is associated with this instance, add it
311.1Sjmcneill		# to root 'authorized_keys' file
321.1Sjmcneill		mkdir -p $(dirname "$SSH_KEY_FILE")
331.1Sjmcneill		touch "$SSH_KEY_FILE"
341.1Sjmcneill		cd $(dirname "$SSH_KEY_FILE")
351.1Sjmcneill
361.1Sjmcneill		grep -q "$EC2_SSH_KEY" "$SSH_KEY_FILE"
371.1Sjmcneill		if [ $? -ne 0 ]; then
381.1Sjmcneill			echo "Setting EC2 SSH key pair: ${EC2_SSH_KEY##* }"
391.1Sjmcneill			echo "$EC2_SSH_KEY" >> "$SSH_KEY_FILE"
401.1Sjmcneill		fi
411.1Sjmcneill	fi
421.1Sjmcneill
431.1Sjmcneill	# set hostname
441.1Sjmcneill	HOSTNAME=$(ftp -o - "${METADATA_URL}${HOSTNAME_URL}")
451.1Sjmcneill	echo "Setting EC2 hostname: ${HOSTNAME}"
461.1Sjmcneill	echo "$HOSTNAME" > /etc/myname
471.1Sjmcneill	hostname "$HOSTNAME"
481.1Sjmcneill	)
491.1Sjmcneill}
501.1Sjmcneill
511.1Sjmcneillload_rc_config $name
521.1Sjmcneillrun_rc_command "$1"
53