转载自:http://heylinux.com/archives/2768.html
创建CentOS 6.9
环境介绍:
xenserver-test:192.168.0.37(一台XenServer主机)
centos-template:192.168.0.121(事先创建好的VM)
vm-host-1:192,168.0.122(将要创建的VM)
以下为操作过程:
1.获取centos-template的uuid
[root@xenserver-test ~]# xe vm-list | grep -B 1 centos-template
<centos-template uuid>
2.修改内核启动方式,并传递自定义参数
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> HVM-boot-policy=""
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> PV-bootloader="pygrub"
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> PV-args="_hostname=centos-template _ipaddr=192.168.0.121 _netmask=255.255.255.0 _gateway=192.168.0.1"
3.启动centos-template
[root@xenserver-test ~]# xe vm-start vm=centos-template
4.获取自定义参数
[root@centos-template ~]# cat /proc/cmdline
5.定义初始化脚本
[root@centos-template ~]# cat /etc/rc.local
6.创建具体的脚本
[root@centos-template ~]# touch /root/bootstrap.sh
[root@centos-template ~]# chmod +x /root/bootstrap.sh
[root@centos-template ~]# vim /root/bootstrap.sh
bootstrap.sh如下:
#!/bin/bash
#
# Bootstrap Script for Hostname,Network...
#
# Author: Dong Guo
# Last Modified: 2013/10/24 by Dong Guo
options=$(cat /proc/cmdline|sed 's/.*rhgb quiet //g')
config=/etc/sysconfig/network-scripts/ifcfg-eth0
failed=/root/bootstrap.failed
function check_root(){
if [ $EUID -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
}
function configure_os(){
echo "DEVICE=eth0" > $config
echo "ONBOOT=yes" >> $config
echo "BOOTPROTO=none" >> $config
for i in $options
do
option=$(echo $i|cut -d "=" -f 1)
value=$(echo $i|cut -d "=" -f 2)
if [ "${option:0:1}" = "_" ]; then
case "$option" in
_hostname)
oldname=$(hostname)
newname=$value
sed -i s/"$oldname"/"$newname"/g /etc/sysconfig/network
hostname $newname
;;
_ipaddr)
echo "IPADDR=$value" >> $config
;;
_netmask)
echo "NETMASK=$value" >> $config
;;
_gateway)
echo "GATEWAY=$value" >> $config
;;
esac
fi
done
}
function restart_network(){
/etc/init.d/network restart
}
function check_status(){
gateway=$(grep -w GATEWAY $config|cut -d "=" -f 2)
route -n | grep -wq $gateway
if [ $? -eq 0 ]; then
sed -i /bootstrap/d /etc/rc.local
if [ -a $failed ]; then
rm -f $failed
fi
else
touch $failed
fi
}
check_root
configure_os
restart_network
check_status
7.查看脚本
[root@centos-template ~]# ls
anaconda-ks.cfg bootstrap.sh install.log install.log.syslog
8.退出centos-template
[root@centos-template ~]# exit
9.关闭centos-template
[root@centos-template ~]# xe vm-shutdown vm=centos-template
10.获取xenserver-test本地存储的uuid
[root@xenserver-test ~]# xe sr-list | grep -A 2 -B 3 xenserver-test | grep -A 4 -B 1 "Local Storage"
<Local Storage uuid>
11.复制创建新的VM vm-host-1
[root@xenserver-test ~]# xe vm-copy new-name-label=vm-host-1 vm=vm-template sr-uuid=<new uuid>
<new uuid>
12.获取vm-host-1的uuid
[root@xenhost1 ~]# xe vm-list | grep -A 1 <new uuid>
13.传递自定义参数
[root@xenhost1 ~]# xe vm-param-set uuid=<new uuid> PV-args="_hostname=vm-host-1 _ipaddr=192.168.0.122 _netmask=255.255.255.0 _gateway=192.168.0.1"
14.启动vm-host-1
[root@xenserver-test ~]# xe vm-start vm=vm-host-1
15.登录vm-host-1
[root@xenserver-test ~]# ssh root@192.168.1.122
16.查看初始化脚本标记是否被移除
[root@vm-host-1 ~]# cat /etc/rc.local
17.OK!
[root@vm-host-1 ~]# ls
anaconda-ks.cfg bootstrap.sh install.log install.log.syslog
18.退出vm-host-1
[root@vm-host-1 ~]# exit
创建Windows7
环境介绍:
xenserver-test:192.168.0.37(一台XenServer主机)
centos-template:192.168.0.121(事先创建好的VM)
vm-host-1:192,168.0.122(将要创建的VM)
以下为操作过程:
1.获取win7-template的uuid
[root@xenserver-test ~]# xe vm-list | grep -B 1 win7-template
2.修改内核启动方式,并传递自定义参数
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> HVM-boot-policy=""
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> PV-bootloader="pygrub"
[root@xenserver-test ~]# xe vm-param-set uuid=<centos-template uuid> PV-args="_hostname=centos-template _ipaddr=192.168.0.121 _netmask=255.255.255.0 _gateway=192.168.0.1"
未完待续。。。