linux下5秒创建rhel7虚拟机

经常玩linux的朋友,有时候会不会为了创建虚拟机搭建环境而苦恼,接下来所展示的如何在5秒内创建一个可以使用的虚拟机。
实验环境:

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 

准备的文件:

rh7_template.img和 rhel7.xml
如果没有两个文件的,可以直接使用下面的文件。
链接: https://pan.baidu.com/s/1ESlqw22wEY9HP2-kCFptpA 密码: etyh
链接: https://pan.baidu.com/s/1rm-sVkd3R7GtdVEyaFqeSQ 密码: myh3
把下载的文件放到/var/lib/libvirt/images/ 并保存为以.开头文件名

[[email protected] ~]# mv  rh7_template.img    /var/lib/libvirt/images/.rh7_template.img
[[email protected] ~]# mv  rhel7.xml   /var/lib/libvirt/images/.rhel7.xml

搭建虚拟环境:

[[email protected] ~]# yum -y groups install 虚拟化平台 虚拟化主机 虚拟化客户端
// 真机是中文环境,如果是英文环境就安装 “Virtualization Platform” “Virtualization Host”  “Virtualization Client”   每个部分之间要有空格隔开
[[email protected] ~]# virt-manager                  //调出虚拟系统管理器,如下图


进入编辑——>连接详情——>虚拟网络,如下图

添加四个虚拟网络分别是
private1,private2,public1,public2
点击上图的左下脚加号,出现如图所示:(以private1为例子)



完成即可。
private1,配置的ip网段是:192.168.1.0/24
private2,配置的ip网段是:192.168.2.0/24
public1,配置的ip网段是:100.0.1.0/24
public2,配置的ip网段是:100.0.1.0/24

创建虚拟机的脚本

下面连接可以直接下载使用:
链接: https://pan.baidu.com/s/1lx_murPn7U09hywyuWSFyw 密码: 4xq6
[[email protected] ~]# vim clone-vm7

#! /usr/bin/bash

# 定义变量
IMG_DIR=/var/lib/libvirt/images
BASEVM=rh7_template
NUM=`tr -dc ‘0-9a-f‘ < /dev/urandom  |head -c 2`

# 输入创建虚拟机的编号
read -p "Enter VM number: " VMNUM

# 判断输入编号
if [ -z "${VMNUM}" ]; then
    echo "You must input a number."
    exit 1
elif [ $(echo ${VMNUM}*1 | bc) = 0 ]; then
    echo "You must input a number."
    exit 2
elif [ ${VMNUM} -lt 1 -o ${VMNUM} -gt 99 ]; then
    echo "Input out of range"
    exit 3
fi

# 生成新的变量并判断文件是否存在
NEWVM=rh7_node${VMNUM}

if [ -e $IMG_DIR/${NEWVM}.img ]; then
    echo "File exists."
    exit 4
fi

# 创建新虚拟机的img文件
echo -en "Creating Virtual Machine disk image......\t"
qemu-img create -f qcow2 -b $IMG_DIR/.${BASEVM}.img $IMG_DIR/${NEWVM}.img &> /dev/null
echo -e "\e[32;1m[OK]\e[0m"

# 修改新虚拟机的xml文件
cat /var/lib/libvirt/images/.rhel7.xml > /tmp/myvm.xml

# 修改新虚拟机的主机名和uuid
sed -i "/<name>${BASEVM}/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml
sed -i "/uuid/s/<uuid>.*<\/uuid>/<uuid>$(uuidgen)<\/uuid>/" /tmp/myvm.xml

# 修改新虚拟机的使用的img路径
sed -i "/${BASEVM}\.img/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

# 模板给4个网卡,修改每个网卡的mac地址
sed -i "/mac /s/a1/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/a2/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/a3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/b1/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/b2/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/b3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/c1/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/c2/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/c3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/d1/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/d2/${NUM}/" /tmp/myvm.xml
sed -i "/mac /s/d3/${VMNUM}/" /tmp/myvm.xml

# 导入虚拟机配置
echo -en "Defining new virtual machine......\t\t"
virsh define /tmp/myvm.xml &> /dev/null
echo -e "\e[32;1m[OK]\e[0m"

创建虚拟机

[[email protected] ~]# ./clone-vm7
Enter VM number: 1
Creating Virtual Machine disk image...... [OK]
Defining new virtual machine...... [OK]

注:用户名为root 密码为:123456 。 登陆结果如下:

在命令行输入init 5 直接可以进入图形界面模式

注:运行级别
init 0 关闭主机
init 3 多用户命令行模式
init 5 图形界面模式
init 6 重启主机
init 1和2 分别是单用户和多用户(没有NFS)
centos7设置命令:
systemctl isolate multi-user.target
systemctl isolate graphical.target
systemctl set-default 目标级别

原理

