kvm部署虚拟机

创建虚拟磁盘
qemu-img create -f qcow2 /home/kvm/data/kube-master.qcow2 50G

创建虚机机脚本

vim kvm.sh
#!/usr/bin/env bash
set -ue
set -o pipefail

创建相关目录

ls /home/kvm/{ks,virtualhost,virtual-img} 1>/dev/null 2>&1 || mkdir -p /home/kvm/{ks,virtualhost,virtual-img}

此程序的变量

KVM_HOME=/home/kvm
KVM_ISO= K V M H O M E / i s o / C e n t O S − 7 − x 8 6 6 4 − M i n i m a l . i s o K V M K S F I L E = {KVM_HOME}/iso/CentOS-7-x86_64-Minimal.iso KVM_KS_FILE= KVMHOME/iso/CentOS7x8664Minimal.isoKVMKSFILE={KVM_HOME}/ks/ks.cfg
KVM_IMG_DIR=${KVM_HOME}/virtual-img

OS_TYPE=“linux”
DEF_OS_VARIANT=“rhel7”
DEF_VM_NAME=“centos$(date +%Y%m%dT%H%M%S)”

设置默认内存大小 1024 M,这个单位是固定的 M,不支持其他单位

DEF_MEM_SIZE=1024
DEF_VCPUS=1
DEF_DISK_SIZE=10G

交互式安装

echo “输入将要创建的KVM虚拟机名称,不是主机名哦”
read -p “默认值${DEF_VM_NAME}>>:” VM_NAME

echo “输入将要创建的服务器主机名”
read -p “默认 localhost>>:” HOST_NAME

read -p “输入虚拟机 CPU 核心数默认 1 示例:2>>:” VCPUS

echo “输入虚拟机内存大小,默认1024M,不支持其他单位”
read -p “只需要添数字即可>>:” MEM_SIZE

echo “输入虚拟机使用的磁盘容量”
read -p “默认 10G,[示例写法:15G]>>:” DISK_SIZE

变量替换, 假如没有输入值, 就使用默认值

VM_NAME=KaTeX parse error: Expected '}', got 'EOF' at end of input: {VM_NAME:-DEF_VM_NAME}
HOST_NAME=${HOST_NAME:-localhost.localdomain}

VCPUS=KaTeX parse error: Expected '}', got 'EOF' at end of input: {VCPUS:-DEF_VCPUS}
MEM_SIZE=KaTeX parse error: Expected '}', got 'EOF' at end of input: {MEM_SIZE:-DEF_MEM_SIZE}
DISK_SIZE=KaTeX parse error: Expected '}', got 'EOF' at end of input: {DISK_SIZE:-DEF_DISK_SIZE}
OS_VARIANT=KaTeX parse error: Expected '}', got 'EOF' at end of input: {OS_VARIANT:-DEF_OS_VARIANT}

new_disk= K V M I M G D I R / {KVM_IMG_DIR}/ KVMIMGDIR/{VM_NAME}.qcow2

if [[ ! " D I S K S I Z E " =   G {DISK_SIZE}" =~ G DISKSIZE"= G ]] || [[ ! " D I S K S I Z E : : − 1 " =   [ 0 − 9 ] + {DISK_SIZE::-1}" =~ ^[0-9]+ DISKSIZE::1"= [09]+ ]]
then
echo “格式不正确,正确示例:20G”
exit
fi

if [ ! -f “${new_disk}” ];then
qemu-img create -f qcow2 ${new_disk} ${DISK_SIZE}
fi

开始创建

virt-install -v
–arch x86_64 --virt-type kvm
–name ${VM_NAME}
–memory ${MEM_SIZE}
–vcpus ${VCPUS}
–os-type ${OS_TYPE}
–location ${KVM_ISO}
–network default
–graphics none
–os-variant KaTeX parse error: Undefined control sequence: \ at position 14: {OS_VARIANT} \̲ ̲ --initrd-i…{KVM_KS_FILE}"
–extra-args “ks=file:/ks.cfg
console=tty0 console=ttyS0,115200n8
hostname=${HOST_NAME}”
–disk ${new_disk},cache=writeback,io=threads,bus=virtio

桥接模式,前提是你已经建立好了网桥

–network bridge=br0 \

end

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值