linux下kvm虚拟机的搭建

安装kvm虚拟机工具:
yum -y install
qemu-kvm #为kvm提供底层支持
libvirt-client #virsh等软件
libvirt-daemon #libvirtd服务守护进程
libvirt-daemon-drive-qemu #virsh的qemu驱动
virt-install #系统安装工具
virt-manager #图形管理工具
virt-v2v #虚拟机迁移工具
virt-p2v #物理机迁移工具

在真机上添加一条路由转发,以方便后期的虚拟机访问外网
vim /etc/sysctl.d/70-system.conf
net.ipv4.ip_forward = 1

配置虚拟网卡参数
cd /etc/libvirt/qemu/networks/autostart/
cp default.xml /etc/libvirt/qemu/networks/vnet1.xml
cp default.xml /etc/libvirt/qemu/networks/vnet2.xml
cd /etc/libvirt/qemu/networks/
vim vnet1.xml
例:
<network>
<name>veth1</name>
<forward mode=‘nat‘/>
<bridge name=‘veth1‘/>
<ip address=‘192.168.1.254‘ netmask=‘255.255.255.0‘>
<dhcp>
<range start=‘192.168.1.100‘ end=‘192.168.1.200‘/>
</dhcp>
</ip>
</network>

vim vnet2.xml
<network>
<name>veth2</name>
<forward mode=‘nat‘/>
<bridge name=‘veth2‘/>
<ip address=‘192.168.2.254‘ netmask=‘255.255.255.0‘>
</ip>
</network>

删除真机防火墙,关闭selinux
yum -y remove firewall
setenforce 0
编辑selinux开机不启用
vim /etc/selinux/config

编辑虚拟网卡设置
cd /etc/sysconfig/network-scripts/
vim ifcfg-veth1
cp ifcfg-veth1 ifcfg-veth2
vim ifcfg-veth2

vim /etc/sysconfig/network-scripts/ifcfg-veth1
例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=veth1
DEVICE=veth1
ONBOOT=yes
IPADDR=192.168.1.254
PREFIX=24
GATEWAY=192.168.1.254
DNS1=114.114.114.114

vim /etc/sysconfig/network-scripts/ifcfg-veth2
例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=veth2
DEVICE=veth2
ONBOOT=no
IPADDR=192.168.2.254
PREFIX=24
GATEWAY=192.168.2.254
DNS1=114.114.114.114

定义虚拟网卡,并启用
在确定以关闭防火墙及selinux情况下,如有相关报错,先重启真机
cd /etc/libvirt/qemu/networks/
virsh net-define veth1.xml
virsh net-define veth2.xml
virsh net-start veth1
virsh net-start veth2
virsh net-autostart veth1
virsh net-autostart veth2

创建一个20G(大小看环境)模板镜像文件
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 node.qcow2 20G

virt-manager
创建新虚拟机
装centos7 的系统
可以选择网络安装
分配空间,选择自定义,使用之前创建的node.qcow2
分区只分一个根, 标准分区
语言用默认英文
关闭kdump

进入虚拟机查看IP地址,veth1之前定义是dhcp分配的ip地址
拷贝真机yum源至虚拟机

在虚拟机上安装所需的工具
yum -y install net-tools vim-enhanced iproute bash-completion

vi /etc/sysconfig/network
NOZEROCONF="yes"

vi /etc/sysconfig/network-scripts/ifcfg-eth0
NAME="eth0"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
DEVICE="eth0"

vi /etc/sysconfig/grub
添加一行,以方便真机console字符连接
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"

应用该配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg

配置模板镜像完毕后关机:
halt -p

cd /etc/libvirt/qemu
cp centos7.0.xml /root/
vim /root/centos7.0.xml
9 <name>centos7.0</name>
改成 <name>node0</name>方便执行脚本
以下标注内容均需删除:
以下标注内容均需删除:
以下标注内容均需删除:

10 <uuid>c04d4f3a-a3b9-4ddb-93ea-2361636d6e6f</uuid>
65 <mac address=‘52:54:00:22:f4:de‘/>

