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