[evolvis-commits] r15760: enhancement on vm build for debian and ce?==?UTF-8?Q?ntos↵

mirabilos at evolvis.org mirabilos at evolvis.org
Tue Mar 1 00:28:05 CET 2011


Author: mirabilos
Date: 2011-03-01 00:28:05 +0100 (Tue, 01 Mar 2011)
New Revision: 15760

Modified:
   trunk/gforge_base/evolvisforge-5.1/tests/openvz/Makefile
Log:
enhancement on vm build for debian and centos


Modified: trunk/gforge_base/evolvisforge-5.1/tests/openvz/Makefile
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/tests/openvz/Makefile	2011-02-28 23:28:02 UTC (rev 15759)
+++ trunk/gforge_base/evolvisforge-5.1/tests/openvz/Makefile	2011-02-28 23:28:05 UTC (rev 15760)
@@ -1,19 +1,33 @@
 
 DEBMIRROR=http://ftp.fr.debian.org/debian
 RINSECONF=/etc/rinse/rinse.conf
+RINSEBPI=
+RINSEPOSTINST=--after-post-install $(CURDIR)/local.rinse.api
 VEID=100
 VEIDDEBTMPL=105
 VEIDCENTOSTMPL=110
 ARCH=amd64
 DIST=squeeze
-EXTRAPACKAGE="--include=ssh,less,htop"
+EXTRADEBPACKAGE=--include=ssh,less,htop,zsh
+EXTRACENTOSPACKAGE=openssh-server,man,zsh,bind-utils
 DEBVERS=5.0
 CENTVERS=5.4
 
+# Local customization can be done using a local.<hostname> file
+# This is convenient if you use local mirror
 -include local.$(shell hostname)
 
-default: createcentos
-	@echo "README !"
+default: 
+	@echo "Run make <target>"
+	@echo "Available target are"
+	@echo "make net : this will setup a /etc/vz/vznet.conf to register new virtual host to vmbr0 bridge"
+	@echo "  See interfaces.sample to know how to setup a bridge"
+	@echo "make builddebiantemplate : build an openvz debian template"
+	@echo "make buildcentostemplate : build an openvz centos template"
+	@echo "make createdeb : build a debian openvz vm with ID=$(VEIDDEBTMPL)"
+	@echo "make createcentos : build a centos openvz vm with ID=$(VEIDCENTOSTMPL)"
+	@echo ""
+	@echo "Read Makefile for other target"
 
 builddebiantemplate: builddebianvm
 	vzctl set $(VEID) --applyconfig basic --save
@@ -57,27 +71,32 @@
 	-rm -f /var/lib/vz/private/$(VEID)/dev/urandom 
 	[ -c /var/lib/vz/private/$(VEID)/dev/urandom ]  || chroot /var/lib/vz/private/$(VEID) /bin/mknod /dev/urandom c 1 9 
 	[ -d /var/lib/vz/private/$(VEID)/var/lock/rpm ] || chroot /var/lib/vz/private/$(VEID) /bin/mkdir /var/lock/rpm	
+	touch /var/lib/vz/private/$(VEID)/etc/fstab
 	grep -q devpts /var/lib/vz/private/$(VEID)/etc/fstab || \
 		echo "none /dev/pts devpts mode=0620 0 0" >> /var/lib/vz/private/$(VEID)/etc/fstab
 	cd /var/lib/vz/private/$(VEID)/ ; tar --numeric-owner -zcf /var/lib/vz/template/cache/centos-$(CENTVERS)-$(ARCH)-minimal.tar.gz .
-		
 
 builddebianvm: /var/lib/vz/private/$(VEID)/etc /etc/vz/conf/$(VEID).conf 
 
 /var/lib/vz/private/$(VEID)/etc: cleanvz /var/lib/vz/private/$(VEID)
