首页 > 其他分享 >pve配置虚机模板(自动配置IP)

pve配置虚机模板(自动配置IP)

时间:2023-10-09 17:38:10浏览次数:36  
标签:-- IP vm pve 虚机 qm id cloud

安装好Centos虚机系统,进行标准化配置,最后安装cloud-init,如下:

yum -y install qemu-guest-agent

yum -y install cloud-init

systemctl enable cloud-init-local.service
systemctl start cloud-init-local.service
systemctl enable cloud-init.service
systemctl start cloud-init.service
systemctl enable cloud-config.service
systemctl start cloud-config.service
systemctl enable cloud-final.service
systemctl start cloud-final.service

cloud-init init --local  #检查是否可用

 配置完成后关机,删除硬件网卡,添加 Cloud-Init 硬件,然后转换为模板

 qm set 1003 --ide2 local-lvm:cloudinit

 

 

 

通过模板克隆新的虚机,自动配置IP,脚本如下:

#!/bin/bash
#Function:Clone 1 vm from template
host='10.10.20.11'
vmname='vmtest02'
cpu_cores=8
memory_size=16384
ip='10.10.26.21'
vlanid=26
description='description'

#get vm max id
pve_id_max=`qm list |awk '{print $1}' |tail -n 1`
pve_vm_id=`expr $pve_id_max + 1`

#get cpu cores every cpu socket
cpu_cores_1=`expr $cpu_cores / 2`
storage=`echo $host |awk -F . '{print "dir-"$4}'`
ip_netmask="$ip/24"
gateway=`echo $ip |awk -F . '{print $1"."$2"."$3".254"}'`
vm_hostname="$vmname-$ip"

#clone vm from template(100)
qm clone 100 $pve_vm_id --name $vmname --full --format qcow2 --storage $storage

#configure vm cpu cors and memory size
if [ $cpu_cores -ne 4 -a $memory_size -ne 8192 ];then
  qm set $pve_vm_id --memory $memory_size --sockets 2 --cores $cpu_cores_1
fi

#configure vm description
if [ $description ];then 
  qm set $pve_vm_id --description=$description
fi


qm set $pve_vm_id -net0  e1000,bridge=vmbr1,firewall=1,tag=$vlanid
qm set $pve_vm_id  --ipconfig0 ip=$ip_netmask,gw=$gateway

echo 'Start and init vm for about 5 minutes...'
#删除clould-init硬件,修改虚机名称
qm start $pve_vm_id
sleep 300
qm stop $pve_vm_id
sleep 2
qm set $pve_vm_id --delete ide2
sleep 2
qm set $pve_vm_id --name $vm_hostname
qm start $pve_vm_id

 

标签:--,IP,vm,pve,虚机,qm,id,cloud
From: https://www.cnblogs.com/dreamer-fish/p/17752251.html

相关文章

  • 智慧安防AI视频智能分析云平台EasyCVR加密机授权小tips
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集......
  • 电表DLT645转BACnet /IP协议网关
    DLT645、IEC104协议、JAE1939协议和BACnetMS/TP协议都是在智能建筑和楼宇自动化领域中常用的通信协议。为了更好地实现不同系统之间的数据交互,将这三种协议转换为BACnetMS/TP协议的网关越来越受到关注。DLT645、IEC104协议和JAE1939协议与BACnetMS/TP协议之间的转换主要是将源协......
  • 在Eclipse中使用Maven 2.x指南
    1.Maven2RepositoryEclipse需要知道Maven的本地仓库的路径。所以,类路径变量M2_REPO必须设置。执行以下命令:mvn-Declipse.workspace=<path-to-eclipse-workspace>eclipse:add-maven-repo 你也可以在eclipse内定义一个新的classpath变量:从菜单条,选择Window>Preferences,选择jav......
  • httpclient上传图片(multipart/form-data)
    stringboundary=string.Format("----WebKitFormBoundary{0}",DateTime.Now.Ticks.ToString("x"));MultipartFormDataContentcontent=newMultipartFormDataContent(boundary);content.Headers.ContentType=Me......
  • 学到了,原来 gzip 是种`连续分块`的压缩算法
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯我想要表述的是:假设有10mb的数据使用gzip算法来压缩。有这样可能的做法:分配10mb的缓冲区,一次压缩10mb分配1mb的缓冲区,每次压缩1mb,分为十次压缩如果压......
  • 编辑linux服务启动命令(app-script.sh命令编写)
    #!/bin/sh#注:这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=app-biz.jar#使用说明,用来提示输入参数usage(){echo"Usage:sh脚本名.sh[start|stop|restart|status]"exit1}#检查程序是否在运行is_exist(){pid=`ps-ef|grep$APP_NAME|grep-vgrep|awk'{print......
  • k8s修改集群IP--重置集群
     原来IP地址192.168.10.138k8s-master192.168.10.139k8s-node1192.168.10.140k8s-node2新IP地址192.168.10.148k8s-master192.168.10.149k8s-node1192.168.10.150k8s-node2cp-Rf/etc/kubernetes//etc/kubernetes-bakpki证书目录保留下来:rm-rf/etc/kuberne......
  • 利用 Javascript 生成数字序列
    <!DOCTYPEhtml><html><head><title>生成数字序列</title></head><body><h1>Element对象之innerHTML属性</h1><pid="demo"onclick="myFunction()">点击生成数字序列</p><script>funct......
  • k8s修改集群IP--不重置集群
    正常在用集群想要更换ip master节点ip192.168.10.138改为192.168.10.148node1节点ip192.168.10.139改为192.168.10.149node2节点ip192.168.10.140改为192.168.10.150master节点1)执行脚本1233.sh 1233.sh内容如下:#master节点exportoldip1=192.168.10.138expor......
  • [894] Optimize arcpy scripts
    ref:ParallelProcessingFactor(Environmentsetting)ref:WritegeoprocessingoutputtomemoryParallelprocessingarcpy.env.parallelProcessingFactor=24Writegeoprocessingoutputtomemory......