本文由秀依林枫提供友情赞助,首发于烂泥行天下

KVM与kickstart集成在这里我要说明下,因为在前面有关CentOS无人值守安装的文章中,我提到过如果要使用网卡PXE功能的话,内网中必须有DHCP服务器。

也就是说内部网络中必须有一台DHCP服务器,用来获取TFTP服务器的地址,否则无法进行无人值守安装,CentOS也就无法通过网络安装。

如果我们是物理机通过网络进行安装CentOS的话,那么上述条件必须符合,也就是说。内网中必须存在DHCP服务器,否则客户端的网卡不能获取到相关的IP地址。

但是如果我们是通过KVM进行安装虚拟机的话,我们的网络就不一定需要DHCP服务器。我们只需要在KVM安装的脚本中配置相关IP地址,以及在kickstart的配置文件ks.cfg中配置相关IP地址即可。

为什么会是这样的呢?

其实在《烂泥:kickstart无人值守安装CentOS6.5》文章中,我们已经介绍过了PXE的原理。PXE的网络安装CentOS过程其实有是两个阶段需要IP地址的支持,第一个阶段是通过TFTP下载系统安装内核、第二个阶段是在系统安装时获取安装源的地址。如果是内网有DHCP服务器的话,这两个阶段获取的IP地址直接是从DHCP服务器上得到的。如果我们给网卡配置固定IP地址的话,那么就不需要DHCP服务器了。即第一阶段的所使用的IP地址由KVM安装虚拟机的脚本中配置,第二阶段使用的IP地址由ks.cfg文件中配置。

在这再补充一点有关网络的知识,同一个网络中即使没有路由器,只要两台机器配置的IP地址为同一个网段即可正常通信。

在下面的文章中,我会分两部分来介绍KVM与kickstart的集成:网络中存在DHCP服务器和网络不存在DHCP服务器。

一、网络中存在DHCP服务器

因为是与KVM集成相关,所以有关KVM的搭建与配置可以参照我之前的文章《烂泥:虚拟化KVM安装与配置》,在这里我们也使用到了有关LVM和裸设备相关的知识,也可以参考这两篇文章《烂泥:LVM学习之LVM基础》、《烂泥:KVM使用裸设备配置虚拟机》。

既然这一部分是和DHCP服务器相关的,那么我们来开启DHCP服务器,有关DHCP服务器的配置,可以参考这篇文章《烂泥:CentOS安装及配置DHCP服务器》。

开启DHCP服务器,如下:

/etc/init.d/dhcpd start

DHCP服务开启完毕后,我们开始创建一个LV逻辑卷作为虚拟机的硬盘。如下:

lvcreate -L 20G -n kickstart vg1

lvs

虚拟机硬盘创建后,我们现在开始创建虚拟机,使用如下命令:

virt-install -n kickstart -r 2048 --vcpus=1 --os-type=linux -l nfs:192.168.1.11:/iso -f /dev/vg1/kickstart --bridge=br0 -m 52:54:00:12:D7:5D --nographics -x "console=ttyS0 ks=nfs:192.168.1.11:/ks/ks.cfg"

这条命令的意思是:创建一个名叫kickstart的虚拟机,该虚拟机分配的内存为2G,使用一颗CPU,虚拟机为linux OS,该虚拟机的硬盘是/dev/vg1/kickstart,该虚拟机网卡桥接的物理网卡br0,同时为该网卡指定MAC地址为52:54:00:12:D7:5D。安装该虚拟机使用的镜像源为nfs:192.168.1.11:/iso,KVM在给该虚拟机安装过程中不使用图形界面。同时安装该虚拟机时,使用ks配置文件位于nfs:192.168.1.11:/ks/ks.cfg,并且在该虚拟机安装完毕后,可以通过串口进行来连接该虚拟机。

在这里介绍下,有关这条命令的主要参数:

1、安装源与KS源的位置

在这我们使用的是NFS方式,当然我们也可以使用FTP、HTTP方式。有关NFS在KVM的使用,可以通过查看virt-install的帮助文档来了解。如下:

