vserver 0.29 changes log

vserver 0.29 changes log

previous versions: 0.28
Change log index

Enhancements

/usr/lib/vserver/printconf.sh: new utility

This utility shields application from the complexity of the vserver configuration files. It should also protect application from changes we may do to the configuration format.

This utility reads one vserver configuration file and prints the relevant variable one by line, without any comment. This utility should be used by any script operating on a vserver. C++ application should use the vutil_readconf() function, which is using printconf.sh.

The utility is generally used like this in the various scripts:

	eval `/usr/lib/vserver/printconf.sh --quote vserver-name`

The --quota option puts double quotes around the values to make the output usable by scripts. C++ application are not using it. They simply assume that everything passed the equal sign is the value, up to the end of the line.

All utilities in the vserver package are now complying with this strategy.

Debian patches

All the patches from the Debian projects were applied. Some enhancements were done (discussed in this change log). This includes new man pages, some C++ fixes, some stuff related to VSERVERS_ROOT.

New variables in configuration files

Few variables were added in vservers configurations files:

newvserver: VSERVERS_ROOT support

The utility presents a new field to select the vserver root to use for vserver creation. A drop down let you review the various vservers roots used on this server and the amount of disk space available on each.

newvserver use /etc/vservers.conf to extract the default value for VSERVERS_ROOT. It also checks /etc/vservers/newvserver.default to extract the value from the newvroot variable (if available) (So /etc/vservers/newvserver.defaults override /etc/vservers.conf).

The --vroot command line option was also added to setup the default value.

rebootmgr: supports VSERVERDIR

The utility places its sockets in the proper directories, using vutil_readconf() to learn the vserver installation directory (VSERVERDIR).

Vservers configuration files

A small change was made to vserver configuration files. The file /etc/vservers.conf contains system wide defaults, but is not used directly by the various tools, except when creating a new virtual server. This file (/etc/vservers.conf) is normally sourced by the various vservers configuration files (included). From a tool perspective, for a vserver named foo, only /etc/vservers/foo.conf matters. foo.conf normally starts like this:

	# Description: Some vserver
	source /etc/vservers.conf
	...

Using this strategy, sites are free to implement whatever logic they want to manage vservers. For example, sites may decide to move the S_CAPS or S_FLAGS to /etc/vservers.conf to minimize repetition in vservers.

All the utilities have been modified to obey this rules. Utilities for example, must source one vserver configuration file to learn its VSERVERS_ROOT directory (more on this in this change log).

You do not have to change anything to use vserver 0.29. The printconf.sh utility sources /etc/vservers.conf before sourcing the vserver configuration file. But newvserver and "vserver build" produces configuration files with the proper source command at the top.

Changes

v_xxx services bound to 127.0.0.1

V_xxx services (sshd, ...) are special services used in the root server to limit its IP scope to some IPs. This way, vservers are free to use the other IPs of the machine. In previous release, all v_xxx services were bound to eth0 only. It was possible to override this using a corresponding file /etc/vservices/xxx.conf with a line like:

	IP="ip1 ip2"

It turns out to be more practical to bind services to 127.0.0.1 and eth0. X11 forwarding in sshd is working better like this. So now, all v_xxx services are bound to 127.0.0.1 and eth0, unless overridden by the /etc/vservices/xxx.conf