所有<address type=....../>
所有<controller type=‘usb‘.......</controller>

因为之前还有一块veth2虚拟网卡,故添加以下语句:
<interface type=‘network‘>
<source network=‘veth2‘/>
<model type=‘virtio‘/>
</interface>

删除之前安装定义的模板
virsh undefine centos7.0

注:以下脚本上传博客后seq语句会缺失字符,请自行添加
注:以下脚本上传博客后seq语句会缺失字符,请自行添加
注:以下脚本上传博客后seq语句会缺失字符,请自行添加

ln -s /root/kvm.sh /sbin/kvm.sh
ln -s /root/setip.sh /sbin/setip.sh

附:虚拟机创建脚本
vim kvm.sh
#!/bin/bash
read -p "请输入需要创建的虚拟机数量:" num
read -p "请输入起始的虚拟机编号:node" x

for i in seq $num
do
cp /root/centos7.0.xml /var/lib/libvirt/qemu/node$[i-1+x].xml
sed -i ‘s/name>node.</name>node‘$[i-1+x]‘</‘ /var/lib/libvirt/qemu/node$[i-1+x].xml
sed -i ‘s/node.
.img/node‘$[i-1+x]‘.img/‘ /var/lib/libvirt/qemu/node$[i-1+x].xml
virsh define /var/lib/libvirt/qemu/node$[i-1+x].xml
qemu-img create -b /var/lib/libvirt/images/node.qcow2 -f qcow2 /var/lib/libvirt/images/node$[i-1+x].img 20G
done

附:字符界面定义虚拟机ip脚本
vim setip.sh
#!/bin/bash
yum -y install expect tcl
read -p "请输入虚拟机起始编号(1~): node" vm
read -p "请输入需要创建起始ip地址(例:192.168.2.5):" cip
read -p "请输入需要创建连续的主机数(1~
):" num
ip=echo $cip|awk -F. ‘{print $4}‘
net=echo $cip|awk -F. ‘{print $1"."$2"."$3}‘
case $net in
192.168.1)
cnet=eth0;;
192.168.2)
cnet=eth1;;
*)
echo "错误的IP地址!"
exit
esac
#for i in seq $num
#do
#expect <<eof
#spawn virsh start node$[vm+i-1]
#expect "#" {send "\n"}
#exit
#eof
#done

#sleep 18

for i in seq $num
do
echo $net.$[i+ip-1]>>/tmp/host
expect <<EOF
spawn virsh console node$[vm+i-1]
expect "换码符为 ^]" {send "\n"}
expect "login:" {send "root\n"}
expect "Password:" {send "123456\n"}
expect "]#" {send "nmcli connection add con-name $cnet ifname $cnet type ethernet\n"}
expect "]#" {send "nmcli connection modify $cnet ipv4.method manual ipv4.addresses $net.$[i+ip-1]/24 ipv4.gatew
ay $net.254 ipv4.dns 114.114.114.114 connection.autoconnect yes\n"}expect "]#" {send "nmcli connection up $cnet\n"}
expect "]#" {send "hostnamectl set-hostname node$[i+ip-1].cn\n"}
interact
exit
EOF
done
#yum -y install pssh

for i in seq $num
do
expect <<EOF
spawn ssh-copy-id -o StrictHostKeyChecking=no $net.$[ip+i-1]
expect "password:" {send "123456\n"}
expect "#" {send "\n"}
exit
EOF
done

echo ‘nmcli connection show| awk ‘"‘/--/{print "‘$‘"2}‘"‘>/tmp/et.txt‘>/tmp/et.sh
echo for i in ‘cat /tmp/et.txt‘>>/tmp/et.sh
echo do >> /tmp/et.sh
echo nmcli connection delete "$"i >>/tmp/et.sh
echo done >> /tmp/et.sh
chmod +x /tmp/et.sh
pscp.pssh -h /tmp/host /new/gao.repo /etc/yum.repos.d/gao.repo
pscp.pssh -h /tmp/host /tmp/et.sh /tmp/et.sh
pssh -h /tmp/host bash /tmp/et.sh
rm -rf /tmp/host

