Kickstart+PXE实现无人值守自动安装

配置前提

kickstart

在启动引导内核的时候只有传递给其vmlinuz即可,前提是必须让其内核访问的到我们的ks的位置,比如http 、 ftp、nfs 等,也可以放在本地的路径下可以通过cdrom进行对外告知

如果要通过网络服务器访问,有个前提就是必须将其配置好网络地址才可以;但还需要考虑一个问题,当anaconda启动的时候 它还会读取kickstart配置文件的

但kickstart中也可以配置网络参数的,如果kickstart分配的地址与vmlinuz所获取的不一样的话,则以后续的为准

所以我们可能需要两种不同的方式去获得ip的(ickstart中也完全可以指定ip地址)

如果我们使用了boot引导盘或安装引导盘,其boot提示符可能会输入 linux ks=xxxxx  等

因为boot本身所显示的提示符相当于grub,能够引导介质上的bootloader,当出现boot提示符的时候,需告知它读取哪个内核

这里boot提示符下的linux是标签的意思,这个标签是定义了去加载了哪个内核或哪个initrd ,虽然内核是同一个,但是后续的配置却各不相同

PXE

PXE是一种引导方式,可以通过网络来系统系统安装过程,但要想通过网络安装意味着在操作系统安装之前都必须具备一个ip地址,很显然如果系统启动之前是没有内核的

所以这一定是支持pxe功能的网卡,网卡可以通过dhcp协议到网络上申请获得ip地址

很显然如果使用pxe首先必须具备dhcp功能

获得完ip之后要启动引导界面必须加载boot.cat ioslinux.bin等文件

问题是pxe必须知道去哪里下载才可以

既然是通过pxe所引导,毫无疑问必须是在同一网络中才可以

所以这些网络通常是比较可靠的,因此需要通过一文件服务器来获得这样的文件

其是通过tftp进行获取文件的,它是一很小并且很简单的ftp工具基于udp协议进行工作,监听在udp的69端口并提供服务

通过这个服务获得pxe的配置文件 pxelinux.0

这个文件被加载到主机之后一旦启动了,通过这个文件的配置并可以去获得其他的配置文件

但是主机如何知道tftp服务器是谁

需要在dhcp服务器上告知tftp服务器地址,以及要加载的文件名

当这个文件记载完成,通过自己的配置,其类似于isolinux.bin 通过其调用isolinux.bin并且显示菜单

不管是那种方式启动引导过程,如果想让安装过程自动化则需要依赖于kickstar文件

还必须要保障获取的到kickstart文件和安装源

而安装源通常也是在网络上获得 ftp,nfs,http

因此要配置一个服务器端,需要以下步骤

·dhcp服务

·安装tftp服务

·配置kickstart文件

·配置安装源

准备安装源

当前节点配置成ftp或http服务器并且将光盘文件都进行复制

这里我们将光驱挂载到ftp目录

安装vsftpd

[[email protected] ~]# mkdir /var/ftp/pub/centos-6 -p

[[email protected] ~]# mount -r /dev/cdrom/var/ftp/pub/centos-6/

