Reinstall an operating system in a vm
dtc_reinstall_os [ -v ] [ OPTIONS ] -vpsid <ID> -ram <RAM size MB> -nic <ip>[,<netmask>[,<broadcast>]] -pass <root-password> -os <operating-system> [ -gw <default-gateway> ] [ -dns <dns1-ip>[,<dns2-ip>] ]
dtc-reinstall_os This shell script is a part of the dtc-xen package that is to be used by the dtc panel to manage a Xen VPS server.
dtc_reinstall_os will bootstrap an operating system for you, so you can later use it in a virtual machine (a VM), otherwise called a virtual private server (a VPS). This script will be called by dtc-xen when you order it to install a VPS through the SOAP server of dtc-xen. You can as well use it directly on the shell if you don't have a DTC control panel server already setup.
Additional configuration files
When doing it's setup, dtc_reinstall_os will copy the file /etc/dtc-xen/authorized_keys2 into the VPS's /root/.ssh/authorized_keys2 and /root/.ssh/authorized_key, so the administrator has access to the VPS without the need of shutting it down. So it's a good idea to copy your shh public key in /etc/dtc-xen/authorized_keys2. dtc_reinstall_os will also copy /etc/dtc-xen/motd into the /etc/motd of the VPS (and /etc/motd.tail if a Debian operating system is installed), and /etc/dtc-xen/bashrc into the /root/.bashrc.
Another very important configuration file is /etc/dtc-xen/dtc-xen.conf, that will hold the configuration for both this script, and the SOAP server of dtc-xen itself.
Parameters and options conventions
All parameters described here are mandatory. dtc_reinstall_os will exit if one of the parameters is missing from both the configuration file /etc/dtc-xen/dtc-xen.conf and the command line. If a parameter is on both the configuration file and the command line, then the command line has priority. The parameters not marked like [ this ] are not mandatory in the command line, if and only if, they are defined in the configuration file. If a parameter is defined in the configuration file, then it can be omitted from the command line. The parameters defined above -like <this> are mandatory. Options are always defined with a double minus sign, while mandatory parameters have only a single minus sign.
All the parameters defined in this section (eg: PARAMETERS) are the mandatory on the command line.
-vpsid <ID>
ID has to be a number between 01 and 99. Each time a new VPS is created, an associated user xen<ID> will be created on the system, using /usr/bin/dtc-xen_userconsole so your users can login into the system. When they login, "xm console xen<ID>" will in fact be their shell, so they can access the physical console of the VPS using ssh.
-ram <RAM size MB>
This is the amount of memory in mega bytes that you want to have setup in the Xen startup file for this virtual machine.
-nic <ip>[,<netmask>[,<broadcast>]]
This parameter defines the network configuration of the virtual machine, together with the -gw option (see below). There can be as many -nic parameter as you need. If there is more than one, then dtc_reinstall_os will setup a physical NIC configuration, and as many eth0:X virtual alias as needed to match the number of -nic parameters on the command line.
If the <netmask> or <broadcast> parameter is missing, then the values will be taken from /etc/dtc-xen/dtc-xen.conf. It is mandatory to have at least the netmask and broadcast defined in either the command line or in the configuration file. These variables are called NETMASK and BROADCAST in /etc/dtc-xen/dtc-xen.conf. Note that each IP address will be added to the Xen startup configuration file of the virtual machine, so that you can use the anti-spoof facility of the Xen firewall (highly recommended, if you are reselling VPS). See Xen documentation on how to activate the anti-spoof feature of xend, but in short, you should use something like this: (network-script 'network-bridge antispoof=yes') while network-bridge can be replaced by the network scheme that you need. DTC-Xen will NOT touch the /etc/xen/xend-config.sxp file, it's up to you to customize it to your needs before using dtc-xen.
-gw <gateway>
You can then specify lvm or loopback. Currently the only value the script compares to is lvm (or anything else), but this might change in the future. If omitted, then lvm loopback is used.
[ -dns <dns1-ip>[,<dns2-ip>] ]
This defines the default DNS to be setup in /etc/resolv.conf in the VPS that will be setup. If not present, then dtc-xen will use the file in /etc/resolv.conf of your dom0 to find the DNS to use.
-pass <PASSWORD>
This is the root password you wish to have setup inside the VPS. Not all operating system setup will support it, but it's still a mandatory parameter. If this parameter is not used, then the VPS will be setup without a root password, which is, as opposed to many people think, very fine. The user will just need to log into his VPS and setup the root password using the passwd utility.
-os <unix-distribution>
This parameter that can be debian, centos, or netbsd for a default setup of dtc-xen. It can also be set to any of the folder names present in /usr/share/dtc-xen-os, so that dtc-xen will use the setup script of the dtc-xen-os module to initialize a partition.
This parameter can also be the name of any folder present in /usr/share/dtc-xen-app. These are appliances that will be installed automatically at the first boot of the VPS. They depend on the support of the unix distribution that is supported by dtc-xen, or any of the dtc-xen-os module installed in the system.
If you don't set these options, then they may have to be set in /etc/dtc-xen/dtc-xen.conf. Some options can be omitted completely.
-v
Without -v, dtc_reinstall_os normally outputs everything in /var/lib/dtc-xen/mnt/XX.stderr and /var/lib/dtc-xen/mnt/XX.stdout (or wherever you have set the vps mountpoint to be), to keep a log of the installation. With -v, the redirection of standard output and error is not done.
--vnc-pass <VNCPASS>
VNC password for the physical console of your HVM VPS. See the Xen documentation if you don't know what is HVM or full virtualization. If this parameter is omitted, then the VPS will be setup to NOT use the VNC server (recommended when in production).
--boot-iso <file.iso>
Name of the ISO file stored in /var/lib/dtc-xen/ttyssh_home/xenXX/ folder so the VPS can be set to boot on it. If this parameter is omitted, then the VPS will boot on the hard drive. Note that your users would, in a normal scheme, upload the ISO file using FTP and the ssh physical console password they have set using DTC. The list of uploaded ISO files will then be presented in the user interface. Because these ISO files can be sometimes big, it is advised to protect your /var filesystem by using a dedicated partition for /var/lib/dtc-xen/ttyssh_home, in order to avoid that your users fill up the /var space with ISO files.
--initrd
Full path to the init ram disk image to setup in the startup configuration file for this VPS. This parameter is normally to be defined in /etc/dtc-xen/dtc-xen.conf as it should normally not be changed often.
--kernel
Full path to the kernel boot image to setup in the startup configuration file for this VPS. This parameter is normally to be defined in /etc/dtc-xen/dtc-xen.conf as it should normally not be changed often.
--kernel-release
Kernel release number that will be used when setting-up this VPS. To be used only if you are using the --initrd and --kernel options, and if the release number is different from the one of your dom0. This will be used to run a depmod -a <kernel-release-number> in the VPS partition.
--kmod-path
Full path to the kernel modules to be used when copying the kernel modules in the VPS.
.I Example1:
dtc_reinstall_os -v -vpsid 01 -ram 512 -nic 192.168.2.176,255.255.255.0,192.168.2.255 -pass MyRootPass -os debian -gw 192.168.2.1 -dns 192.168.2.1
This will setup the VM called xen01, build it's startup file in /etc/xen/xen01 with a vif containing ip=192.168.2.176 and 512 MB of RAM, setting-up a debian operating system with the /etc/network/interfaces using 192.168.2.176 as IP, 255.255.255.0 as netmask, 192.168.2.255 as broadcast, 192.168.2.1 as gateway, and 192.168.2.1 as DNS.
.I Example2:
dtc_reinstall_os -vpsid 02 -ram 1024 -nic 192.168.9.2 -nic 192.168.9.3 -gw 192.168.9.1 -pass MyRootPass -os kde-nx-server-3.3.0
This will setup the VM called xen02, build it's startup file in /etc/xen/xen02 with a vif containing ip=192.168.9.2 and 192.168.9.3 and 1 GB of RAM, setting-up a debian operating system with the /etc/network/interfaces using 192.168.2.176 as IP for eth0, and eth0:1 with 192.168.9.3. The gateway 192.168.9.1 will be used for eth0, the broadcast, network, and netmask addresses will be used from the default in /etc/dtc-xen/dtc-xen.conf (as they are omitted here, it's mandatory that this config file has been edited to match your network and in order to use dtc_reinstall_os this way). The dom0 /etc/resolv.conf will be used to set the VPS's /etc/resolv.conf.
This documentation describes dtc_reinstall_os version 0.3.15.
See http://www.gplhost.com/software-dtc-xen.html for updates.