kvm利用脚本创建一个新的虚拟机 —— 筑梦之路

1. 脚本文件

#!/usr/bin/env bash
# 创建虚拟机
## 2021/3/28kvm_install(){set -ueset -o pipefail# 创建相关目录ls /home/kvm/{ks,virtualhost,virtual-img} 1>/dev/null 2>&1 || mkdir -p /home/kvm/{virtualhost,virtual-img}# 此程序的变量KVM_HOME=/home/kvmKVM_ISO=${KVM_HOME}/iso/centos7.isoKVM_KS_FILE=${KVM_HOME}/ks.cfgKVM_IMG_DIR=${KVM_HOME}/virtual-imgOS_TYPE="linux"DEF_OS_VARIANT="rhel7"DEF_VM_NAME="centos$(date +%Y%m%dT%H%M%S)"# 设置默认内存大小 1024 M,这个单位是固定的 M,不支持其他单位DEF_MEM_SIZE=1024DEF_VCPUS=1DEF_DISK_SIZE=10G#  交互式安装echo  "输入将要创建的KVM虚拟机名称,不是主机名哦"read -p "默认值${DEF_VM_NAME}>>:" VM_NAMEecho  "输入将要创建的服务器主机名"read -p "默认 localhost>>:"  HOST_NAMEread -p "输入虚拟机 CPU 核心数默认 1 示例:2>>:" VCPUSecho "输入虚拟机内存大小,默认1024M,不支持其他单位"read -p "只需要添数字即可>>:" MEM_SIZEecho "输入虚拟机使用的磁盘容量"read -p "默认 10G,[示例写法:15G]>>:"  DISK_SIZE# 变量替换, 假如没有输入值, 就使用默认值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}.qcow2if [[ ! "${DISK_SIZE}" =~ G$ ]] || [[ ! "${DISK_SIZE::-1}" =~ ^[0-9]+$ ]]thenecho "格式不正确,正确示例:20G"exitfiif [ ! -f "${new_disk}" ];thenqemu-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}

2. 自动应答文件

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
# md5 加密的密码 123
rootpw --iscrypted  $6$dQz7gaBT$IjteQ2XRZmBJD1usRqFv4yaD1Z2UbO2XBCJ8fndZlertVu2DUgsD7K9QDt7k2M5U3usWEc6HN8W0WpowiPo28/
# 系统语言
#lang zh_CN.UTF-8
lang en_US# System authorization information
auth  --useshadow  --passalgo=sha512
# Use CDROM installation media
#cdrom# Use text mode install
# 使用字符界面安装操作系统
text# Do not configure the X Window System
# 不配置图形界面系统
skipx# SELinux configuration
selinux --disabled# Firewall configuration
firewall --disabled# 设置动态获取 IP
network  --bootproto=dhcp --device=eth0 --onboot=on# 设置静态 IP
# network  --bootproto=static --device=eth0 --gateway=192.168.122.1 --ip=192.168.122.100 --nameserver=192.168.122.1 --netmask=255.255.255.0 --activate# 系统安装完成后 重启系统
#halt
reboot# System timezone 系统时区
timezone Asia/Shanghai# System services  系统启动时候自动启动的服务
services --enable="chronyd"# System bootloader configuration
#系统启动引导方式 vda 是kvm 虚拟机时候的第块磁盘名称
bootloader --location=mbr --boot-drive=vda# 清除主引导记录
zerombr# 删除原来的分区和磁盘标签
clearpart --all --initlabel# 磁盘分区信息,这里采用的是 lvm 自动分区
autopart --type=lvm# 下面是自定义分区
#part /boot --fstype="xfs" --ondisk=vda --size=200
#part / --fstype="xfs" --ondisk=vda --size=10040
#part /var --fstype="xfs" --ondisk=vda --size=2048
#part /home --fstype="xfs" --ondisk=vda --size=2048# 安装软件
%packages
@^minimal
@core
chrony
%end# 禁用 kdump
%addon com_redhat_kdump --disable --reserve-mb='auto'%end# 用户密码策略
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

搜集自网络

原文:利用脚本界面创建一个新的虚拟机 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

winpcap设备名

接口定义&#xff1a; #include <pcap/pcap.h> char errbuf[PCAP_ERRBUF_SIZE]; pcap_t *pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *errbuf);其中的device构造如下&#xff1a; 调用GetAdaptersInfo&#xff0c;返回值中的Adapt…

Linux 系统日志

系统日志类型 /var/log/syslog&#xff1a;系统日志&#xff0c;记录所有系统事件。/var/log/messages&#xff1a;系统消息&#xff0c;记录所有系统消息&#xff0c;包括启动信息、错误和警告信息。/var/log/auth.log&#xff1a;认证日志&#xff0c;记录所有认证事件&…

CPU生产的生命周期 - 原材料篇

CPU是中央处理器的缩写&#xff0c;它是执行程序指令的电子电路。CPU使用的基本原材料是硅、铜、铝和各种塑料。由于CPU在现代社会中被大量消耗&#xff0c;因此生产商必须考虑原材料的能源投入和环境影响。 硅是地壳中第二丰富的元素。它以二氧化硅和硅酸盐的形式存在。二氧化…

Linux——进程通信(二) 匿名管道的应用:进程池

前言 之前我们学习了进程通过匿名管道进行通信&#xff0c;实现了两个进程的数据传输。 如果我们管理的是很多个进程&#xff0c;通过管道发送指令&#xff0c;因为如果管道中没有数据&#xff0c;读端必须等待&#xff0c;也就是被管理的进程们都在等待我发送的指令&#xf…

CVE-2024-24112 XMall后台管理系统 SQL 注入漏洞分析