-	[ -d /var/lib/vz/private/$(VEID)/etc ] || sudo debootstrap --arch $(ARCH) $(EXTRAPACKAGE) $(DIST) /var/lib/vz/private/$(VEID) $(DEBMIRROR)
+	[ -d /var/lib/vz/private/$(VEID)/etc ] || sudo debootstrap --arch $(ARCH) $(EXTRADEBPACKAGE) $(DIST) /var/lib/vz/private/$(VEID) $(DEBMIRROR)
 
 buildcentosvm: /var/lib/vz/private/$(VEID)/etc/redhat-release 
 
 /var/lib/vz/private/$(VEID)/etc/redhat-release: cleanvz
-	[ -d /var/lib/vz/private/$(VEID)/etc/redhat-release ] || sudo rinse --config $(RINSECONF) --arch $(ARCH) --distribution centos-5 --directory /var/lib/vz/private/$(VEID)
+	[ -d /var/lib/vz/private/$(VEID)/etc/redhat-release ] || sudo extrapackage="$(EXTRACENTOSPACKAGE)" rinse $(RINSEBPI) $(RINSEPOSTINST) --config $(RINSECONF) --arch $(ARCH) --distribution centos-5 --directory /var/lib/vz/private/$(VEID)
 
 cleanvz:
 	-rmdir /var/lib/vz/private/$(VEID)
 	[ ! -d /var/lib/vz/private/$(VEID) ] || vzctl stop $(VEID)
 	[ ! -d /var/lib/vz/private/$(VEID) ] || vzctl destroy $(VEID)
 	-rm -f /etc/vz/conf/$(VEID).conf.destroyed
+
+cleancentos:
+	make cleanvz VEID=$(VEIDCENTOSTMPL)
 	
+cleandeb:
+	make cleanvz VEID=$(VEIDDEBTMPL)
 
 /var/lib/vz/private/$(VEID):
 	sudo mkdir /var/lib/vz/private/$(VEID)
@@ -88,37 +107,44 @@
 
 finalizedeb:
 	# Give it a hostname.
-	echo `hostname`-$(VEID) > /var/lib/vz/private/$(VEID)/etc/hostname
+	echo `hostname`-$(VEIDDEBTMPL) > /var/lib/vz/private/$(VEIDDEBTMPL)/etc/hostname
 	# Disable getty in /etc/inittab as openvz do not have that.
-	sed -i -e '/getty/d' /var/lib/vz/private/$(VEID)/etc/inittab
+	sed -i -e '/getty/d' /var/lib/vz/private/$(VEIDDEBTMPL)/etc/inittab
 	# Link /etc/mtab to /proc/mtab to make mount work as expected.
-	rm -f /var/lib/vz/private/$(VEID)/etc/mtab
-	ln -s /proc/mounts /var/lib/vz/private/$(VEID)/etc/mtab
+	rm -f /var/lib/vz/private/$(VEIDDEBTMPL)/etc/mtab
+	ln -s /proc/mounts /var/lib/vz/private/$(VEIDDEBTMPL)/etc/mtab
 	# If an IP address is needed for the virtual server
-	#vzctl set $(VEID) --ipadd x.x.x.x --save
+	#vzctl set $(VEIDDEBTMPL) --ipadd x.x.x.x --save
 	# In that case you also need to enable IP forwarding
 	#sysctl -w net.ipv4.ip_forward=1
 	# Add eth0 interface
-	vzctl set $(VEID) --netif_add eth0 --save
+	vzctl set $(VEIDDEBTMPL) --netif_add eth0 --save
 	# Setup dhcp
