KVM部署安装记录

安装

]# yum install qemu-kvm libvirt virt-install
]# systemc tl start libvirtd
]# systemctl enable libvirtd

启动后可以看到网卡多了一个virbr0的网口,这个是libvirt默认的nat网口(默认IP是192.168.122.1),在更新的版本会发现有virbr0-nic、vnet0等网口,这些都是给虚拟机用的网口。

创建虚拟机

[root@localhost ~]# virt-install --name=study01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm_data/study01.img,size=10 --bridge=virbr0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
然后会出现类似安装操作系统的界面,让你选择语言,时区,磁盘等
参考ZeroOne01的博客

配置文件

配置文件在/etc/libvirt/qemu/下面
数据文件在--disk path指定的目录下的img文件

编辑配置文件

uuid=`uuidgen`             #随机uuid                   
mac1=`openssl rand -base64 8 | md5sum | cut -c1-2`            #随机两位mac
mac2=`openssl rand -base64 8 | md5sum | cut -c1-2`
sed -i "10c <uuid>$uuid</uuid>" study02.xml                  #替换第十行的UUID
#修改配置中虚拟磁盘名称  
#修改虚拟机名
#修改第66行的mac地址
sed -i "66c  <mac address='52:54:00:f6:$mac1:$mac2'/>" study02.xml
virsh define /qemu/study02.xml           #加载配置文件
virsh start study02                           #开启虚拟机

操作虚拟机

virsh list --all  #列出所有虚拟机
virsh destroy NAME   #停止虚拟机
virsh undefine NAME   #删除虚拟机

参考snale learning linux的博客

克隆虚拟机

virt-clone --connect=qemu:///system -o kubespray1 -n kubespray3 -f /data/kubespray/kubespray4.img

-o:指定被克隆虚拟机的名字,用virsh list可以看到,此虚拟机必须为关机状态
-n:新虚拟机的名字
-f:新虚拟机磁盘文件位置
参考:亦非我所愿的博客

virsh start kubespray1     #启动虚拟机
virsh console kubespray1    #连接虚拟机

KVM脚本创建单个虚拟机


#!/bin/bash
#创建单个虚拟机(需要电脑中存在模板虚拟机)
single_initialize_define(){
    while true
    do
        read -p "请输入新虚拟机名称:" newname
        if [ $newname ];then
            break
        else
            echo "************"
            echo "请输入姓名!"
            echo "************"
        fi
    done
 
    while true
    do
        current_free_mem=`free -h|awk '/^Mem/{print $4}'|sed  -r 's/(.*).$/\1/'`
        mem_total=`free -h|awk '/^Mem/{print $2}'|sed  -r 's/(.*).$/\1/'`
        echo "目前本机内存总大小:${mem_total} G"
        echo "当前空闲内存大小为:${current_free_mem} MB"
        read -p "请输入新虚拟机内存大小(单位G):" newmemary
        if [ $newmemary ];then
            if [[ $newmemary < $mem_total ]];then
                break
            else
                echo "**********************************"
                echo "输入的数值必须小于当前内存总大小!"
                echo "**********************************"
            fi
        else
            echo "********************"
            echo "请输入新虚拟机内存!"
            echo "********************"
        fi
    done
 
    while true
    do
        core=`cat /proc/cpuinfo| grep "processor"| wc -l`
        echo "可用core个数:${core}"
        read -p "请输入新虚拟机处理器核数:" newcpu
        if [ $newcpu ];then
            if [ $newcpu -le $core ];then
                break
            else
                echo "******************************"
                echo "不能超过可用个数或者输入错误!"
                echo "******************************"
            fi  
        else
            echo "**************"
            echo "输入不能为空!"
            echo "**************"
        fi
    done
    uuid=`uuidgen`
    src_path=/mnt/lv2/centos7.0.qcow2 
    src_xml=/etc/libvirt/qemu/centos7.0.xml
    new_path=/mnt/lv1/${newname}.qcow2
    new_path_sed="\/mnt\/lv1\/${newname}.qcow2"
    new_xml=/etc/libvirt/qemu/${newname}.xml
}
#镜像、xml复制
copy_img(){
    cp $src_path $new_path
    cp $src_xml $new_xml
}
#修改xml文件
modification_xml(){
    sed -ri "s/(<name>).*(<\/name>)/\1${newname}\2/" $new_xml
    sed -ri "s/(<uuid>).*(<\/uuid>)/\1${uuid}\2/" $new_xml
 
    mem_kb=$(($newmemary*1024*1024))
 
    sed -ri "s/(<memory.*>).*(<\/memory>)/\1${mem_kb}\2/" $new_xml
    sed -ri "s/(<currentMemory.*>).*(<\/currentMemory>)/\1${mem_kb}\2/" $new_xml
    sed -ri "s/(<vcpu.*>).*(<\/vcpu>)/\1${newcpu}\2/" $new_xml
    sed -ri "s/(<source file=').*('\/>)/\1${new_path_sed}\2/" $new_xml
 
    mac_addr=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
 
    sed -ri "s/(<mac address='..:..:..:).*('\/>)/\1${mac_addr}\2/" $new_xml 
    
}
#运行
single_initialize_define
copy_img
modification_xml
virsh define $new_xml
#------------------------------------------------------------------------------------

脚本原文地址:皮蛋儿皮蛋的CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容