summaryrefslogtreecommitdiff
path: root/ec2-init
diff options
context:
space:
mode:
Diffstat (limited to 'ec2-init')
-rwxr-xr-xec2-init190
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