diff options
Diffstat (limited to 'ec2-init')
-rwxr-xr-x | ec2-init | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/ec2-init b/ec2-init deleted file mode 100755 index bee4655b..00000000 --- a/ec2-init +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: ec2-init -# Required-Start: $network $local_fs -# 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 - -run_once() { - per_id=$1 - action_id=$2 - - semaphore="/var/lib/ec2/$action_id.$per_id" - - if ! [ -e "$semaphore" ] - then - touch "$semaphore" - return 0 - fi - return 1 -} - -run_once_per_ami() { - action_id=$1 - ami=`ec2-get-info --ami-id | cut -f2 -d\ ` - run_once $ami $action_id -} - -run_once_ever() { - action_id=$1 - run_once ever $action_id -} - -regenerate_ssh_host_keys() { - rm -f /etc/ssh/ssh_host_*_key* - - ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N '' - ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N '' - - # This allows user to get host keys securely through console log - echo - echo - echo "#############################################################" - echo "-----BEGIN SSH HOST KEY FINGERPRINTS-----" - ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub - ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub - echo "-----END SSH HOST KEY FINGERPRINTS-----" - echo "#############################################################" -} - -# fix LP bug 458850 -# the ephemeral mounts provided in eucalyptus instances differ from -# those found in ec2 in 2 ways: -# 1. independent of arch type, the filesystem is on /dev/sda2 -# 2. the filesystem is ext2, not ext3 -fix_euca_fstab() { - - local edev="/dev/sda2" eedev='\/dev\/sda2' - - [ -e "${edev}" ] || return 0 - - local sops=""; # sed operations - local mntinfo="" file_out="" sops="" umdev=${edev} - - # if /dev/sdb is set to mount to /mnt, then we - # want to rewrite that to be /dev/sda2 - mntinfo=$(awk '$2 == "/mnt" { printf("dev=%s fs=%s\n",$1,$3); }' /etc/fstab) - case "${mntinfo}" in - dev=/dev/sdb\ *) - umdev=/dev/sdb; - sops="${sops:+${sops};}s,^/dev/sdb,${edev},";; - esac - - # if fstab says ext3, but fs on edev is ext2, switch fstab - case "${mntinfo}" in - *\ fs=ext3) - file_out=$(file --special-files "${edev}") - case "${file_out}" in - *ext2*) sops="${sops:+${sops};}/^${eedev}/s/ext3/ext2/;";; - esac - ;; - esac - - # if there were no sed operations to preform, then nothing to do - [ -n "${sops}" ] || return 0 - - log_daemon_msg "Fixing fstab for eucalyptus" - sed -i "${sops}" /etc/fstab - # subsequent boots, /etc/fstab will be updated, and the mount - # here isn't needed, but if modifications were made, it is - umount "${edev}" >/dev/null 2>&1 - [ "${edev}" = "${umdev}" ] || umount "${umdev}" >/dev/null 2>&1 - mount "${edev}" - log_end_msg $? -} - -case "$1" in - start) - if ! ec2-is-compat-env --quiet; then - log_daemon_msg "ec2-init disabled" - log_end_msg 0 - exit 0 - fi - if [ ! -d /var/run/ec2 ]; then - mkdir /var/run/ec2 - fi - - log_daemon_msg "Waiting for EC2 meta-data service" - if ec2-wait-for-meta-data-service - then - log_end_msg 0 - else - log_end_msg 1 - exit 1 - fi - - # fix euca_fstab for ephemeral mounts one time ever - # on rebundle, it should collect the fixed /etc/fstab - if run_once_ever euca-fix-fstab-for-ephemeral; then - fix_euca_fstab - fi - - if run_once_per_ami ssh_host_key_regeneration - then - # we can't be certain that rsyslog is up (or configured to send - # messages to console), but we want to make sure this goes to - # console. So write to /dev/console directly through tee. - # Change priority of message, so if user.notice (logger's default) - # also goes to /dev/console , we could avoid dup messages - regenerate_ssh_host_keys 2>&1 | - logger -p user.info -s -t "ec2" 2>&1 | - tee /dev/console - fi - - if run_once_ever ec2-defaults - then - log_daemon_msg "Setting EC2 defaults" - if ec2-set-defaults 2> /dev/null - then - log_end_msg 0 - else - log_end_msg 1 - fi - fi - - if run_once_per_ami ssh_authorized_keys - then - 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 - fi - - log_daemon_msg "Setting hostname to EC2 localhostname" - if ec2-set-hostname 2> /dev/null - then - log_end_msg 0 - invoke-rc.d rsyslog reload - 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|restart|force-reload|status}" >&2 - exit 1 - ;; -esac - -exit 0 |