------作者本科毕业设计项目 基于 Spring Boot Vue 开发而成...... [Affected Component] /item/list /item/listSearch /sys/log /order/list /member/list (need time-based blind injection) /member/list/remove 项目下载地址 Exrick/xmall: 基于SOA架构的分布式…

cesium viewer camera flyto

一、viewer的flyTo内部调用的是camera的相关定位方法&#xff0c;针对不同的定位对象&#xff0c;计算出合适的位置和相机视角。viewer可以定位到entity、dataSource、Cesium3DTileset、ImageLayer等。 var rect [116.490401, 39.964771, 116.499623, 39.977102];var heading …

2024全国水科技大会:【协办单位】山东文远环保科技股份有限公司

山东文远环保科技股份有限公司坐落于千年古城齐国故都--临淄。初始成立于2011年&#xff0c;是淄博市首批国有资本参股的混合改制企业。 公司着力打造环保设备制造、环保工程及服务、环保水务/固废处理/新能源项目投资及运营管理、固废循环经济产业园等四大板块。是一家集投资、…

在https网站中加载http资源

https中加载http资源&#xff0c;如果该资源https也有&#xff0c;直接替换就是&#xff0c;如果没有&#xff0c;如果按照网上的做法大概率是不奏效。言归正传&#xff0c;在一位C友文章中看到了利用nginx来做代理来实现访问http资源之后&#xff0c;我自己也做了尝试。 参考…

Elasticsearch8.x版本Java客户端Elasticsearch Java API 如何并发修改

前言 并发控制&#xff0c;一般有两种方案&#xff0c;悲观锁和乐观锁&#xff0c;其中悲观锁是默认每次更新操作肯定会冲突&#xff0c;所以每次操作都要先获取锁&#xff0c;操作完毕再释放锁&#xff0c;适用于写比较多的场景。而乐观锁是默认每次更新操作都不会冲突&#…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridCol)

栅格子组件&#xff0c;必须作为栅格容器组件(GridRow)的子组件使用。 说明&#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 接口 GridCol(option?:{span?: number | …

综合知识篇00-综合知识考点汇总目录(2024年软考高级系统架构设计师冲刺知识点总结-综合知识篇-先导篇)

专栏系列文章推荐&#xff1a; 2024高级系统架构设计师备考资料&#xff08;高频考点&真题&经验&#xff09;https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】&#xff08;2024年软考高级…

差分数组实战——滴滴春招笔试第一题

前言 作者&#xff1a;晓宜 &#x1f308;&#x1f308;&#x1f308; 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 &#x1f319;&#x1f319;&#x1f319; 上周末参与了滴滴的春招笔试&…

二叉树的初步学习和顺序结构实现

当我们学完顺序表、链表、栈和队列的时候&#xff0c;我们就要开始学习树了。树对于以后的学习有非常大的帮助&#xff0c;尤其是排序。好了&#xff0c;开始我们的学习吧。 1.树的概念及结构 1.1树的结构 树结构是一种非线性结构。它是由n&#xff08;n>0&#xff09;个…

CHINC邀请函 | 全视通邀您共赴青岛,碰撞数智火花

展会名称&#xff1a;2024中华医院信息网络大会&#xff08;CHINC&#xff09; 展会时间&#xff1a;3月29-31日 展会地址&#xff1a;青岛国际会展中心&#xff08;红岛馆&#xff09; 全视通展位&#xff1a;B2-A05A 全视通将携智慧病区、智慧门诊、智慧手术室、智慧后勤…

lua profile 性能分析工具都有哪些

在 Lua 中&#xff0c;性能分析&#xff08;profiling&#xff09;是一个关键步骤&#xff0c;用于找出代码中的瓶颈和优化机会。通过性能分析&#xff0c;你可以了解哪些函数或代码段占用了最多的执行时间&#xff0c;从而可以优先优化这些部分。 Lua 本身并没有内置的性能分…

UnityShader(十七)透明效果

前言&#xff1a; 在实时渲染中实现透明效果&#xff0c;通常会在渲染模型时控制它的透明通道&#xff08;Alpha Channel&#xff09;。当开启透明混合后&#xff0c;一个物体被渲染到屏幕上时每个片元除了颜色值和深度值外&#xff0c;还有一个透明值&#xff0c;1表示像素完…

汽车信息安全--安全调试功能在量产后是否必须禁用(2)

目录 1.引入 2 响应挑战解锁的两种实现 3.Debug via Commnucation 4.小结 1.引入 上一篇文章,

快速实现鸿蒙侧边栏显示与隐藏

文章目录 前言侧边栏组件使用快速搞定侧边栏总结 一、前言 有好多文章要分享&#xff0c;但是来不及&#xff0c;就把最近觉得比较重要的组件分享下。最近因为在完善玩android的一个app&#xff0c;我的这个app叫玩鸿蒙&#xff0c;过段时间就开源了&#xff0c;敬请期待。 …

免费开源的 Vue 拖拽组件 VueDraggablePlus (兼容移动端)

VueDraggablePlus 支持 Vue2 / Vue3&#xff0c;是被尤雨溪推荐了的拖拽组件。我自己试用过了&#xff0c;还挺好用的&#xff0c;兼容移动端。 官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/ 官网文档里面很详细了&#xff0c;我就不再介绍安装和用…

香港服务器被大流量攻击了怎么办?

面对香港服务器遭受大流量攻击&#xff0c;以下是一些应对措施&#xff1a; 增加带宽和网络资源&#xff1a;尽快增加服务器的带宽和网络资源&#xff0c;以应对攻击造成的流量压力。 使用DDoS防护服务&#xff1a;考虑使用专业的DDoS(分布式拒绝服务)防护服务&#xff0c;这些…