pve中qm create/set命令介绍

这是创建和设置pve虚拟机配置的命令

因为参数差不多,所以就一起列出来。

首先看一个创建虚拟机的例子。

qm create 114 \
--agent 1 \
--machine q35 \
--ostype l26 \
--scsihw virtio-scsi-pci \
--serial0 socket \
--cores 2 --sockets 1 --cpu host \
--bios seabios  --boot cdn \
--net0 virtio,bridge=vmbr0 

可以看到qm create命令格式是这样的

qm create <vmid> --<option> <value>
qm set <vmid> --<option> <value>

如果一个<option>有多个<value>,需要使用英文逗号“,”隔开。

qm set 100 --net0 virtio,bridge=vmbr0,firewall=0

本篇文章也就是列出来 这个<option>内容

1、网络部分

qm set/create 100 --net[n] [model] [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]

举例

qm set 100 --net0 virtio,bridge=vmbr0,firewall=0
意思是设置网卡0,类型为virtio,桥街道vmbr0。关闭防火墙。

参数说明

--net[N] 
      这是一个option。N是整数,一般用序列。代表网卡序列

model
      网卡类型。e1000 | e1000-82540em | e1000-82544gc | e1000-82545em | i82551 | i82557b | i82559er | ne2k_isa | ne2k_pci | pcnet | rtl8139 | virtio | vmxnet3 
 
bridge=<bridge>
      bridge=vmbr[N].N代表桥接网卡的序号。
             
firewall=<1|0>
      防火墙是否开启。值为1则开启,0为关闭

link_down=<1|0>
     是否连接网卡,1为连接,0为端口。默认值为连接,所以一般不指定此项。
  
macaddr=<XX:XX:XX:XX:XX:XX>
     指定网卡的MAC地址

rate=<number> 
     限速。单位mbps。一般不指定这项

tag=<integer>]
     VLAN 标签

trunks=<vlanid[;vlanid...]> 
     trunk选项

<model>=<macaddr> 
     此项是model和mac的合集。可以不用上面的两个选项。直接这样设置。

在添加cloudinit之后,可以利用qm set命令指定ip

qm set 100 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1,ip6=dhcp
或者
qm set 100 --ipconfig0 ip=dhcp,ip6=dhcp
其中 ipconig<N>。N为网卡编号
设置dns
qm set 100 --nameserver 114.114.114.114
qm set 100 --searchdomain 114.114.114.114

2、基本硬件环境

2.1 主板类型

简化
--machine q35|i440fx
完整
--machine (pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)

2.2 CPU

--sockets <N>    //几个物理插槽
--vcpus <N>      //几个核心
--cpu <string>   //CPU类型 host | kvm64 | qemu64 等等
--cpulimit <0-128> //CPU限制
--cpuunits <2-262144> //CPU权重

2.3 其他信息

--bios seabios|ovmf  //选择是哪种bios类型
--boot cdn //启动顺序。cdrom  disk network 
--ostype  //l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win7 | win8 | wvista | wxp 
(注意前两个 一个是linux 2.4内核 一个是linux2.6内核以上,所以是字母小写L,不是1)
--agent 1  //开启qemu-guest-agent
--name vmname  //虚拟机名称
--scsihw virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | lsi53c810 |lsi //磁盘控制器类型
--serial<N> (/dev/.+|socket) //增加串口,N=0-3。一般指定串口0,类型为socket。此项对于需要串口情况非常有用,例如cloudinit。

3、硬盘参数

--scsi<N> [pool]:[size]       //其中N为scsi序号,从0开始。pool为储存池名称,例如local-lvm,[size]是硬盘大小,不需要指定磁盘名,系统创建。
例: qm create 100 --scsi0 local-lvm:40
创建虚拟机100,并且在local-lvm上创建一个40G的scsi磁盘。
--ide<N> [pool]:[size]  //ide磁盘
--sata<N> [pool]:[size] //sata磁盘

4、cloud-init

cloudinit常用于公有云中。

需要虚拟机有cloud drive

#创建cloud drive
qm set 100 --ide2 local-lvm:cloudinit //注意,cloudinit的ide必须大于2。应该是bug吧。

设置cloudinit基本属性

qm set 100 --sshkey ~/.ssh/id_rsa.pub               //设置ssh
qm set 100 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1  //设置ip
qm set 100 --cipassword:foxi123456 --ciuser:root //设置用户和密码。注意密码在设置之后,会自动隐藏。

当然既然是cloudinit,就和openstak接轨。

同样支持自定义cloudinit参数。

引号里的,可以单独指定一项。指定了哪个部分就会覆盖上面的基本属性。
qm set 9000 --cicustom "user=<volume>,network=<volume>,meta=<volume>"
例如指定了user环节的参数,那么上面的user属性就失效,根据自定义参数来。
qm set 9000 --cicustom "user=local:snippets/userconfig.yaml"
这里官方是建议用户把yaml文件放在snippets文件夹下。
yaml必须符合cloudinit规范和语法规范

官方提供的cloud-init,user模块只有用户账密模块。可以自己修改脚本文件,添加新的选项,例如package-Update-Upgrade-Install模块。让cloudinit开机自动安装升级程序。

z修改脚本文件
cp /usr/share/perl5/PVE/QemuServer/Cloudinit.pm /usr/share/perl5/PVE/QemuServer/Cloudinit.pm_backup
nano /usr/share/perl5/PVE/QemuServer/Cloudinit.pm

在cloudinit_userdata部分,return $content;之前
添加内容

 $content .= "packages: \n";
 $content .= "  - qemu-guest-agent\n";
    return $content;
}
修改之后,重启服务器。即可生效

暂时就这些内容。建议参照vm的配置文件自己研究下。

下面贴出一个样式,。

qm create 110 \
--agent 1 \
--machine q35 \
--ostype l26 \
--scsihw virtio-scsi-pci \
--serial0 socket \
--cores 2 --sockets 1 --cpu host \
--bios seabios  --boot cdn \
--net0 virtio,bridge=vmbr0 \
--ide2  nvme1:cloudinit \
--name qmcreate \
--cipassword foxi123456 --ciuser root 

在官方wiki。可以查看更多的详细内容。

https://pve.proxmox.com/pve-docs/qm.1.html

关于cloudinit模块,可以参考。注意切换版本号。

https://cloudinit.readthedocs.io/en/latest/index.html

版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/577.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
分享
二维码
海报
pve中qm create/set命令介绍
简单的叙述下,pve的qm set和config命令。例如qm 设置硬盘,qm set --scsi0 local-lvm:10。又如设置cloudinit组件,qm set --ide2 local-lvm:cloudinit
<<上一篇
下一篇>>