[[email protected] ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             6.3G  5.1G 891M  86% /

tmpfs                 498M     0 498M   0% /dev/shm

/dev/sda1             194M   28M 156M  16% /boot

/dev/mapper/myvg-mydata

3.0G   99M 2.8G   4% /mydata

/dev/sr0              4.1G  4.1G    0 100% /var/ftp/pub/centos-6

准备DHCP服务

[[email protected] test ~]# yum install dhcp -y

[[email protected] test ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

[[email protected] dhcp]# vim dhcpd.conf

修改以下参数

option domain-name "example.org";

option domain-name-servers 10.0.10.61;

default-lease-time 43200;

max-lease-time 86400;

subnet 10.0.10.0 netmask 255.255.255.0 {       #设置ip段以及子网掩码

range10.0.10.70 10.0.10.80;                 #设置ip池有多少ip

option routers 10.0.10.61;                   #设置网关为本地ip

}

#指定pxe的server地址以及文件名称

next-server 10.0.10.61;

filename="pxelinux.0";

启动dhcp

[[email protected] dhcp]# /etc/init.d/dhcpd restart

[[email protected] dhcp]# netstat -lntup | grep 67

udp       0      0 0.0.0.0:67                  0.0.0.0:*                               1880/dhcpd

 

安装tftp

tftpd是依赖于超级守护进程工作的,所以安装tfpt后需要开启xinetd服务才可以正常工作

[[email protected] ~]# yum install syslinux tftptftp-server -y

[[email protected] ~]# chkconfig tftp on

[[email protected] ~]#  /etc/init.d/xinetd restart

Stopping xinetd:                                          [FAILED]

Starting xinetd:                                          [  OK  ]

[[email protected] ~]#  netstat -lntup | grep 69

udp       0      0 0.0.0.0:69                  0.0.0.0:*                               1994/xinetd

准备pxelinux.0

Pxelinux.0位于/usr/share/syslinux/ 目录下

[[email protected] ~]# file/usr/share/syslinux/pxelinux.0

/usr/share/syslinux/pxelinux.0: data

由于我们安装的时候需要对其指定tftp路径,所以要将pxelinux.0复制到tftp的server_args对应的目录中去,也就是说其访问的根目录

[[email protected] ~]# cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

测试tftp能否下载使用

[[email protected] ~]# cd /tmp/

[[email protected] tmp]# tftp 10.0.10.61

tftp> get pxelinux.0

tftp> quit

[[email protected] tmp]# ls pxe*

pxelinux.0

确保tftp可用之后接下来将引导文件selinux.bin拷贝至tftp目录,而这些文件都在光盘里

[[email protected] tmp]#  cp/var/ftp/pub/centos-6/isolinux/{boot.msg,splash.jpg,vesamenu.c32}/var/lib/tftpboot/

[[email protected] tmp]# cp/var/ftp/pub/centos-6/images/pxeboot/* /var/lib/tftpboot/

[[email protected] tmp]#  ls /var/lib/tftpboot/

boot.msg  initrd.img pxelinux.0  splash.jpg  TRANS.TBL vesamenu.c32  vmlinuz

启动引导文件复制完成

配置pxe

在引导vesamenu.c32的时候需要引导pxe配置文件,pxe一般放在pxelinux.cfg目录下

[[email protected] tftpboot]# cd /var/lib/tftpboot/

[[email protected] tftpboot]#  mkdir pxelinux.cfg

[[email protected] tftpboot]# cdpxelinux.cfg/

在其目录下创建默认配置文件,而默认配置文件则就是isolinux.cfg

[[email protected] pxelinux.cfg]# cp/var/ftp/pub/centos-6/isolinux/isolinux.cfg ./default

我们需要对default做一些简单的修改,改之前先授权写权限

[[email protected] tftpboot]#  chmod +w default

[[email protected] tftpboot]# vimdefault

修改参数如下

label linux

menu label ^Install or upgrade an existingsystem

menu default

kernel vmlinuz

append initrd=initrd.img  ks=ftp://10.0.10.61/pub/kickstart/centos6.cfg

但是我们现在还没有这个路径,所以先来创建路径

[[email protected]]#  mkdir -p/var/ftp/pub/kickstart/

启动kickstart

[[email protected] ~]# system-config-kickstart

根据我们自定义来培训ks文件

但是我们现在还没有这个路径,所以先来创建路径

[[email protected] pxelinux.cfg]#mkdir -p /var/ftp/pub/kickstart/

启动kickstart

[[email protected] pxelinux.cfg]#system-config-kickstart

载入文件

选择安装方法

选择分区

使用默认分区,刚建立的系统如果没有进行分区的话可能还要重新初始化其标签的

其他默认,如果需要自定义安装包则可以在package选项中自定义,这里则不选

定义安装后的脚本

一系列都根据自定义即可 最后保存退出

保存命名

于是还需要对centos6.cfg 这个文件做一些修改

[[email protected]]# vim centos6.cfg

将repo开头的行注释

#repo--name="CentOS" --baseurl=cdrom:sr0 --cost=100

加入分区信息,但是centos6.cfg里没有其信息,所以我们将anaconda-ks.cfg 内的部分信息复制到centos6.cfg,复制内容如下:

在clearpart参数下面开始复制

part /boot--fstype=ext4 --size=300
part swap --size=512
part / --fstype=ext4 --grow --size=200

再将其粘贴到clearpart --all--initlabel 参数下面

将配置文件拷贝到kickstart目录中

[[email protected] pxelinux.cfg]# cp centos6.cfg /var/ftp/pub/kickstart/

启动ftp

[[email protected]]# /etc/init.d/vsftpd start

万事俱备,重启任意一台空虚拟机 可以看到如下界面 证明已生效

END,感谢各位

Kickstart+PXE实现无人值守自动安装

时间: 2024-10-07 18:39:16

Kickstart+PXE实现无人值守自动安装的相关文章

无人值守自动安装CentOS6.4

在大规模的linux应用环境中,如web集群.分布式计算等,服务器往往并不具备光驱设备,这种情况下为数十乃至上百台服务器裸机快速安装系统,传统的U盘.移动光驱等安装方法显然力所难及,下面我们将部署基于PXE技术网络装机并结合Kickstart配置实现无人值守自动安装系统. PXE技术 PXE是由Inter公司开发的基于Client/Server模式的网络引导技术,其核心功能是让客户端通过网络从远端服务器下载引导镜像,从而实现网络启动.整个过程中,客户端要求服务器分配IP地址,再用TFTP协议下载

搭建PXE服务器,实现无人值守自动安装系统

实验:搭建PXE服务器,实现无人值守自动安装系统 在PXE服务器和新安装的服务器上分别安装http实现均衡负载 建立主从DNS服务器 第一步,先配置DHCP,目的是给需要安装系统的主机分配ip地址 服务器IP地址设为192.168.100.11 [[email protected] ~]# ifconfig eth0 | grep "inet addr" inet addr:192.168.100.11  Bcast:192.168.100.255  Mask:255.255.255.

基于PXE,kickstart实现通过网络自动安装CentOS6.5

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包

cobbler实现无人值守自动安装

Cobbler简介 使用cobbler,第一件事就是定义其distros 指的是定义一个特殊发行版的内核和init文件,这意味着我们要使用独立运行系统之外的独立引导内核来实现,也就是说要启动这个操作系统,首先加载的是init和内核文件,在我们真正启动系统之后initrd和内核则只要不重启则不会被使用,所以distros 主要是用来借助于外在的内核和initrd进行启动系统,而后通过其装置根进行部署 定义distros的方式有两种 ·自己准备外部的内核和initrd 用来引导一些特殊的映像文件 ·

PXE+Kickstart无人值守自动安装系统

安装系统的方式 1.光盘安装2.U盘安装3.网络安装.......都不够方便快捷. Redhat系主要有两种Kickstart和Cobbler. Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写.所以,如果ks.cfg文件涵盖了安装过程中所有

kickstart无人值守自动安装操作系统

            本次文章部分参考老男孩博客张导文章 PXE是什么? PXE(Pre-boot Execution     Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial     file transfer protocol)或MTFTP(multicast trivial fi

PXE实现无人自动安装Linux操作系统

PXE的安装(DHCP+TFTP+HTTP/FTP/NFS) 前提条件: 1.确保所有的终端和网络设备处于同一网段内. 2.这个网段内只能有一台的DHCP服务器. 3.所要装系统的裸机必须要支持PXE(现在的电脑网卡都已经集成) 开始开车: 1.首先当然要搭建一个DHCP的服务,为了提供IP地址给裸机,才能有下一步的开始.DHCP指定网段,指定下一个服务器(让裸机拿到IP后找的下一个人),并且指定pxelinux.0网卡引导文件. 2.装一个包是syslinux,找到pxelinux.0的引导文

KickStart+PXE实现自动化部署安装

前言 ??在日常的生产环境中,需要批量的部署大量相同的操作系统,如果我们去逐台安装无疑会花费大量的时间,通过Kictstart+PXE可以快速的部署安装,可以有效的节省人工和时间. ???什么是PXE? PXE(预启动执行环境),工作在Client/Server的工作模式,通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统:由Intel和Systemsoft公司于1999年9月20日公布的技术: ?PXE工作原理:???实验环境 操作系统:centos6.5server:

RedHat7搭建无人值守自动安装Linux操作系统(PXE+Kickstart)

Kickstart服务器 IP: 192.168.136.253   掩码:255.255.255.0   网关:192.168.136.2   DNS:192.168.136.2 安装部署yum源服务器 参考 http://www.cnblogs.com/edward2013/p/5020113.html 安装部署DHCP服务器 # yum -y install dhcp 修改配置文件 # vi /etc/dhcp/dhcpd.conf # # DHCP Server Configuratio