-	grep -q "auto lo" /var/lib/vz/private/$(VEID)/etc/network/interfaces || \
-		echo "auto lo" >> /var/lib/vz/private/$(VEID)/etc/network/interfaces
-	grep -q "iface lo inet loopback" /var/lib/vz/private/$(VEID)/etc/network/interfaces || \
-		echo "iface lo inet loopback" >> /var/lib/vz/private/$(VEID)/etc/network/interfaces
-	grep -q "auto eth0" /var/lib/vz/private/$(VEID)/etc/network/interfaces || \
-		echo "auto eth0" >> /var/lib/vz/private/$(VEID)/etc/network/interfaces
-	grep -q "iface eth0 inet dhcp" /var/lib/vz/private/$(VEID)/etc/network/interfaces || \
-		echo "iface eth0 inet dhcp" >> /var/lib/vz/private/$(VEID)/etc/network/interfaces
+	grep -q "auto lo" /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces || \
+		echo "auto lo" >> /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces
+	grep -q "iface lo inet loopback" /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces || \
+		echo "iface lo inet loopback" >> /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces
+	grep -q "auto eth0" /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces || \
+		echo "auto eth0" >> /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces
+	grep -q "iface eth0 inet dhcp" /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces || \
+		echo "iface eth0 inet dhcp" >> /var/lib/vz/private/$(VEIDDEBTMPL)/etc/network/interfaces
 	# Setup dhclient extra
-	grep -q "^send host-name" /var/lib/vz/private/$(VEID)/etc/dhcp/dhclient.conf || \
-		echo "send host-name \"`hostname`-$(VEID)\";" >> /var/lib/vz/private/$(VEID)/etc/dhcp/dhclient.conf
+	grep -q "^send host-name" /var/lib/vz/private/$(VEIDDEBTMPL)/etc/dhcp/dhclient.conf || \
+		echo "send host-name \"`hostname`-$(VEIDDEBTMPL)\";" >> /var/lib/vz/private/$(VEIDDEBTMPL)/etc/dhcp/dhclient.conf
 
 finalizecentos:
 	# Give it a hostname.
-	echo `hostname`-$(VEID) > /var/lib/vz/private/$(VEID)/etc/hostname
+	echo `hostname`-$(VEIDCENTOSTMPL) > /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/hostname
+	grep -q "^HOSTNAME=" /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/sysconfig/network || \
+		echo "HOSTNAME=`hostname`-$(VEIDCENTOSTMPL)" >> /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/sysconfig/network
 	# Add eth0 interface
-	vzctl set $(VEID) --netif_add eth0 --save
+	vzctl set $(VEIDCENTOSTMPL) --netif_add eth0 --save
 	# Setup dhcp
+	echo "DEVICE=eth0" > /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/sysconfig/network-scripts/ifcfg-eth0
+	echo "BOOTPROTO=dhcp" >> /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/sysconfig/network-scripts/ifcfg-eth0
+	echo "ONBOOT=yes" >> /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/sysconfig/network-scripts/ifcfg-eth0
+	# Setup dhclient extra
+	[ -f /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/dhclient.conf ] || echo "send host-name \"`hostname`-$(VEIDCENTOSTMPL)\";" > /var/lib/vz/private/$(VEIDCENTOSTMPL)/etc/dhclient.conf
 	
 
 net: /etc/vz/vznet.conf
@@ -133,13 +159,13 @@
 	#sudo ifconfig vmbr0 0
 	#sudo brctl addif vmbr0 eth0
 
-createdeb:
+createdeb: cleandeb
 	vzctl create $(VEIDDEBTMPL) --ostemplate debian-$(DEBVERS)-$(ARCH)-minimal
-	make finalizedeb VEID=$(VEIDDEBTMPL)
+	make finalizedeb
 	
-createcentos:
-	#vzctl create $(VEIDCENTOSTMPL) --ostemplate centos-$(CENTVERS)-$(ARCH)-minimal
-	make finalizecentos VEID=$(VEIDCENTOSTMPL)
+createcentos: cleancentos
+	vzctl create $(VEIDCENTOSTMPL) --ostemplate centos-$(CENTVERS)-$(ARCH)-minimal
+	make finalizecentos
 	
 start:
 	sudo vzctl start $(VEID)



More information about the evolvis-commits mailing list