#!/bin/sh ### BEGIN INIT INFO # Provides: ec2-init # Required-Start: $network $local_fs $ssh # Required-Stop: # Should-Start: $named # Should-Stop: # Default-Start: S # Default-Stop: 1 # Short-Description: Initialises system for use on Amazon EC2 # Description: Fetches login credentials and handles various quirks ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=ec2-init . /lib/lsb/init-functions if [ ! -d /var/ec2 ]; then mkdir /var/ec2 fi first_boot() { # check to see if we are booting for the first time if [ ! -f /var/ec2/.first-boot ]; then log_daemon_msg "Running EC2 first boot" rm -f /etc/ssh/ssh_host_*_key* ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N '' | logger -s -t "ec2" ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N '' | logger -s -t "ec2" # This allows user to get host keys securely through console log echo | logger -s -t "ec2" echo | logger -s -t "ec2" echo "#############################################################" | logger -s -t "ec2" echo "-----BEGIN SSH HOST KEY FINGERPRINTS-----" | logger -s -t "ec2" ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub | logger -s -t "ec2" ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub | logger -s -t "ec2" echo "-----END SSH HOST KEY FINGERPRINTS-----" | logger -s -t "ec2" echo "#############################################################" | logger -s -t "ec2" /usr/sbin/update-motd touch /var/ec2/.first-boot else log_daemon_msg "Running update-motd" /usr/sbin/update-motd fi } case "$1" in start) first_boot log_daemon_msg "Setting EC2 defaults" if ec2-set-defaults 2> /dev/null then log_end_msg 0 else log_end_msg 1 fi log_daemon_msg "Fetching EC2 SSH keys" if ec2-fetch-credentials 2> /dev/null then log_end_msg 0 else log_end_msg 1 fi log_daemon_msg "Setting hostname to EC2 localhostname" if ec2-set-hostname 2> /dev/null then log_end_msg 0 else log_end_msg 1 fi log_daemon_msg "Creating /etc/apt/sources.list" if ec2-set-apt-sources 2> /dev/null then log_end_msg 0 else log_end_msg 1 fi log_daemon_msg "Running EC2 user data" if ec2-run-user-data 2>&1 | logger -t "user-data" then log_end_msg 0 else log_end_msg 1 fi ;; stop) exit 0 ;; restart|force-reload) exec $0 start ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0