当前位置: 首页 > wzjs >正文

商业网站的创建程序延吉网站优化

商业网站的创建程序,延吉网站优化,二手车网站怎么做,网站建设可行性分析表自动化KVM虚拟机创建脚本详解:从模板到高效部署的线上实践 以下是包含详细步骤解释的完整脚本及说明文档 vim kvm-vm-creator.sh #!/bin/bash# -------------------------- # 📌 环境配置与全局变量 # -------------------------- # 设置关键路径和基…

自动化KVM虚拟机创建脚本详解:从模板到高效部署的线上实践

以下是包含详细步骤解释的完整脚本及说明文档

vim kvm-vm-creator.sh
#!/bin/bash# --------------------------
# 📌 环境配置与全局变量
# --------------------------
# 设置关键路径和基础配置(可根据环境修改)
export IMG_DIR="/data1/qcow_images"    # 虚拟机磁盘存储目录(需提前创建)
export XML_DIR="/etc/libvirt/qemu"      # 虚拟机XML配置模板目录
BASE_VM="base-centos79"                # 基础模板名称(需与实际模板名一致)
VM_PREFIX="centos79-node"              # 新建虚拟机名称前缀
MAC_PREFIX="52:54:00"                  # 合规MAC地址前缀(QEMU官方OUI)# --------------------------
# 🔧 预检与依赖检查
# --------------------------
check_prerequisites() {# 检查关键命令是否存在command -v qemu-img >/dev/null 2>&1 || { echo -e "\n❌ 错误:未安装qemu-img工具"; exit 101; }command -v virsh >/dev/null 2>&1 || { echo -e "\n❌ 错误:未安装libvirt管理工具"; exit 102; }# 验证存储目录权限[ -w "$IMG_DIR" ] || { echo -e "\n❌ 错误:无写入权限 $IMG_DIR"; exit 103; }# 确认模板文件存在[ -f "${XML_DIR}/${BASE_VM}.xml" ] || { echo -e "\n❌ 错误:未找到模板配置文件 ${XML_DIR}/${BASE_VM}.xml"echo "请先创建基础模板并导出XML配置"exit 104 }
}# --------------------------
# 🖥 用户交互模块
# --------------------------
get_vm_number() {local inputwhile true; do# 输入提示(带颜色高亮)read -p "$(echo -e "\n\e[33m请输入虚拟机编号(1-250): \e[0m")" input# 数字验证[[ "$input" =~ ^[0-9]+$ ]] || { echo -e "\n⚠️ 警告:必须输入纯数字"continue }# 范围检查(( input >=1 && input <=250 )) && breakecho -e "\n⚠️ 警告:范围限制为1-250"doneecho "$input"  # 返回有效编号
}# --------------------------
# ⚙️ 核心创建流程
# --------------------------
create_vm() {local vm_num=$1local new_vm="${VM_PREFIX}${vm_num}"local tmp_xml="/tmp/${new_vm}.xml"# 阶段1:磁盘镜像准备echo -n "⏳ 正在创建差异磁盘镜像... "if ! qemu-img create -f qcow2 -b "${IMG_DIR}/${BASE_VM}.qcow2" \"${IMG_DIR}/${new_vm}.qcow2" &>/dev/null; thenecho -e "\n❌ [错误] 磁盘创建失败,请检查存储空间"return 1fiecho -e "\n\e[32m✅ [完成] 磁盘创建成功\e[0m"# 阶段2:配置文件生成echo -n "⏳ 正在生成虚拟机配置... "cp "${XML_DIR}/${BASE_VM}.xml" "$tmp_xml"  # 复制模板# 批量替换关键标识(使用sed正则替换)sed -i "s|${BASE_VM}|${new_vm}|g" "$tmp_xml"sed -i "s|<uuid>.*</uuid>|<uuid>$(uuidgen)</uuid>|" "$tmp_xml"# 生成合规MAC地址(保留QEMU官方OUI前缀)local mac_suffix=$(tr -dc '0-9a-f' < /dev/urandom | head -c 6 | sed 's/\(..\)/\1:/g; s/:$//')local new_mac="${MAC_PREFIX}:${mac_suffix}"# 更新MAC地址(精确匹配模板中的mac标签)sed -i "s|<mac address='..:..:..:..:..:..'/>|<mac address='${new_mac}'/>|" "$tmp_xml"# 阶段3:注册虚拟机到libvirtecho -n "⏳ 正在注册虚拟机配置... "if ! virsh define "$tmp_xml" &>/dev/null; thenecho -e "\n❌ [错误] 虚拟机注册失败,请检查libvirt服务状态"# 失败回滚:清理残留文件rm -f "${IMG_DIR}/${new_vm}.qcow2" "$tmp_xml"return 1fiecho -e "\n\e[32m✅ [完成] 虚拟机注册成功\e[0m"# 最终确认信息echo -e "\n\e[34;1m🎉 虚拟机创建成功!\e[0m"echo "🖥 名称: ${new_vm}"echo "💾 磁盘路径: ${IMG_DIR}/${new_vm}.qcow2"echo "⚙️ 配置预览: $(virsh dumpxml ${new_vm} | grep '<source file')"echo "🌐 MAC地址: ${new_mac}"
}# --------------------------
# 🚀 主执行流程
# --------------------------
main() {echo -e "\n\e[36m🚀 启动KVM虚拟机自动化创建流程\e[0m"check_prerequisites    # 执行环境检查VM_NUMBER=$(get_vm_number)  # 获取用户输入create_vm "$VM_NUMBER"     # 执行创建流程
}# --------------------------
# 🔌 程序入口
# --------------------------
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; thenmain "$@"
fi

📝 完整流程解析

