cfg格式_kvm

#!/usr/bin/env bash

set -ue

set -o pipefail

# 創(chuàng)建相關(guān)目錄

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=${KVM_HOME}/iso/CentOS-7-x86_64-Minimal-1708.iso

KVM_KS_FILE=${KVM_HOME}/ks/ks.cfg

KVM_IMG_DIR=${KVM_HOME}/virtual-img

KVM_HOST_DIR=${KVM_HOME}/virtualhost

OS_TYPE="linux"

DEF_OS_VARIANT="rhel7"

DEF_VM_NAME="centos$(date +%Y%m%dT%H%M%S)"

# 設(shè)置默認(rèn)內(nèi)存大小 1024 M,這個(gè)單位是固定的 M,不支持其他單位

DEF_MEM_SIZE=1024

DEF_VCPUS=1

DEF_DISK_SIZE=10G

#? 交互式安裝

echo? "輸入將要?jiǎng)?chuàng)建的KVM虛擬機(jī)名稱,不是主機(jī)名哦"

read -p "默認(rèn)值${DEF_VM_NAME}>>:" VM_NAME

echo? "輸入將要?jiǎng)?chuàng)建的服務(wù)器主機(jī)名"

read -p "默認(rèn) localhost>>:"? HOST_NAME

read -p "輸入虛擬機(jī) CPU 核心數(shù)默認(rèn) 1 示例:2>>:" VCPUS

echo "輸入虛擬機(jī)內(nèi)存大小,默認(rèn)1024M,不支持其他單位"

read -p "只需要添數(shù)字即可>>:" MEM_SIZE

echo "輸入虛擬機(jī)使用的磁盤容量"

read -p "默認(rèn) 10G,[示例寫法:15G]>>:"? DISK_SIZE

# 變量替換, 假如沒有輸入值, 就使用默認(rèn)值

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

if [[ ! "${DISK_SIZE}" =~ G$ ]] || [[ ! "${DISK_SIZE::-1}" =~ ^[0-9]+$ ]]

then

? ? echo "格式不正確,正確示例:20G"

? ? exit

fi

if [ ! -f "${new_disk}" ];then

? ? qemu-img create -f qcow2 ${new_disk} ${DISK_SIZE}

fi

# 開始創(chuàng)建

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

# 橋接模式,前提是你已經(jīng)建立好了網(wǎng)橋

#? ? --network bridge=virbr0 --network bridge=docker0 \

# end

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容