简单说:
一台正常的KVM虚拟机的组成:
主机箱和外部设备 -------> 配置文件xml文件(name,uuid,disk位置,网卡mac等)
磁盘------> 虚拟机的镜像文件img文件

虚拟机的配置的导出和导入操作
virsh dumpxml 虚拟机名称 > 文件名.xml (打印配置文件)
virsh define 文件名.xml (组装机器)

KVM相关的命令
virt-manager //打开虚拟系统管理器
virsh list --all //列出所有虚拟机
virsh start 虚拟机名称 //虚拟机开机
virsh destroy 虚拟机名称 //强制断电关机
virsh autostart 虚拟机名称 //虚拟机开机自启 --disable 取消开机自启

virsh nodeinfo //查看虚拟机服务器的cpu信息
virsh dominfo 虚拟机名称 //查看虚拟机配置
virsh edit 虚拟机名称 //修改虚拟机额配置

共勉:I hear and I forget. I see and I remember. I do and I understand!

原文地址:http://blog.51cto.com/13667098/2110747

时间: 2024-10-09 05:56:34

linux下5秒创建rhel7虚拟机的相关文章

Linux下的LVM创建以及Linux快照卷

通过最的学习,我加深了对LVM的理解,在这里,我将它写成博客,一是方便自己记忆,二是让Linux的入门学习者一起学习一下. 首先我们引入LVM的概念,并展开详细的说明,主要是近期学习的看法,我们先看一个图 我们将会提到的名词有:PV.VG.LV.PE 在图中,最下面的,我们可以理解为物理存储介质,硬盘或是分区 PV:称为物理卷,是LVM的基本存储块. VG:称为卷组,我们可以看卷组是由物理卷组合而成的. LV:称为逻辑卷,是从卷组中划分出来的. PE:physical extent,我就称为物理

在Linux下给mysql创建用户并分配权限等问题

在linux系统中安装mysql的步骤 工具: mysql-5.6.17-linux-glibc2.5-i686.tar.gz mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz linux系统64位 方法/步骤 1.到mysql官网下载mysql编译好的二进制安装包. 2.解压安装包: 3.进入安装包所在目录,执行命令:tar -zxvf  mysql-5.6.17-linux-glibc2.5-i686.tar.gz 4.复制解压后的mysql目录到系统的本地

Linux下的目录创建命令使用实践

[文章摘要] 本文以实际的C源程序为例子,介绍了Linux下的目录创建命令(mkdir)的使用方法,为相关开发工作的开展提供了有益的参考. [关键词] C语言  Linux  目录创建  makefile  开发 一.mkdir命令简介 mkdir命令用来创建指定名称的目录,其命令格式为:mkdir [选项] 目录... 其中,[选项]可以是"-m"."-p"或"-v".此外,目录名是区分大小写的. 二.本程序流程 本文中的程序用于实现创建目录的

Linux下实现秒级定时任务的两种方案

Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command sleep XX //间隔秒数 done 第二种方案,使用crontab. 我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次. 以下方法将每20秒执行一次 crontab -e * * * * * /bin/date* * * * * sleep 20;

12.8 Linux发展及VMware创建CentOS虚拟机

12.8 Linux发展及VMware创建CentOS虚拟机 内容: 1. Linux发展 人物和事件 2. Linux发行版本 3. 通过VMware 搭建CentOs 系统 4. 通过xshell连接 5. 无法连接服务器排错 6. 云服务器的简单原理 l Centos下载地址 http://mirrors.aliyun.com  #阿里云官方镜像站点 centos 最新版本 6.8 7.3 ---isos http://vault.centos.org/   #vault  电子仓库  旧

ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

原文:ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识) 前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问. 如果你以后用准备使用 asp.net core来开发项目的话,程序并且部署到 Linux 上的话,那么此篇文章你值得收藏. 如果你觉得对你有帮助的话

Linux下进程的创建(system(); fork(); exec*())

0. system(); system()函数通过调用shell程序来执行所指向的命令(效率低),相当于先fork(),再execve(): 特点:原进程和子进程各自运行,且原进程需要等子进程运行完后再继续: 1. fork(); 参考文献: linux中fork同时创建多个子进程的方法(一) 在Linux中用fork()由一个父进程创建同时多个子进程的格式如下: 1 int status,idx; 2 3 for (idx = 0; idx < 10; idx++) { 4 status =

linux下fallocate快速创建大文件

以前创建文件我一般用dd来创建,例如创建一个512M的文件: dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以 dd if=/dev/zer

LINUX下给软件创建桌面图标

转自:http://www.cnblogs.com/Rapheal/p/3610411.html?utm_source=tuicool&utm_medium=referral 最近在折腾linux,我们平常往linux下安装的软件都只能在解包的文件夹里打开,怎样才能像Windows那样在桌面创建图标呢? 下面以我安装的eclipse为例子: 首先,我们打开终端............. vim /usr/share/applications/eclipse.desktop 以下是内容: [Des