1. 环境配置阶段

  • 变量定义:通过全局变量集中管理关键路径和配置,便于快速适配不同环境

  • OUI前缀:使用QEMU官方分配的MAC地址前缀(52:54:00),确保网络兼容性

2. 预检机制

  • 依赖检查:验证qemu-imgvirsh命令可用性

  • 权限验证:确保对镜像存储目录有写入权限

  • 模板检查:确认基础模板XML文件存在

3. 用户交互

  • 输入验证

    • 正则表达式匹配纯数字输入

    • 数值范围限制(1-250)

    • 循环输入直到获得有效值

4. 磁盘创建

  • 写时复制技术:基于-b参数创建差异磁盘,节省存储空间

  • 静默模式&>/dev/null抑制命令行输出

  • 错误处理:创建失败时自动终止流程

5. 配置生成

  • 模板继承:复制基础XML配置文件

  • 关键替换

    • 虚拟机名称替换(sed全局替换)

    • UUID生成(uuidgen系统命令)

    • MAC地址生成(保留OUI前缀的随机后缀)

  • 精准替换:使用XML标签定位确保替换准确性

6. 注册流程

  • 持久化配置virsh define将配置写入libvirt

  • 失败回滚

    • 删除残留磁盘文件

    • 清理临时XML文件

    • 返回非零退出码

7. 结果反馈

  • 彩色输出:使用ANSI转义码实现状态可视化

  • 信息汇总:显示关键虚拟机信息

  • 后续指导:提示常用管理命令

🛠 使用指南

1. 环境准备

# 创建存储目录
mkdir -p /data1/qcow_images# 准备基础模板
# 1. 创建基础虚拟机并安装系统
# 2. 关机后转换为qcow2格式
qemu-img convert -O qcow2 -p /var/lib/libvirt/images/base-centos79.qcow2 \
/data1/qcow_images/base-centos79.qcow2# 导出模板XML配置
virsh dumpxml base-centos79 > /etc/libvirt/qemu/base-centos79.xml

2. 执行创建

chmod +x kvm-vm-creator.sh
sudo ./kvm-vm-creator.sh
# 按提示输入编号(例如:42)

3. 验证结果

virsh list --all          # 查看虚拟机列表
virsh domblklist centos79-node42  # 查看磁盘信息
virsh domifaddr centos79-node42   # 查看网络配置

该脚本通过模块化设计和详细错误处理,实现了从磁盘创建到配置注册的全自动化流程。


文章转载自:

http://8ocyS8b4.snzgg.cn
http://J89a7kLr.snzgg.cn
http://QzXXrrqy.snzgg.cn
http://XrQLHkcX.snzgg.cn
http://du0ltQPc.snzgg.cn
http://GGj37lQq.snzgg.cn
http://9srGhGBG.snzgg.cn
http://4YX95an1.snzgg.cn
http://dcojTu99.snzgg.cn
http://4bBYzsTj.snzgg.cn
http://JzcaKgIJ.snzgg.cn
http://Wqz5SQOv.snzgg.cn
http://sT922XXY.snzgg.cn
http://qeBLcyz3.snzgg.cn
http://QHupeQP9.snzgg.cn
http://e3xnk5U3.snzgg.cn
http://zNKpG5FZ.snzgg.cn
http://tAlI1ZLV.snzgg.cn
http://F8kCmSLi.snzgg.cn
http://cdcEqOwa.snzgg.cn
http://I25NzkMb.snzgg.cn
http://KI6fmzT1.snzgg.cn
http://7OaLYdO1.snzgg.cn
http://hYEku4hT.snzgg.cn
http://MNgwMHFq.snzgg.cn
http://umOB2OWC.snzgg.cn
http://9YbqwnMa.snzgg.cn
http://GJ47KA98.snzgg.cn
http://xXmKNQFG.snzgg.cn
http://XtNRpUq8.snzgg.cn
http://www.dtcms.com/wzjs/638748.html

相关文章:

  • ip网站查询服务器做一个网站要注意什么
  • 网站开发的工作需要什么材料怎么联系百度推广
  • seo企业站收录黄石做网站
  • 移动端网站如何优化福州室内设计公司排名
  • 万网如何上传网站课程网站开发的研究现状
  • 在哪里创建网站烟台网站建设企汇互联见效付款
  • 一个网站可以做多个描述吗h5页面制作软件手机版
  • 学美工难吗优化seo设置
  • 做前端网站要注意哪些网页游戏排行大全
  • 云企网站建设开发宝付网络科技上海有限公司
  • 沈阳网站制作的公司哪家好做网站找哪家公司比较好
  • 北京建设厅网站查询购物网站开发 书籍
  • 模板类网站建设米兰网的网络营销是什么
  • 响应式网站 框架石家庄代运营公司
  • 国家城乡住房建设部网站404黄台软件平台
  • 做个网站好还是做淘宝好全球有多少亿人口
  • 蜘蛛云建网站怎样wordpress polling
  • 肯德基网站建设的目标正规网站开发流程
  • 丰台周边网站建设网站icp备案信息注册
  • 北京网站建设公司分形科技系统设置友情链接有什么作用
  • 门户网站开发使用什么语言wordpress 参数
  • 哈尔滨 做网站公司php网站开发需求文档
  • 北京住房与城乡建设厅网站首页爱站网seo工具包
  • 企业网站推广平台橙色网站欣赏
  • 广州建站优化宝安建网站公司
  • 咸阳企业网站设计开发制作php网站授权
  • 三门县住房和城乡建设规划局网站好的企业型网站模板
  • 黄图网站有哪些 推荐天津首页
  • 找做cad彩拼的网站汽车配件外贸网站
  • 网站的运营维护企业网站建设的公司