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