diff --git a/share/scripts/ttylinux/context/init.sh b/share/scripts/ttylinux/context/init.sh new file mode 100644 index 0000000000..2f16517080 --- /dev/null +++ b/share/scripts/ttylinux/context/init.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +if [ -f /mnt/context/context.sh ] +then + . /mnt/context/context.sh +fi + + +echo $HOSTNAME > /etc/HOSTNAME +hostname $HOSTNAME + +if [ -n "$IP_PUBLIC" ]; then + ifconfig eth0 $IP_PUBLIC +fi + +if [ -n "$NETMASK" ]; then + ifconfig eth0 netmask $NETMASK +fi + + +if [ -f /mnt/context/$ROOT_PUBKEY ]; then + cat /mnt/context/$ROOT_PUBKEY >> /root/.ssh/authorized_keys +fi + +if [ -n "$USERNAME" ]; then + adduser -s /bin/bash -D $USERNAME + if [ -f /mnt/context/$USER_PUBKEY ]; then + mkdir -p /home/$USERNAME/.ssh/ + cat /mnt/context/$USER_PUBKEY >> /home/$USERNAME/.ssh/authorized_keys + chown -R $USERNAME /home/$USERNAME/.ssh + chmod -R 600 /home/$USERNAME/.ssh + fi +fi diff --git a/share/scripts/ttylinux/context/ttylinux.one b/share/scripts/ttylinux/context/ttylinux.one new file mode 100644 index 0000000000..a4669c801f --- /dev/null +++ b/share/scripts/ttylinux/context/ttylinux.one @@ -0,0 +1,22 @@ +NAME = myttyserver +CPU = 0.1 +MEMORY = 64 +DISK = [ + source = "/home/srv/cloud/images/ttylinux.0.4.img", + target = "hda", + readonly = "no" ] +NIC = [ NETWORK = "Red Virtual" ] + +FEATURES=[ acpi="no" ] +RAW = [ type = "kvm", data = " " ] + +# Context example +CONTEXT = [ + hostname = "$NAME", + ip_public = "$NIC[IP, NETWORK=\"Red Virtual\"]", + files = "/home/jaime/one-templates/ttylinux/init.sh /home/jaime/one-templates/ttylinux/id_dsa.pub", + target = "hdc", + root_pubkey = "id_dsa.pub", + username = "jaime", + user_pubkey = "id_dsa.pub" +] diff --git a/share/scripts/ttylinux/net-vmcontext/vmcontexttty b/share/scripts/ttylinux/net-vmcontext/vmcontexttty new file mode 100755 index 0000000000..9072b2e0f2 --- /dev/null +++ b/share/scripts/ttylinux/net-vmcontext/vmcontexttty @@ -0,0 +1,120 @@ +#!/bin/bash +# +# chkconfig: 2345 10 90 +# description: network reconfigure +# +# -------------------------------------------------------------------------- # +# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad # +# Complutense de Madrid (dsa-research.org) # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +#--------------------------------------------------------------------------- # + +# Gets IP address from a given MAC +mac2ip() { + mac=$1 + + let ip_a=0x`echo $mac | cut -d: -f 3` + let ip_b=0x`echo $mac | cut -d: -f 4` + let ip_c=0x`echo $mac | cut -d: -f 5` + let ip_d=0x`echo $mac | cut -d: -f 6` + + ip="$ip_a.$ip_b.$ip_c.$ip_d" + + echo $ip +} + +# Gets the network part of an IP +get_network() { + IP=$1 + + echo $IP | cut -d'.' -f1-3 +} + +get_interfaces() { + IFCMD="/sbin/ifconfig -a" + + $IFCMD | grep ^eth | sed 's/ *Link encap:Ethernet.*HWaddr /-/g' +} + +get_dev() { + echo $1 | cut -d'-' -f 1 +} + +get_mac() { + echo $1 | cut -d'-' -f 2 +} + +gen_hosts() { + NETWORK=$1 + echo "127.0.0.1 localhost" + for n in `seq -w 01 99`; do + n2=`echo $n | sed 's/^0*//'` + echo ${NETWORK}.$n2 cluster${n} + done +} + +gen_exports() { + NETWORK=$1 + echo "/images ${NETWORK}.0/255.255.255.0(rw,async,no_subtree_check)" +} + +gen_hostname() { + MAC=$1 + NUM=`mac2ip $MAC | cut -d'.' -f4` + NUM2=`echo 000000$NUM | sed 's/.*\(..\)/\1/'` + echo cluster$NUM2 +} + +gen_interface() { + DEV_MAC=$1 + DEV=`get_dev $DEV_MAC` + MAC=`get_mac $DEV_MAC` + IP=`mac2ip $MAC` + NETWORK=`get_network $IP` + +cat < /etc/sysconfig/network-scripts/ifcfg-${DEV} +done + +# gen_hosts $NETWORK > /etc/hosts + +# gen_exports $NETWORK > /etc/exports + +# gen_hostname $MAC > /etc/hostname + +#ifdown $DEV +#ifup $DEV + +# /bin/hostname `cat /etc/hostname`