Subject: vserver rename
From: "Roderick A. Anderson" <raanders@cyber-office.net>
Date: Sat, 31 Jan 2009 07:48:24 -0800

While moving a bunch of services off standalone computers I made some 
naive naming decisions I now need to correct.

I did some searching and only came across one good posting on the wiki 
about how to rename a Vserver guest.

Based on that posting I am working on a script that renames a Vserver guest.

Would the list look at what I've got so far and see if there are any 
serious problems?

The two questions I haven't done research on:
    1) Are handling multiple 'interfaces' and assigning a name to each 
of them, and
    2) What _special_ characters are permitted in a guest's name -- 
"._-" dot, underscore, and dash?

Here is the main portion of the script.

[~/vservers]# cat vrename.sh
#!/bin/bash

#+# Command line args will be handled here.
#
###
OLD=oldname
NEW=newname

XID=$(vserver $OLD status | grep context | cut -d ' ' -f 7 | tr -d "'")

vserver $OLD running
export RUN=$?

if [ $RUN -eq 0 ]; then vserver $OLD stop ; fi

unlink /etc/vservers/$OLD/run
unlink /etc/vservers/$OLD/vdir
unlink /etc/vservers/$OLD/cache

if [ $RUN -eq 0 ]; then unlink /var/run/vservers.rev/$XID; fi

mv /vservers/$OLD /vservers/$NEW
mv /etc/vservers/$OLD /etc/vservers/$NEW

pushd /etc/vservers/.defaults/vdirbase/.pkg/
mv $OLD $NEW
popd

echo $NEW > /etc/vservers/$NEW/name
for IFN in $( find /etc/vservers/$NEW/interfaces/ -name name ); \
    do \
       echo $NEW > $IFN ; \
    done

ln -s /var/run/vservers/$NEW /etc/vservers/$NEW/run
ln -s /etc/vservers/.defaults/vdirbase/$NEW /etc/vservers/$NEW/vdir
ln -s /etc/vservers/.defaults/cachebase/$NEW /etc/vservers/$NEW/cache

if [ $RUN -eq 0 ]; then vserver $NEW start; fi

exit;



This is on a CentOS 5.2 host with the latest from Daniel's repo and 
running CentOS 5 guests.


Thanks,
Rod
--