#!/bin/sh DYNAMIPS_BUILD=yes XENOMIPS_FS_BUILD=yes CONFIG_FS_BUILD=no IOS_FS_BUILD=yes #Xenomips FS XENOMIPS_FS_SIZE=2048k # size in 1k blocks XENOMIPS_FS_NAME=xenomips1.img # Config FS CONFIG_FS_SIZE=100k CONFIG_FS_NAME=xenomips-config1.img # IOS FS IOS_FS_SIZE=2048k IOS_FS_NAME=xenomips-ios1.img XENOMIPS_DIR="files/" DEBIAN_MIRROR=http://debian.org.ua/debian DISTRO=sid PACKAGES="openssh-server libc6-xen libelf1 libpcap0.8 screen nfs-common quagga" DYNAMIPS_SOURCES=http://www.ipflow.utc.fr/dynamips/dynamips-0.2.7.tar.gz DYNAMIPS_BUILD_DIR=dynamips/ KERNEL_VERSION=`uname -r` SSH_OPEN_KEY=files/id_dsa.pub IOS_DIR="ios/" WORK_DIR=${XENOMIPS_FS_NAME%%.img} build_and_install_dynamips() { OLD_PWD="`pwd`" DESTDIR=`pwd`/${WORK_DIR} if echo $DYNAMIPS_BUILD | grep -qi ^y then rm -rf ${DYNAMIPS_BUILD_DIR}/ mkdir -p ${DYNAMIPS_BUILD_DIR}/ cd ${DYNAMIPS_BUILD_DIR}/ wget $DYNAMIPS_SOURCES tar xfz dynamips*tar* cd dynamips*/ perl -p -i -e s@^PCAP_LIB=.*@PCAP_LIB=-lpcap@ Makefile make else cd ${DYNAMIPS_BUILD_DIR}/dynamips*/ fi make install DESTDIR=${DESTDIR} cd ${OLD_PWD} } dd if=/dev/zero of=${XENOMIPS_FS_NAME} count=${XENOMIPS_FS_SIZE} bs=1024 mkfs.ext3 -F ${XENOMIPS_FS_NAME} mkdir -p ${WORK_DIR} mount -o loop ${XENOMIPS_FS_NAME} ${WORK_DIR} debootstrap ${DISTRO} ${WORK_DIR} ${DEBIAN_MIRROR} cat <<SCRIPT | chroot ${WORK_DIR} sh -s unset LANG apt-get -y --force-yes install ${PACKAGES} /etc/init.d/ssh stop cat <<FSTAB > /etc/fstab /dev/hda1 / ext3 ro 0 0 /dev/hda2 /xenomips/ios ext3 ro 0 0 /dev/hda3 /xenomips/config ext3 rw 0 0 FSTAB mkdir -p /data/Cisco_IOS /xenomips cat <<'INTERFACES' > /etc/network/interfaces auto lo eth0 iface lo inet loopback up for i in \`ifconfig -a | grep 'eth.*Link encap' | awk '{print \$1}'\`; do ifconfig \$i up ; done || true iface eth0 inet dhcp INTERFACES echo /usr/local/bin/xenomips.sh > /etc/rc.local cd /etc/rcS.d; ln -s ../init.d/xenomips-init S35xenomips-init rm /etc/rc2.d/S*quagga perl -i -p -e s@C_PATH=/etc/quagga@C_PATH=/xenomips/etc/quagga@ /etc/init.d/quagga mkdir -p /xenomips/{ios,config,dynamips,etc/quagga} /var/lib/xenomips /root/.ssh screen -ls | grep -q Attached && screen -x || screen -ls | grep -q Detached && screen -r SCRIPT cp -R /lib/modules/${KERNEL_VERSION} ${WORK_DIR}/lib/modules cp ${XENOMIPS_DIR}/xenomips-init ${WORK_DIR}/etc/init.d/ cp ${XENOMIPS_DIR}/xenomips.sh ${WORK_DIR}/usr/local/bin sudo chmod +x ${WORK_DIR}/usr/local/bin/xenomips.sh ${WORK_DIR}/etc/init.d/xenomips-init cat ${SSH_OPEN_KEY} > ${WORK_DIR}/root/.ssh/authorized_keys chmod 600 ${WORK_DIR}/root/.ssh/authorized_keys build_and_install_dynamips umount ${WORK_DIR} if echo $CONFIG_FS_BUILD | grep -qi ^y then dd if=/dev/zero of=${CONFIG_FS_NAME} bs=1k count=${CONFIG_FS_SIZE} mkfs.ext3 -F ${CONFIG_FS_NAME} fi if echo $IOS_FS_BUILD | grep -qi ^y then dd if=/dev/zero of=${IOS_FS_NAME} bs=1k count=${CONFIG_FS_SIZE} mkfs.ext3 -F ${IOS_FS_NAME} mount -o loop ${IOS_FS_NAME} ${WORK_DIR} cp ${IOS_DIR}/* ${WORK_DIR} umount ${WORK_DIR} fi