kvm创建虚拟机脚本
时间: 2023-11-15 22:54:35 浏览: 216
以下是一个使用KVM创建虚拟机的脚本示例:
```
#!/bin/bash
name="my-vm"
memory="2048"
vcpus="2"
disksize="20G"
iso="/var/lib/libvirt/images/ubuntu-20.04.1-live-server-amd64.iso"
network="default"
virt-install --name $name \
--ram $memory \
--vcpus $vcpus \
--disk size=$disksize \
--cdrom $iso \
--network network=$network \
--graphics vnc \
--noautoconsole
```
这个脚本将创建一个名为"my-vm"的虚拟机,分配2GB内存和2个虚拟CPU,使用20GB的磁盘空间,安装Ubuntu 20.04.1操作系统,并将虚拟机连接到默认网络。
相关问题
写一个kvm创建虚拟机的脚本
### 回答1:
脚本如下:#!/bin/bash# 定义虚拟机名称
VM_NAME="新虚拟机"# 定义虚拟机内存大小
MEMORY_SIZE="2048"# 定义虚拟机磁盘大小
DISK_SIZE="20G"# 定义网络连接
NETWORK_TYPE="bridge"# 创建虚拟机
sudo virt-install \
--name $VM_NAME \
--ram $MEMORY_SIZE \
--disk path=/var/lib/libvirt/images/$VM_NAME.img,size=$DISK_SIZE \
--vcpus 2 \
--os-type linux \
--network type=$NETWORK_TYPE \
--graphics none \
--console pty,target_type=serial \
--location 'http://mirrors.ustc.edu.cn/centos/7/os/x86_64' \
--extra-args 'console=ttyS0,115200n8 serial'
### 回答2:
创建KVM虚拟机的脚本可以使用Shell编写,以下是一个简单的示例:
```bash
#!/bin/bash
# 定义虚拟机名称和镜像文件名
vm_name="my-vm"
image_file="ubuntu-20.04.qcow2"
# 定义虚拟机参数
ram="2048" # 内存大小,单位:MB
vcpus="2" # 虚拟CPU数量
disk_size="20G" # 磁盘大小,例如:20G
network_bridge="br0" # 网络桥接接口
# 创建虚拟机镜像
qemu-img create -f qcow2 "$vm_name.qcow2" "$disk_size"
# 安装虚拟机操作系统
virt-install \
--name "$vm_name" \
--ram "$ram" \
--vcpus "$vcpus" \
--os-type linux \
--os-variant ubuntu20.04 \
--disk path="$vm_name.qcow2",device=disk,bus=virtio,format=qcow2 \
--network bridge="$network_bridge" \
--graphics none \
--console pty,target_type=serial \
--location "http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/" \
--extra-args "console=ttyS0,115200n8 serial"
# 启动虚拟机
virsh start "$vm_name"
```
使用上述脚本,你可以通过修改`vm_name`、`image_file` 以及其他参数来适应你的需求。脚本通过`qemu-img`创建虚拟机镜像文件,并使用`virt-install`安装虚拟机操作系统。最后,使用`virsh start`命令启动虚拟机。
记得在执行脚本前,保证你已经安装了必要的软件,例如QEMU和libvirt。此外,你可能需要根据具体环境调整脚本中的参数。如果需要更详细或特定的功能,你可以查阅相关文档或在脚本中添加额外的配置选项。
### 回答3:
以下是一个使用KVM创建虚拟机的简单脚本示例:
```
#!/bin/bash
# 定义虚拟机名称和镜像文件路径
vm_name="my_vm"
image_path="/path/to/my_image.img"
# 检查虚拟机是否已经存在
if virsh list --all | grep -q $vm_name; then
echo "虚拟机已经存在"
exit 1
fi
# 创建虚拟机磁盘文件
echo "创建虚拟机磁盘文件..."
qemu-img create -f qcow2 $image_path 10G
# 使用镜像文件创建虚拟机定义文件
echo "使用镜像文件创建虚拟机定义文件..."
cat << EOF > /etc/libvirt/qemu/$vm_name.xml
<domain type='kvm'>
<name>$vm_name</name>
<memory unit='KiB'>4194304</memory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
<boot dev='hd'/>
</os>
<devices>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='$image_path'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<interface type='network'>
<mac address='52:54:00:12:34:56'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
</devices>
</domain>
EOF
# 定义虚拟机
echo "定义虚拟机..."
virsh define /etc/libvirt/qemu/$vm_name.xml
# 启动虚拟机
echo "启动虚拟机..."
virsh start $vm_name
# 显示虚拟机信息
echo "虚拟机信息:"
virsh dominfo $vm_name
# 完成
echo "虚拟机创建完成."
exit 0
```
以上脚本通过使用`qemu-img create`创建虚拟机的磁盘文件,并使用创建的磁盘文件路径生成虚拟机定义文件`$vm_name.xml`。然后,使用`virsh define`命令定义虚拟机,并使用`virsh start`命令启动虚拟机。最后,使用`virsh dominfo`命令显示虚拟机的信息。
请注意,这仅仅是一个基本的示例,如果您在实际使用中需要更多的配置和定制,您可能需要对脚本进行适当的修改。
KVM批量克隆虚拟机脚本
KVM(Kernel-based Virtual Machine)是一个开源的虚拟化技术,它允许你在Linux内核上创建、管理和运行虚拟机。批量克隆虚拟机脚本通常是指自动化脚本来快速生成大量相似配置的虚拟机,以简化部署过程。以下是一个简单的步骤和可能的bash脚本示例:
1. **安装必要的工具**:首先需要QEMU-KVM、libvirt等库以及virsh命令行工具。
```bash
sudo apt-get update && sudo apt-get install qemu-kvm libvirt-daemon libvirt-clients virt-install
```
2. **编写克隆模板**:创建一个基础虚拟机模板,然后保存为xml文件。这包含了虚拟机的基本配置,如CPU、内存、磁盘和网络设置。
```bash
virt-n base_template --ram 2048 --vcpus=2 --disk path=/path/to/disk,size=10G --file-format=qcow2 --network bridge=virbr0 -o template.xml
```
3. **克隆脚本**:创建一个bash script,使用`virsh clone`命令并传入模板和目标名称,可以循环遍历列表来批量复制。
```bash
#!/bin/bash
# 克隆源和目标目录
SOURCE_DIR="/path/to/templates"
DESTINATION_DIR="/path/to/destinations"
# 虚拟机列表
VMS=["vm1", "vm2", "vm3"]
for vm in "${VMS[@]}"; do
virsh clone ${SOURCE_DIR}/template.xml ${DESTINATION_DIR}/${vm} --connect=qemu:///system --live
done
```
4. **运行脚本**:给脚本赋予执行权限并运行,所有指定的虚拟机将会被克隆到目的地。
```bash
chmod +x create-vms.sh
./create-vms.sh
```
阅读全文