XenServer自动化创建并初始化VM

转载自: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>

Vqvjwhr.png
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

5fhOhwg.png
5.定义初始化脚本

[root@centos-template ~]# cat /etc/rc.local

94lodpt.png
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

5JIboAG.png
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

iliu7jn.png
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"

未完待续。。。

转载于:https://www.cnblogs.com/xingzerun/p/7904863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值