原文地址:http://blog.51cto.com/13845582/2145056

时间: 2024-08-02 06:33:24

linux下kvm虚拟机的搭建的相关文章

我的双系统中linux下的虚拟机建搭建(快照的方法)

Device Boot      Start         End      Blocks   Id  System/dev/sda1   *           1          13      102400    7  HPFS/NTFS                     //100M,win7的保留分区Partition 1 does not end on cylinder boundary./dev/sda2              13        7600    60

shell脚本编程《linux下kvm虚拟机的创建、开启、显示、停止、重置》

Shell脚本编程--案例一 编程要求: 1.创建vm-ctl脚本,在/bin/下 2.实现功能:创建虚拟机.创建虚拟机快照.开启虚拟机.显示虚拟机.停止虚拟机.重置虚拟机. 脚本实现预期结果: sh vm-ctl create|nodecreate|start|view|stop|reset vmname 实现脚本如下: #!/bin/bash case "$1" in create)            ##创建虚拟机 echo create vm $2 ... virt-ins

CENTOS6.4上KVM虚拟机环境搭建

关键词: KVM,虚拟机,windows7, VNC, 桥接网络,br0, SCSI, IDE 环境: host: CENTOS6.4 guest: windows 7 sp1 主要步骤: 安装软件包 配置桥接网络 配置VNC 安装虚拟机 1.安装软件包 yum install qemu-kvm yum install libvirt   yum install libvirt-python 其实CENTOS6.4上已经安装了这三个软件包,不用再装了. rpm -qa | grep qumu-k

Linux下的ssh环境搭建与管理

Linux下的ssh环境搭建与管理 实验环境 1:网桥模式 2:安装好vmtoos 3:安装好yum 4:安装好ssh相关软件包 5:服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 6:安装好扫描软件rpm -ivh/mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linu

Linux下DHCP服务器的搭建

1.关闭防火墙和SELinux [[email protected] /]# service iptables stop [[email protected] /]# vim /etc/selinux/config SELINUX=permissive(将 enforcing改为permissive)保存退出 2.准备两台虚拟机,一台作为服务器,一台作为客户机,配置两个主机的IP地址,使服务器和客户机能够通信 服务器: [[email protected] /]# vim /etc/syscon

Linux下kvm虚拟化技术的安装与使用

Linux下kvm虚拟化技术的安装与使用 云时代的到来,虚拟化的广泛应用.让我们重新的科技进行了定义.而当下知名的虚拟化产品有 vmware vsphere ,Hyper-v,xen,kvm.vmware的虚拟化所占的市场有目共睹,Hyper-V是windows平台下的虚拟化,而Xen就属于一个半虚拟化产品.kvm就是我们今天所介绍的对象. (kvm是kernel virtual module的简写)kvm是红帽公司5.4版本后所推出的最新虚拟化技术产品.它和vpc,virtual  box都属

linux下svn服务器的搭建

网上的教程实在是太恶心了,不是太老,就是有问题,刚参考的一篇文章也有问题.自己记录下来,以后用就方便了,现在一边重新安装一遍,一边记录.笔者亲测,今天是5月29号深夜. linux用的是centos6.2,yum install subversion,安装svn服务端.本篇操作均为root用户权限. 1.建立svn库目录. mkdir -p /opt/svndata/repos1 2.建立版本库 svnadmin create /opt/svndata/repos1 3.修改配置文件 (1)服务

linux下利用elk+redis 搭建日志分析平台教程

linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了,下面我们来看一篇在linux下利用elk+redis 搭建日志分析平台教程,希望例子对各位有帮助. 这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elasti

&lt;linux下extmail服务的搭建&gt;

下载2个软件包: extmail-1.1.0.tar.gz     extman-1.1.tar.gz 下载地址:http://www.cpan.org/ 创建extsuite目录 mkdir /var/www/extsuite 解压这2个包到这个目录下: tar zxf extman-1.1.tar.gz -C /var/www/extsuite tar zxf extmail-1.1.0.tar.gz -C /var/www/extsuite 改个短的名字 mv extmail-1.1.0