virt-install --help

也可以通过man virt-install来了解,如下:

2、虚拟机硬盘

虚拟硬盘我们在此使用裸设备/dev/vg1/kickstart,有关虚拟机硬盘的我们也可以通过查看帮助文档来了解。

virt-install --help

man virt-install

3、MAC地址

我们为该虚拟机指定了MAC地址,MAC地址一定要为大写。否则KVM会报错。而且有关指定MAC地址,我们只能通过man virt-install来查看。如下:

man virt-install

4、ks源配置

该虚拟机的ks源,我们是通过nfs方式来连接的。这个我们也可以通过查看man virt-install,如下:

以上就是该条命令创建虚拟机的相关参数,为什么要这么清楚的介绍这些参数?是因为这些参数都是在安装虚拟机时,是必须的而且我们通过这种方式也能更好的理解KVM的参数以及如何查看KVM的帮助文档。

以上是介绍KVM创建虚拟机,记住此时我们还没有正式创建虚拟机。现在还需要我们来配置ks的配置文件ks.cfg。如下:

more ks.cfg

在此我们主要配置ks.cfg中的网络部分。设置虚拟机安装时,使用DHCP方式获取IP地址。

好了这个配置完毕后,我们就来正式安装KVM虚拟机,如下:

系统安装完毕后,我们来查看该虚拟机的IP地址以及MAC地址。如下:

ifconfig

可以看到虚拟机确实获取到了IP地址,并且MAC地址也确实是我们指定的。

以上讲解的是在网络有DHCP服务器的情况,下面我们来讲解没有DHCP服务器的情况。

二、网络中不存在DHCP服务器

首先关闭DHCP服务器,如下:

/etc/init.d/dhcpd stop

修改kickstart配置ks.cfg有关网络的配置如下:

在ks.cfg文件中,我们定义虚拟机的IP地址、子网掩码、默认网关、DNS服务器以及主机名。如下:

IP:192.168.1.220 DNS:192.168.1.1 hostname:ilanni

修改完毕后,我们来通过KVM创建虚拟机,使用如下命令:

virt-install -n kickstart -r 2048 --vcpus=1 --os-type=linux -l nfs:192.168.1.11:/iso -f /dev/vg1/kickstart --bridge=br0 -m 52:54:00:12:D7:5D --nographics -x "console=ttyS0 --device=eth0 ip=192.168.1.220 netmask=255.255.255.0 gateway=192.168.1.1 ks=nfs:192.168.1.11:/ks/ks.cfg ksdevice=eth0"

注意:KVM中定义的IP地址和ks.cfg文件定义的IP可以相同也可以不相同,但是两个IP地址必须为同一个网段。并且最后虚拟机的IP地址以ks.cfg文件中配置的为准。

通过上述两张截图,我们可以看出在没有DHCP服务器时,我们通过为KVM安装虚拟机时配置IP地址和ks.cfg配置IP地址,也可以通网络安装CentOS系统。

系统安装完毕后,我们重启进入虚拟机,查看我们定义的相关网络配置及主机名。如下:

ifconfig

more /etc/resolv.conf

通过上图,我们完全看出虚拟机的网络配置和主机名就是我们通过ks.cfg文件配置的。

到此我们的实验就已经结束了,在此我重申下。

在KVM中网络CentOS系统不一定需要DHCP服务器,但是如果是物理机网络安装CentOS系统,必须要有DHCP的支持。而无论是KVM还是物理机安装CentOS系统,都是需要TFTP服务器的支持。

