centos7安装kvm虚拟机,kvm虚拟机搭建cobbler

====本文旨在记录实验过程,原理相关请参见其他相关资料====

实验目的:模拟在物理机中安装kvm虚拟机并搭建cobbler服务器, 实现自动化(个性化)安装。

环境介绍:localhost模拟物理机使用的NAT模式,在localhost中创建cobbler_server 虚拟机;

                cobbler_server 桥接到 localhost创建的虚拟网桥 br0上;在其中搭建cobbler tftp dhcp rsync服务;

                cobbler_client 自动化安装后的主机,使用的与localhost 相同的NAT模式。以便与开机后可以获取IP。

实验准备工作

#取消vmw的NAT模式下的DHCP功能,防止安装cobbler_server 中dhcp功能受影响。

image.png


#配置vnet8 为静态IP

image.png


[root@localhost ~]# uname -a 

Linux node5 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


#################################################################################

一、centos7.5安装kvm虚拟机

#下载阿里云epel源文件

[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo       http://mirrors.aliyun.com/repo/epel-7.repo

#临时关闭防火墙和selinux

[root@localhost ~]# iptables -F && setenforce 

#使用KVM(基于内核的虚拟机)+ QEMU的虚拟化。 需要具有Intel VT或AMD-V功能的CPU。要有vmx|svm才支持虚拟化

#本机已开启vmw的cpu虚拟化功能

[root@localhost ~]# egrep '(vmx|svm)'  /proc/cpuinfo   

#yum安装KVM模块以及 libvirt   ##qemu-kvm\libvirt 在updates 源中

[root@localhost ~]# yum install qemu-kvm libvirt virt-install  bridge-utils                 virt-manager (图形管理工具可选)  

image.png

#安装完毕检测是否加载kvm相关模块

[root@node5 ~]# lsmod | grep kvm

kvm_intel             174841  0 

kvm                   578518  1 kvm_intel

irqbypass              13503  1 kvm

#创建虚拟网桥,修改配置文件 

修改前

[root@localhost /etc/sysconfig/network-scripts]# cat ifcfg-ens33   ;   cp ifcfg-ens33   ifcfg-br0

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="9e87410a-63b9-43a2-b6e6-f20031261ea9"

DEVICE="ens33"

IPV6_PRIVACY="no"

ONBOOT="yes

IPADDR="192.168.188.15"

PREFIX="24"

GATEWAY="192.168.188.2"

DNS1="192.168.188.2"


修改后

[root@localhost /etc/sysconfig/network-scripts]# cat ifcfg-ens33 

DEVICE="ens33"

TYPE="Ethernet"

BOOTPROTO="none"

ONBOOT="yes"

BRIDGE=br0

NM_CONTROLLED=no       ###建议配置

[root@localhost /etc/sysconfig/network-scripts]# cat ifcfg-br0

DEVICE="br0"

TYPE="Bridge"

BOOTPROTO="none"

ONBOOT="yes"

NM_CONTROLLED=no      ###建议配置

IPADDR="192.168.188.15"

PREFIX="24"

GATEWAY="192.168.188.2"

DNS1="192.168.188.2"


#关闭NetworkManager服务

[root@localhost /etc/sysconfig/network-scripts]# systemctl stop  NetworkManager

[root@localhost /etc/sysconfig/network-scripts]# systemctl disable  NetworkManager

#重启网络服务,可以看到IP已经配置到br0上

[root@localhost /etc/sysconfig/network-scripts]# systemctl restart network 

image.png

#开启libvirtd 服务,可以看到默认virbr0 网桥

[root@localhost ~]# systemctl start  libvirtd 

[root@localhost ~]# systemctl enable libvirtd   #使开机自动启动

[root@localhost ~]# systemctl status   libvirtd  #查看服务状态


#接下来创建用于存放ISO文件,以及磁盘映像文件的目录;

[root@localhost ~]# mkdir  -v  /home/{iso,img}  

#上传ISO文件至目录

[root@localhost /home/iso]# ll  -h

total 906M

-rw-r--r--. 1 root root 906M Aug 29 23:58 CentOS-7-x86_64-Minimal-1804.iso


#创建磁盘映像文件,格式指定为qcow2格式 (稀疏),不同的映像文件应用场景不同,涉及kvm优化 本人不太懂,就不误导了

[root@localhost /home/img]# qemu-img create -f qcow2  centos75.qcow2 40G

[root@localhost /home/img]# qemu-img info centos75.qcow2 

image: centos75.qcow2

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 196K

cluster_size: 65536

Format specific information:

    compat: 1.1

    lazy refcounts: false


#指定虚拟机的主机名,cpu,内存,使用的磁盘文件,启动方式,以及vnc连接的地址、端口、密码 ,桥接网络,开机自启

[root@localhost ~]# virt-install  --name centos75 --memory 512 --vcpu=4  -f /home/img/centos75.qcow2 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1804.iso --graphics vnc,listen=0.0.0.0,port=5910,password='test.com@123',keymap='en-us'  --network bridge=br0  --force --autostart


#使用客户端vncview 连接libvirt服务端的地址和端口  进如kvm虚拟机安装界面

image.png


image.png


#修改虚拟机网卡配置文件配置跟localhost 同网段IP,测试网络的连通性。

image.png


#使用virsh 查看管理虚拟机,更多高级用法请自行查阅或请man

[root@localhost ~]# virsh list  --all

 Id    Name                           State

----------------------------------------------------

 2     centos75                       running

#开机 virsh start centos75   

#关机 virsh shutdown centos75

#断电 virsh destroy centos75


#虚拟机配置文件/etc/libvirt/qemu/*.xml  

  (*)可以根据此文件为模板,编写循环脚本更改部分内容,也可批量生成kvm虚拟机,也可以vir根据virt-install 进行循环。

image.png


[root@localhost /etc/libvirt/qemu]# yum install qemu-kvm-tools 

[root@localhost /etc/libvirt/qemu]# rpm -ql qemu-kvm-tools

/usr/bin/kvm_stat

[root@localhost /etc/libvirt/qemu]# kvm_stat          (虽然现在看不懂输出结果但是记录一下 )

kvm statistics


 kvm_fpu                                       2596     108

 kvm_exit                                      2068 90

 kvm_entry                                     2068 90

 kvm_pio                                        910 38

 kvm_userspace_exit                             910 38

 kvm_emulate_insn                               798 33

 kvm_msr                                        649 29

 kvm_hv_timer_state                             618 27

 kvm_inj_virq                                   470 20

 kvm_apic_accept_irq                            470 20

 kvm_eoi                                        470 20

 kvm_pv_eoi                                     465 20

 kvm_wait_lapic_expire                          403 17

 kvm_vcpu_wakeup                                388 16

 kvm_ioapic_set_irq                             126  6

 kvm_set_irq                                    126  6

 kvm_pic_set_irq                                126  6

 kvm_halt_poll_ns                                74  3

 kvm_apic                                        57  3

 kvm_apic_ipi                                    26  1

 kvm_msi_set_irq                                  7  0

 kvm_exit(MSR_WRITE)                              3  0

 kvm_exit(HLT)                                    2       0


#实现无密码登陆cobbler_server 

image.png

#免密登陆成功

image.png

##################################################################

二、安装配置 cobbler服务(cobbler 可以看成PXE的进一步封装)                    详细更多内容移步cobbler官网

会pxe  cobbler肯定没有问题,cobbler可以管理 dhcp ,rsync ,tftp  以及添加其他额外的yum 源,实现精细化安装

image.png


#安装wget ,下载阿里云epel源文件( 以便安装cobbler)

[root@localhost ~]# yum -y install wget ; wget -O /etc/yum.repos.d/epel.repo       http://mirrors.aliyun.com/repo/epel-7.repo

#安装cobbler服务涉及的组件

[root@cobbler_server ~]# yum install  dhcp  tftp-server   syslinux   cobbler  cobbler-web  mod_wsgi  httpd  pykickstart rsync 

#

image.png



#临时关闭防火墙和 selinux ,启动cobbler httpd

image.png

#vim /etc/cobbler/setttings

image.png


image.png


image.png

#systemctl  start  tftp       (UDP  69)


#cobbler get-loaders

#systemctl  start  rsyncd  (TCP 873)


#cobbler get-loaders

#yum install debmirror (根据提示修改注释配置文件部分内容)

#vim /etc/selinux/config  修改策略为disabled

#同步一下,切记cobbler sync   ##然后chbbler check 一下,所有修改完最好重启一下设备


#一切就绪可以开干了

[root@cobbler_server ~]# cobbler check 

No configuration problems found.  All systems go.


#访问web界面

image.png


image.png

至此cobbler,ryncd,tftp,httpd 服务安装完成,差一个DHCP

vim /etc/cobbler/setttings

image.png

修改dhcp模板文件配置文件  


[root@cobbler_server ~]# vim /etc/cobbler/dhcp.template

subnet 192.168.188.0 netmask 255.255.255.0 {

     option routers             192.168.188.2;

     option domain-name-servers 192.168.188.2;

     option subnet-mask         255.255.255.0;

     range dynamic-bootp        192.168.188.50 192.168.188.60;

     default-lease-time         21600;

     max-lease-time             43200;

     next-server                $next_server;

     filename                   "pxelinux.0";

}

#systemctl  start dhcpd

#systemctl enable dhcpd


#重启cobbler服务同步一下配置, 查看dhcp 服务状态(UDP   67)

  测试vmw 桥接模式下主机能不能获取IP ,,dhcp也OK了

image.png


#挂在镜像文件

[root@cobbler_server ~]# mount -o loop -t iso9660 /iso/CentOS-7-x86_64-Minimal-1804.iso   /mnt

mount: /dev/loop0 is write-protected, mounting read-only

#导入ISO 文件

[root@cobbler_server ~]# cobbler import  --path=/mnt   --name=centos75  --arch=x86_64

task started: 2018-09-01_213323_import

task started (id=Media import, time=Sat Sep  1 21:33:23 2018)

Found a candidate signature: breed=redhat, version=rhel6

Found a candidate signature: breed=redhat, version=rhel7

Found a matching signature: breed=redhat, version=rhel7

Adding distros from path /var/www/cobbler/ks_mirror/centos75-x86_64:

creating new distro: centos75-x86_64

trying symlink: /var/www/cobbler/ks_mirror/centos75-x86_64 -> /var/www/cobbler/links/centos75-x86_64

creating new profile: centos75-x86_64

associating repos

checking for rsync repo(s)

checking for rhn repo(s)

checking for yum repo(s)

starting descent into /var/www/cobbler/ks_mirror/centos75-x86_64 for centos75-x86_64

processing repo at : /var/www/cobbler/ks_mirror/centos75-x86_64

need to process repo/comps: /var/www/cobbler/ks_mirror/centos75-x86_64

looking for /var/www/cobbler/ks_mirror/centos75-x86_64/repodata/*comps*.xml

Keeping repodata as-is :/var/www/cobbler/ks_mirror/centos75-x86_64/repodata

*** TASK COMPLETE ***


#导入成功发有相关发行版以及profiles生成,还会生成一份默认的ks文件(命令查看与web界面一致)

image.png

image.png


#如上tftp目录多了 发行版的内核文件以及 initrd.img 。

image.png

#启动菜单与下图相符,可以自定义图片以及相关信息。

image.png

image.png


image.png

实验成功!!!

################################################################

三、 简单介绍cobbler   web界面的简单操作

该博客详细介绍了web界面的操作,我的师傅牛x 老大了,望成莫及                  #主要关注 网络,运维,云计算方向openstack

http://blog.51cto.com/zhanguo1110/1671137       


我主要看的是绑定mac地址,实现定制安装,配置IDAC 地址\用户名密码\以便通过cobbler 实现开关机;

老司机的世界我看不懂,他主要用于搭建openstack 的基础环境。 (snippets  、ks文件中可以实现安后脚本) 


















猜你喜欢

转载自blog.51cto.com/mengyao/2168947