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
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.
OPTION
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.
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.
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.