kvm字符界面自动化安装。

之前已经创建相关的目录

例如:

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

注意你的磁盘路径。以ks.cfg路径

#!bin/bash
#定义的变量
#目录名字方便调用路径
KVM_HOME=/home/kvm/

# 磁盘的路径(镜像位置)
KVM_ISO=${KVM_HOME}/data/CentOS-7-x86_64-Minimal-1708.iso

# ks.cfg的路径。在这之前已经编写好
KVM_KS_FILE=${KVM_HOME}/ks/ks.cfg

# 创建虚拟磁盘的位置
KVM_IMG_DIR=${KVM_HOME}/data


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


# 变量替换, 假如没有输入值, 就使用默认值
# ${变量a:-变量b} 如变量a没有值。则选择默认变量b 
VM_NAME=${VM_NAME:-$DEF_VM_NAME}
HOST_NAME=${HOST_NAME:-localhost.localdomain}
VCPUS=${VCPUS:-$DEF_VCPUS}
MEM_SIZE=${MEM_SIZE:-$DEF_MEM_SIZE}
DISK_SIZE=${DISK_SIZE:-$DEF_DISK_SIZE}
OS_VARIANT=${OS_VARIANT:-$DEF_OS_VARIANT}
new_disk=${KVM_IMG_DIR}/${VM_NAME}.qcow2


# 测试输出的内存
# 如果结尾不以G 结尾 数字开头的话。则输出不整存
if [[ ! "${DISK_SIZE}" =~ G$ ]] || [[ ! "${DISK_SIZE:0:1}" =~ ^[0-9]+$ ]]
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     ${OS_VARIANT} \
     --initrd-inject  "${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

脚本内容详细解释

  1. –arch 指定平台架构
  2. –virt-type 虚拟化类型 kvm 是最佳选择
  3. –name 虚拟机名称
  4. –memory 内存大小
  5. –vcpus cpu 核心数
  6. –os-type 操作系统类型
  7. –os-variant 发行版本,必须是 virt-install 规定好的
  8. –network 网络类型 default 是 NAT 类型的网络
  9. –graphics 是否使用 vnc 这个的 none 意思是不使用
  10. –location ISO 镜像文件路径
  11. –initrd-inject 内核注入,指定一个 ks.cfg 文件的路径,会把此文件主人到跟目录下
  12. –extra-args 额外的参数
  13. –disk 指定虚拟硬盘文件路径

ks=file:/ks.cfg 这个值不要变
console=ttyS0 表示使用 console 口控制服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值