烂泥:KVM与kickstart集成的更多相关文章

  1. 烂泥:KVM、kickstart与nginx集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章介绍了FTP.NFS与KVM.kickstart集成的案例,从这篇文章开始,我们来介绍HTTP方式与KVM.kickstart集成. HTTP ...

  2. 烂泥:KVM、kickstart与FTP集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章中,我们介绍了有关KVM.kickstart与NFS集成的相关内容.在这节我们将继续介绍FTP与KVM.kickstart集成的相关操作. ...

  3. 烂泥:KVM、kickstart与NFS集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 其实这篇文章原本是可以不写的,不过为了学习NFS的使用形式还是写下,算是作为一个笔记. 有关NFS的搭建与配置,可以参考我以前的文档<烂泥:NFS ...

  4. kvm使用kickstart文件自动安装系统

    假定kvm已经准备好 1.创建磁盘 qemu-img create -f qcow2 /kvm/os/vm-01.qcow2 16G 2.上传或下载安装镜像 mkdir -p /kvm/iso cd ...

  5. 烂泥Linux学习笔记

    把最近学习过程中所写的文章整理了下:注意:本帖会持续性更新!!! 虚拟化篇:<烂泥:虚拟化KVM安装与配置><烂泥:KVM安装centos6.5系统><烂泥:KVM中安装 ...

  6. KVM 虚拟化基本搭建

    KVM虚拟化技术 KVM是基于x86架构上Linux操作系统的全虚拟化解决方案 ,在Centos6.3系统中,kvm已经被集成到内核中,相当于使用内核来做虚拟机管理程序.由于KVM本身就工作于内核环境 ...

  7. Hadoop集群(第1期)_CentOS安装配置

    CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会获得七年的支持(通过安全更新方式 ...

  8. CentOS6.0/RedHat Server 6.4安装配置过程 详细图解!

    1.准备安装 1.1 系统简介 CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会 ...

  9. CentOS安装配置

    1.准备安装 1.1 系统简介 CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会 ...

随机推荐

  1. MEF(Managed Extensibility Framework )的入门介绍

    1.什么是MEF MEF是一个来自于微软协作构建扩展应用的新框架,它的目的是在运行中的应用中添加插件.MEF继承于.NET 4.0 Framework平台,存在于各种应用平台的系统程序集中 2.程序集 ...

  2. JavaScript一些函数

    1.prompt()函数:有两个参数,一个是显示用户输入框上面的标签,另一个是输入框的初始值.用来接收用户输入的值,然后把它返回到代码中: 例如: <doctype html> <h ...

  3. IT人生思考

    夜已深,心里却十分清醒... 说说,这段时间经历的事情吧.我是一枚IT菜鸟,2014年毕业于武汉软件工程职业学院.大学时代,虽然没翘过课,专业学的也不是特别好.当时也没有想过毕业会从事IT行业.只是想 ...

  4. HipChat上传文件报未知错误解决方案

    前言 HipChat是Atlassian公司的一款团队协作即时通讯工具,服务端为Linux(官方给的服务端就是一个虚拟机),在Windows.Linux.Android.IOS.Mac等平台都有客户端 ...

  5. 剑指offer面试题31连续子数组的最大和

    一.题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...

  6. EffectiveJava——类层次优于标签类

    标签类: 有时候,可能会遇到带有两种甚至更多钟风格的类的实例的类,并包含表示实例风格的(tag)域.例如下面这个类,它能够表示圆形或者矩形: /** * 类层次优先与标签类 * @author wei ...

  7. 多准则决策模型-TOPSIS方法

    多准则决策–Multiple Criteria Decision Making 多准则决策–Multiple Criteria Decision Making 多准则决策是指在具有相互冲突.不可共度的 ...

  8. 你还记的那一年你我学习的-->>用表组织数据*(数据表)

    不知不觉,踏上IT之路,光阴似箭,日月如梭.虽好像回到从前,回到那个无忧无虑的童年,回到那个花样少年的青春;回到那个年少幼稚的小学;回到那个整天幻想的初中;回到那个顽强不屈,誓死不弃的高中;回到那个整 ...

  9. 如何解决cellIndex在IE下兼容性问题

    在不久前的项目中,涉及到一个表格数据展示在IE下出现兼容性问题.经过一段时间的排查,居然是一个cellIndex属性导致的. cellIndex表示返回一行的单元格集合中单元格的位置索引. 例子: & ...

  10. ASP.NET中UEditor使用

    ASP.NET中UEditor使用 0.ueditor简介 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点.开源基于BSD协议,所有源代 ...