Masato Taruishi
taru****@sourc*****
2004年 7月 22日 (木) 21:37:01 JST
=================================================================== RCS file: demo/uml/20uml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- demo/uml/20uml 2004/07/02 10:39:09 1.3 +++ demo/uml/20uml 2004/07/22 12:37:01 1.4 @@ -25,14 +25,16 @@ UMLDIR=$(ultrapossum_getconf UMLDIR "$localstatedir/lib/$PACKAGE/uml") UML_ROOTSTRAP_CONF_IN=$(ultrapossum_getconf UML_ROOTSTRAP_CONF_IN "$TEMPLATEDIR/rootstrap.conf.in") UML_NAMESERVER=$(ultrapossum_getconf UML_NAMESERVER "`grep nameserver /etc/resolv.conf | awk -F' ' '{print $2;}' | head -1`") - UML_HOSTS=$(ultrapossum_getconf UML_HOSTS "$MASTER $SLAVES") + UML_HOSTS=$(ultrapossum_getconf UML_HOSTS "$MASTER $SLAVES $ULTAMONKEYNODES") UML_USER=$(ultrapossum_getconf UML_USER "daemon") UML_DIST=$(ultrapossum_getconf UML_DIST "woody") UML_MIRROR=$(ultrapossum_getconf UML_MIRROR "http://http.us.debian.org/debian") UML_PROXY=$(ultrapossum_getconf UML_PROXY "") - UML_ULTRAPOSSUM_APT=$(ultrapossum_getconf UML_APT_SOURCE "http://ultrapossum.org/debian/ ./") + UML_ULTRAPOSSUM_APT=$(ultrapossum_getconf UML_ULTRAPOSSUM_APT "http://ultrapossum.org/debian/ ./") + UML_ULTRAMONKEY_APT=$(ultrapossum_getconf UML_ULTRAMONKEY_APT "http://www.ultramonkey.org/download/2.0.1/ sid main") UML_MEM=$(ultrapossum_getconf UML_MEM "64M") UML_ULTRAPOSSUM_EXTRA_PACKAGES=$(ultrapossum_getconf UML_ULTRAPOSSUM_EXTRA_PACKAGES "") + UML_MULTICASTADDR=$(ultrapossum_getconf UML_MULTICASTADDR "") fi # Parsing configuration file =================================================================== RCS file: demo/uml/boot,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- demo/uml/boot 2004/07/03 10:17:12 1.9 +++ demo/uml/boot 2004/07/22 12:37:01 1.10 @@ -27,11 +27,11 @@ fi fi -if include $1 "`screen -list | grep ultrapossum | cut -d- -f2 | awk -F' ' '{print $1;}'`" +if include $1 "`screen -list | grep ultrapossum | cut -d- -f2- | awk -F' ' '{print $1;}'`" then echo "$1 already booted" 1>&2 exit 0 fi -screen -d -m -S ultrapossum-$1 $MODULEDIR/uml/uml-run $1 su -c "linux ubd0=$root con0=fd:0,fd:1 con=pts mem=$UML_MEM eth0=tuntap,$host_if,,$host" $UML_USER +screen -d -m -S ultrapossum-$1 $MODULEDIR/uml/uml-run $1 su -c "linux ubd0=$root con0=fd:0,fd:1 con=pts mem=$UML_MEM eth0=tuntap,$host_if,,$host eth1=mcast,,$UML_MULTICASTADDR" $UML_USER =================================================================== RCS file: demo/uml/map,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- demo/uml/map 2004/06/29 12:15:26 1.1 +++ demo/uml/map 2004/07/22 12:37:01 1.2 @@ -13,7 +13,7 @@ trap "eval `ultrapossum-config term`" 0 num() { - i=0 + i=1 for h in $UML_HOSTS do if test "x$h" = "x$arg"; then @@ -28,9 +28,18 @@ id=`num` -pkgs="ultrapossum" -if test "x$BACKUP" != "x" && include "$arg" "$MASTER $BACKUP"; then - pkgs="$pkgs ultrapossum-failover" +if include "$arg" "$ULTRAMONKEYNODES"; then + pkgs="ultrapossum-ultramonkey" +else + pkgs="ultrapossum" + if test "x$BACKUP" != "x" && include "$arg" "$MASTER $BACKUP"; then + pkgs="$pkgs ultrapossum-failover" + fi + if include "$arg" "$SLAVES" && test "x$ULTRAMONKEYNODES" != "x"; then + eval "`$0 $(echo $ULTRAMONKEYNODES | head -1)`" + local_gateway="$local_net" + local_host="$host" + fi fi echo "net=192.168.$id.0/24" @@ -38,3 +47,7 @@ echo "uml=192.168.$id.2" echo "host_if=tap$id" echo "ultrapossum_packages='$pkgs'" +echo "local_gateway=$local_gateway" +echo "local_net=192.168.0.$id" +echo "local_host=$local_host" + =================================================================== RCS file: demo/uml/rootstrap.conf.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- demo/uml/rootstrap.conf.in 2004/07/02 10:39:09 1.3 +++ demo/uml/rootstrap.conf.in 2004/07/22 12:37:01 1.4 @@ -115,5 +115,10 @@ [ultrapossum] ultrapossum_apt=#UML_ULTRAPOSSUM_APT# +ultramonkey_apt=#UML_ULTRAMONKEY_APT# ultrapossum_packages=#ULTRAPOSSUM_PACKAGES# ultrapossum_hosts=#ULTRAPOSSUM_HOSTS# +ultrapossum_local_net=#ULTRAPOSSUM_LOCALNET# +ultrapossum_local_gateway=#ULTRAPOSSUM_LOCALGATEWAY# +ultrapossum_local_host=#ULTRAPOSSUM_LOCALHOST# + =================================================================== RCS file: demo/uml/rootstrap.sh,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- demo/uml/rootstrap.sh 2004/07/02 10:39:09 1.3 +++ demo/uml/rootstrap.sh 2004/07/22 12:37:01 1.4 @@ -18,7 +18,11 @@ -e "s!#UML_MIRROR#!$UML_MIRROR!" -e "s!#UML_PROXY#!$UML_PROXY!" \ -e "s/#UML_NAMESERVER#/$UML_NAMESERVER/" \ -e "s!#UML_ULTRAPOSSUM_APT#!$UML_ULTRAPOSSUM_APT!" \ + -e "s!#UML_ULTRAMONKEY_APT#!$UML_ULTRAMONKEY_APT!" \ -e "s/#ULTRAPOSSUM_PACKAGES#/$UML_ULTRAPOSSUM_EXTRA_PACKAGES $ultrapossum_packages/" \ -e "s!#ULTRAPOSSUM_HOSTS#!$UMLDIR/hosts!" \ + -e "s/#ULTRAPOSSUM_LOCALGATEWAY#/$local_gateway/" \ + -e "s/#ULTRAPOSSUM_LOCALNET#/$local_net/" \ + -e "s/#ULTRAPOSSUM_LOCALHOST#/$local_host/" \ < $UML_ROOTSTRAP_CONF_IN =================================================================== RCS file: demo/uml/ultrapossum,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- demo/uml/ultrapossum 2004/07/02 10:39:09 1.4 +++ demo/uml/ultrapossum 2004/07/22 12:37:01 1.5 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/sh -x export DEBIAN_FRONTEND=noninteractive export UCF_FORCE_CONFFOLD=1 @@ -9,6 +9,36 @@ cp //tmp/host/var/lib/ultrapossum/uml/ssh_known_hosts $TARGET/etc/ssh/ssh_known_hosts fi echo "deb $ultrapossum_apt" >> $TARGET/etc/apt/sources.list +echo "deb http://ultrapossum.org/experimental/debian/ ./" >> $TARGET/etc/apt/sources.list +echo "deb $ultramonkey_apt" >> $TARGET/etc/apt/sources.list chroot $TARGET mount -t proc proc /proc cat /tmp/host/$ultrapossum_hosts >> $TARGET/etc/hosts +cat >> $TARGET/etc/network/interfaces <<EOF +auto eth1 +iface eth1 inet static + address $ultrapossum_local_net + netmask 255.255.255.0 +EOF +if test "x$ultrapossum_local_gateway" != "x"; then + cat >> $TARGET/etc/network/interfaces <<EOF + up /sbin/route add $ultrapossum_local_host gw $ultrapossum_local_gateway + down /sbin/route del $ultrapossum_local_host gw $ultrapossum_local_gateway +EOF +else + cat >> $TARGET/etc/network/interfaces <<EOF + up /sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE + up echo 1 > /proc/sys/net/ipv4/ip_forward + down /sbin/iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE +EOF + cat >> $TARGET/etc/modules <<EOF +ip_vs_rr +ipt_MASQUERADE +ipt_multiport +iptable_nat +iptable_filter +ip_conntrack +EOF + eval `grep ^SLURPDSLAVE $TARGET/etc/ultrapossum/module.d/server.cf` + echo "SLAVES=\"$SLURPDSLAVES\"" >> $TARGET/etc/ultrapossum/ultrapossum.cf +fi chroot $TARGET /bin/sh -c "apt-get update && apt-get -y -o DPkg::Options::="--force-confold" -f install $ultrapossum_packages && run-parts --arg=stop /etc/init.d/" =================================================================== RCS file: demo/uml/update-uml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- demo/uml/update-uml 2004/07/08 09:06:51 1.11 +++ demo/uml/update-uml 2004/07/22 12:37:01 1.12 @@ -29,16 +29,20 @@ progress "Configuring User-Mode-Linux... " install -d $UMLDIR /bin/cp /dev/null $UMLDIR/hosts + add_startmark "##" "$id" > $tmp for h in $UML_HOSTS do eval "`$MODULEDIR/uml/map $h`" install -d $UMLDIR/$h $MODULEDIR/uml/rootstrap.sh $h > $UMLDIR/$h/rootstrap.conf - echo "$uml $h" >> $UMLDIR/hosts + if test "x$local_net" != "x"; then + echo "$local_net $h" >> $UMLDIR/hosts + else + echo "$uml $h" >> $UMLDIR/hosts + fi + echo "$uml $h" >> $tmp done - add_startmark "##" "$id" > $tmp - cat $UMLDIR/hosts >> $tmp add_endmark "##" "$id" >> $tmp add_end_vaconf "/etc/hosts" "$tmp" "$id"