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

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. 判断Integer值相等最好不用==(未整理)

    今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang( ...

  2. thread_ThreadPoolExecutor

    目录 1.基础知识 2.简单应用 3.异常机制 4.丰富的扩展 一.基础知识 构造函数. public ThreadPoolExecutor( int corePoolSize, 指的是保留的线程池大 ...

  3. Google判断广告点击作弊的几种方式和数据

     Google判断广告点击作弊的几种方式和数据. 作弊广告点击的CTR数据太高网上有研究说如果CTR值大于了10%的站被干掉的可能性很高,他们会被单独拿出来分析.一般来说低于6-7%的CTR是安全红线 ...

  4. CRC16校验码生成

    /// <summary> /// 计算CRC-16 /// </summary> /// <param name="data"></pa ...

  5. Xcode配置libdc1394

    libdc1394是一个开源库,提供了一个Mac下完整的1394相机编程接口,这篇文章将介绍Xcode如何配置该库. 步骤: 1.下载libdc1394的源码,并解压 http://damien.do ...

  6. 泛函编程(21)-泛函数据类型-Monoid

    Monoid是数学范畴理论(category theory)中的一个特殊范畴(category).不过我并没有打算花时间从范畴理论的角度去介绍Monoid,而是希望从一个程序员的角度去分析Monoid ...

  7. 常见的几种RuntimeException

    一般面试中java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求.更多的....需要注意积累了   常见的几种如下:   NullPoi ...

  8. 在Hadoop平台跑python脚本

    1.开发IDE,我使用的是PyCharm. 2.运行原理       使用python写MapReduce的“诀窍”是利用Hadoop流的API,通过STDIN(标准输入).STDOUT(标准输出)在 ...

  9. web安全——防火墙

    简介 用于实现服务器(Linux)的访问控制的功能的. 分硬件和软件防火墙. 主要是控制访问的流入和服务器的流出. 通过黑名单和白名单的思想来实现更细粒度的控制,这个一般结合其他的应用来定义策略实现. ...

  10. linux常识以及常用命令和参数

    linux,it人士众所周知,一款稳定.强大.开源的系统,1973年,unix正式诞生,ritchie等人用c语言写出第一个unix内核,之后经过不后人不断的改进,形成现在linux的各个版本,其中比 ...