腾讯云黑石物理集中跨VPC的PXE自动化安装自定义OS(虚拟机方案)

前言

   目前,部分客户提出在黑石物理机中实现自动化安装自定义的操作系统,为此设计并验证了基于PXE的自动化安装自定义OS,该方案主要分为两大类,一类为PXE Server与待安装操作系统的服务器位于同一个VPC下。第二类是PXE Server与待安装操作系统的服务器位于不同的VPC下。

   在PXE Server与待安装操作系统的服务器不在同一个VPC时,可采用在物理机安装虚拟机的方法来实现自动化安装操作系统,可按照待安装的服务器所在的VPC来创建虚拟机。腾讯云黑石物理集中跨VPC的PXE自动化安装自定义OS(虚拟机方案)_第1张图片

一, 利用黑石云API创建虚拟机所处子网,并且指定子网的vlanId。

from src.QcloudApi.qcloudapi import QcloudApi
module = 'vpc'
action = 'CreateBmSubnet'
config = {
    'Region': 'sh',
    'secretId': '你账户的secretId',
    'secretKey': '你账户的secretKey',
    'method': 'get'
}
params = {
    "vpcId": "sh_vpc_1026",  #创建的子网所在的VPC的vpcId
    "unVpcId": "vpc-p83g7nv7", #创建的子网所在的VPC的unVpcId
    'subnetSet.0.subnetName': 'VM-test-pxe1', #创建的子网的名称
    'subnetSet.0.cidrBlock': '10.1.5.0/24',  #创建的子网IP
    'vlanId': 2098 #创建的子网的VlanId
}
service = QcloudApi(module, config)
service.generateUrl(action, params)
print service.call(action, params)
注意:如果所创建的子网需要分配IP给虚拟机,则需要将VlanId设置在2000-2999之间。

二, 在创建好的子网中申请待分配给虚拟机使用的IP。

from src.QcloudApi.qcloudapi import QcloudApi
module = 'vpc'
action = 'ApplyIps'
config = {
    'Region': 'sh',
    'secretId': '你账户的secretId',
    'secretKey': '你账户的secreteKey',
    'method': 'get'
}
params = {
	"vpcId": "sh_vpc_1026", #子网所在的VPC的ID
	"subnetId": "sh_subnet_497", #申请的I平所在的子网ID
	"count": 2, #申请IP个数,默认为1,取值范围1-20。
	"ipClass": 1 #IP类型,0为物理机IP,1为虚拟机类型IP,2为托管类型IP。默认传1
	
}
service = QcloudApi(module, config)
service.generateUrl(action, params)
print service.call(action, params)

三, 将安装虚拟机的宿主机绑定到虚拟机所在的子网,即申请的子网。

from src.QcloudApi.qcloudapi import QcloudApi
module = 'vpc'
action = 'CreateBmInterface'
config = {
    'Region': 'sh',
    'secretId': '你账户的secretId',
    'secretKey': '你账户的secreteKey',
    'method': 'get'
}
params = {
	"vpcId": "sh_vpc_1026", #子网所属的私有网络ID值.
	"subnetId": 497,    #要绑定的子网ID值.
	"instanceIds.0": "cpm-7m316cuf" #物理机唯一ID.
}
service = QcloudApi(module, config)
service.generateUrl(action, params)
print service.call(action, params)


注意:如果宿主机安装了多个虚拟机并且多个虚拟机所处的子网不同,则需要将宿主机依次加入到各个子网中。

四, 在黑石物理机中建立虚拟网桥。

yum install bridge-utils -y
brctl addbr br0
ifconfig br0 up


五,在黑石物理机中安装必须的虚拟化工具

建议使用libvirt和virt工具来实现虚拟机的创建。

1. 安装所需要的工具。

yum install qemu-kvm libvirt virt-install


2. 验证安装结果,下图说明已经成功安装


3. 开启kvm服务,并且设置其开机自启动

systemctl start libvirtd
systemctl enable libvirtd


 4. 在宿主机上安装VNC

yum install vnc vnc-server


六,在宿主机中安装虚拟机

1. 准备自定义的OS镜像文件。

2. 创建虚拟机文件存放的目录。

3. 使用virt-install创建虚拟机

virt-install --name=dhcp-serve1 --ram 2048 --vcpus 2 \ 
--disk path=/data/images/dhcp-server1.qcow2,size=10,format=qcow2,bus=virtio,sparse \
--cdrom /data/iso/CentOS-6.5-x86_64-bin-DVD1.iso \
--graphic vnc,listen=0.0.0.0,port=5938 \
--os-type=linux \
--virt-type=kvm \
--hvm \
--accelerate \
--network bridge=br0 \
--autostart \
--force


其中name表示的是所创建的虚拟机的名字,path表示虚拟机的位置,cdrom后需填系统镜像文件的路径,graphic指定采用何种可视化的工具。

4. 打开防火墙的5938端口

firewall-cmd --zone=public --add-port=5938/tcp --permanent
firewall-cmd --reload


5. 使用VNC连接该虚拟机,进行虚拟机操作系统的安装,直接到VNC官网上下载最新版的VNC Viewer即可。

6. 在VNC界面的操作下按照指引安装好操作系统。

腾讯云黑石物理集中跨VPC的PXE自动化安装自定义OS(虚拟机方案)_第2张图片

腾讯云黑石物理集中跨VPC的PXE自动化安装自定义OS(虚拟机方案)_第3张图片

腾讯云黑石物理集中跨VPC的PXE自动化安装自定义OS(虚拟机方案)_第4张图片

7. 如果需要安装多台虚拟机,可以使用克隆的方法来生成多台虚拟机,这样就避免了重复安装操作系统。

virt-clone -o dhcp1 -n dhcp2 -f /data/images/dhcp2.img


七,在每个虚拟机中重新配置网卡使其处于所需的子网。

1.安装软件vconfig

2.配置eth0

nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
USERCTL=no
IPV6INIT=no


3.将vlan的配置等加入到开机自启动的rc.local

nano /etc/rc.local
/sbin/modprobe -a 8021q
/sbin/vconfig add eth0 2098
ifconfig eth0.2098 10.1.5.4 netmask 255.255.255.0
/sbin/route add default gw 10.1.5.1


4.重启虚拟机

八,在虚拟机中部署PXE+DHCP的环境

该环节的具体步骤请参照“基于PXE的自动化安装OS”用户指引。

你可能感兴趣的:(云计算)