linux之PXE+kickstart实现无人值守安装

  PXE方式安装linux系统

1、PXE简介:

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

说白了,就是当公司批量采购一些服务器时,要批量安装相同的操作系统(如linux)时,一种更加便捷的安装方式。无需去每一台服务器上插拔光驱或者系统光盘,而是将安装光盘中的文件放到一台类似文件服务器中,来实现系统的安装。但是,单单采用PXE方式安装,必须手动执行安装配置过程,它并不能实现全自动化安装;

kickstart简介:

由红帽推出,给用户提供了一种自动化安装红帽企业Linux的方法。

许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在正常安装过程中所遇到的问题的答案。
    Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择。

说白了,将正常安装过程中的配置选择过程结果放入脚本中,在执行安装时,就无需再手动选择配置参数了,而是直接读取这个kickstart脚本文件,去实现自动化安装。需要结合PXE的方法来实现无人值守安装;

kickstart文件的获取:

方式1:复制模板/root/anaconda-ks.cfg,而后使用vim编辑修改一下;

方式2:使用system-config-kickstart(需要安装)来生成,建议也使用/root/anaconda-ks.cfg作为模板来进行(简单些);

该命令通过xshell使用后,会在windows上看到linux的操作窗口界面,进行点击配置即可(必须xshell);

或者,在linux的图形界面下,输入上面命令,也能打开;

也可以读进来一个配好的配置文件进行修改;

ksvalidator:检测手动创建的ks文件是否有语法错误;

格式:ksvalidator + ks.xx.cfg文件;(没有报错就没有问题了)

centos5和centos6的ks文件是不一样的,使用检测也会各自报错。语法不完全兼容;

方式3:

Red
Hat提供了一个样例文件。在Red Hat Linux 文档光盘中 RH-DOCS 目录里的 sample.ks
文件。你可以基于该样例来创建你自己的配置kickstart文件

2、配置环境:

准备两台虚拟机,一台安装http、dhcp、tftp服务。另一台用来测试pxe安装;

操作系统:centos 6.5 x86_64;

虚拟机网卡一定要能支持基于网络启动;

关闭selinux、关闭防火墙;

3、无人值守自动化执行安装原理:

4、服务部署:

1、安装dhcp服务:

作用:提供给客户端ip地址,及告诉客户端如何获得系统安装树的路径;

2、安装tftp:

作用:存放系统引导文件。提供kickstart自动化脚本;

3、安装http服务:

作用:提供安装树(类似系统光盘);

5、安装配置步骤:

环境准备:

1、 首先,我们在PXE服务端上添加两个网卡,一个是管理,一个是给DHCP服务使用;

2、闭linux防火墙和N额头workManager服务:

3、关闭selinux

[[email protected] ~]# vim /etc/selinux/config

SELINUX=disabled

4、给eth1提供配置文件,并启用eth0和eth1两个网卡:

[[email protected] ~]# ifconfig eth1
          eth1      Link encap:Ethernet  HWaddr 00:0C:29:B2:B7:30      (先看看识别出的mac是多少)
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:7308 (7.1 KiB)

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
                    HWADDR=00:0C:29:B2:B7:30
                    TYPE=Ethernet
                    UUID=5f4cb50c-7024-46b3-afc1-d49a1a1d992c
                    ONBOOT=yes
                    NM_CONTROLLED=yes
                    BOOTPROTO=static
                    IPADDR=1.1.1.1
                    NETMASK=255.255.255.0

:这里的配置是我从eth0那边复制过来的,改成了eth1和mac地址;

5、安装服务:

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

[[email protected] ~]# yum -y install tftp*

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# yum -y install xinetd

6、服务配置:

配置dhcp:

[[email protected] ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
        cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y       
        [[email protected] ~]# vim /etc/dhcp/dhcpd.conf

subnet 1.1.1.0 netmask 255.255.255.0 {
                        range 1.1.1.2 1.1.1.10;
                        option routers 1.1.1.1;
                        next-server 1.1.1.1;         :指定tftp服务器的ip地址;
                        filename "pxelinux.0";       :指定系统安装文件名;
                        }

[[email protected] ~]# service dhcpd start
            正在启动 dhcpd:                                           [确定]

配置tftp:

[[email protected] ~]# mkdir /test
        [[email protected] ~]# mount /dev/cdrom /test
        mount: block device /dev/sr0 is write-protected, mounting read-only
        [[email protected] ~]# cp /test/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
        [[email protected] ~]# cp /test/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
        [[email protected] ~]# yum -y install syslinux

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
        [[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
        [[email protected] ~]# cp /test/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
        [[email protected] ~]#        :将系统光盘中的文件复制到tftp中,作为安装时的引导文件;

[[email protected] ~]# vim /etc/xinetd.d/tftp

disable                 = no

[[email protected] ~]# chkconfig tftp on

[[email protected] ~]# service xinetd restart

[[email protected] ~]# chkconfig --list

tftp:              启用            :启用tftp,有超级守护进程负责监督;

配置http:

[[email protected] ~]# mkdir /var/www/html/centos6
        [[email protected] ~]# mount --bind /test/ /var/www/html/centos6/
        [[email protected] ~]# service httpd restart

:在http服务的根文件路径下创建安装树(也就是复制光盘文件到目录下),保证安装树可被访问;

7、开始PXE客户端测试:

保证测试机网卡第一启动项是基于网络的:

查看dhcp日志,发现ip已经下发给PXE客户端了:

客户端已经进入安装界面了:

指定安装方法,也就是指定安装树的位置:因为安装树我们放到了http根目录里面,所以选“URL”;

启用基于ipv4的网络,关闭ipv6:

指定安装数的路径,很重要:

指定正确之后,开始下载引导文件,接着就会进入熟悉的安装界面了:

ok,接下去,手动配置安装即可:

ok,这里基于PXE引导安装linux系统完成了,接下去,完成无人值守的安装方式:PXE+kickstart;

接下来一定要基于上面的配置环境进行:

1、制作kickstart文件;

这里,我们基于linux图像化界面使用system-config-kickstart去修改anaconda-ks.cfg的方式获得kickstart文件;

(注意:每一次我们安装完系统之后,都会在root家目录下面生成一个基于kickstart的anaconda-ks.cfg配置文件,可以借助这个文件来做修改,再给别的机器使用;)

[[email protected] ~]# yum -y install system-config-kickstart   :安装kickstart脚本生成命令;

[[email protected] ~]# system-config-kickstart                 :执行命令,进入图形界面进行参数配置;

1、利用该工具,去打开位于/root下面的anaconda-ks.cfg做参数修改,更加方便些,也可以自己重新配置:

修改基本配置:

修改安装方法:指定安装树的目录位置,位于http://1.1.1.1/centos6/下面(重要);

修改引导装载选项:

修改分区信息:为新系统做好分区,可以依自己定义;

修改网络配置:这里有了,就无需修改了;

保存配置到/root目录下面,然后退出即可:

2、根据生成的ks.cfg文件,做修改:

[[email protected] ~]# pwd
    /root
    [[email protected] ~]# ll
    总用量 104
    -rw-------. 1 root root  1595 3月  26 19:33 anaconda-ks.cfg
    -rw-r--r--. 1 root root 45537 3月  26 19:33 install.log
    -rw-r--r--. 1 root root 10033 3月  26 19:28 install.log.syslog
    -rw-r--r--  1 root root  1594 4月   4 08:03 ks.cfg
    drwxr-xr-x  2 root root  4096 4月   4 07:45 公共的
    drwxr-xr-x  2 root root  4096 4月   4 07:45 模板
    drwxr-xr-x  2 root root  4096 4月   4 07:45 视频
    drwxr-xr-x  2 root root  4096 4月   4 07:45 图片
    drwxr-xr-x  2 root root  4096 4月   4 07:45 文档
    drwxr-xr-x  2 root root  4096 4月   4 07:45 下载
    drwxr-xr-x  2 root root  4096 4月   4 07:45 音乐
    drwxr-xr-x  2 root root  4096 4月   4 07:45 桌面
    [[email protected] ~]# vim ks.cfg

repo --name="CentOS" --baseurl=http://1.1.1.1/centos6 --cost=100  :这里要改成安装树的位置;

:注意:这里一定要改成安装树的位置,不然自动装包时找不到;

[[email protected] ~]# cp ks.cfg /var/www/html/
    [[email protected] ~]#            :最后,将ks.cfg复制到httpd根目录下,注意要有读的权限,测试访问一下;

3、修改引导文件,使PXE支持kickstart:

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

label linux
                        menu label ^Install or upgrade an existing system
                        menu default
                        kernel vmlinuz
                        append initrd=initrd.img ks=http://1.1.1.1/ks.cfg    :添加ks.cfg路径位置;

4、重启服务:

[[email protected] ~]# service httpd restart

[[email protected] ~]# service dhcpd restart

[[email protected] ~]# service xinetd restart

5、客户端进行测试:

当客户端拿到dhcp下发的ip地址后则进入了安装界面,此时倒计时60秒进入安装,无需任何操作;

根据dncp指示,找到tftp,加载系统引导文件;

加载安装镜像:

初始化安装了:

开始装包了:共计1105个包;

包装完了之后,系统会自动重启,然后即可远程登陆了;

ok,pxe+kickstart 搭建就这样完成了;

结束!

时间: 2024-11-05 14:39:38

linux之PXE+kickstart实现无人值守安装的相关文章

第19章 使用PXE+Kickstart部署无人值守安装

章节概述: 本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统. 这种系统能够实现自动化运维.避免了重复性劳动,帮助提升工作效率,对于运维人员真的是太有帮助了. 本章目录结构 19.1 无人值守系统 19.2 部署相关服务程序 19.2.1 配置DHCP服务程序 19.2.2 配置TFTP服务程序 19.2.3 配置SYSLinux服务程序 19.2.4 配置VSFtpd服务程序 19.2.4 创建KickStar

使用PXE+kickstart部署无人值守安装

实验是在虚拟机上实现,在真实的生产环境下的无人值守安装,需要根据具体情况自行进行调整. 实验前,已经预装了一台CentOS6.5 32位的虚拟机,使用的是NAT模式,IP地址为192.168.206.131,网关是192.168.206.2. 我们要在无人值守安装服务端实现如下配置: tftp服务器:192.168.206.131 nfs服务器:192.168.206.131 dhcp服务器:192.168.206.131 先将软件进行安装: yum install -y tftp tftp-s

Linux系统下手把手完成无人值守安装服务

Linux系统下手把手完成无人值守安装服务 刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下.那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统? PXE+TFTP+FTP+DHCP+Kickstart服务可以搭建出一个无人值守安装系统.这种无人值守安装系统可以自动的为数十台服务器安装系统,将运维人员从重复性的工作中解救出来,大大提升了系统安装的效率. 如上图所示,是无人值守安装系统的工作流程. PXE(Preboot

DHCP+TFTP+pxe+Kickstart实现无人值守自动装系统

 已经提前配置好YUM 一.需检查iptableis是否关闭 二.安装DHCP服务并修改配置 三.安装tftp并修改其配置 四.配置PXE相关文件 五.使用system-config-kickstart生成自动装机配置文件,我这里是基于http实现的 六.修改/var/lib/tftpboot/pxelinux.cfg/default文件 七.把镜像放到http目录下 八.装机测试 OK DHCP+TFTP+pxe+Kickstart实现无人值守自动装系统

Pxe+Kickstart 无人职守安装

一.Pxe+ Dhcp + Tftp + Apache + Kickstart 简介. 1.)PXE: 可以提供网络接口的中间层,负责串联起tftp,dhcp,httpd,.Pex不依赖磁盘,而是通过网络找到tftp引导内核装载,找到httpd根据Kickstart配置文件内找到对应的软件包,并且为客户机通过dhcp动态分配IP地址. 2.)DHCP: UDP协议,67端口,通过配置地址池为客户机自动分配IP地址,通过租约来控制IP地址合理使用. 3.)TFTP: UDP协议,69端口,一种小型

自建DHCP TFTP服务 用PXE启动实现无人值守安装Centos6

1.安装DHCP TFTP yum -y install dhcp tftp-server tftp 2.配置DHCP文件 cat > /etc/dhcp/dhcpd.conf << EOF # option domain-name "dwhd.org"; #设置DHCP的DNS option domain-name-servers 172.16.0.1,114.114.114.114; #设置DHCP 分配出去的IP超时时间 单位秒 default-lease-ti

linux部署pxe+kickstart批量安装linux操作系统实施方案

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

PXE结合Kickstart实现无人值守安装CentOS6.5

简介 PXE:Pre-boot execution Environment,预启动执行环境,是由Inte公司开发的网络引导技术,工作在 Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统 安装条件 1.客户机的网卡支持PXE协议(集成 BOOTROM芯片),且主板支持网络引导.目前绝大多数服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可2.网络中有一台DHCP服务器以便为客户机自动分配地址.指定引

Linux的PXE kickstart网络自动装机

简介: PXE工作在client/server模式,允许客户机通过网络从远程访问服务器下载引导镜像,并加载安装文件或者整个操作系统. 若要搭建PXE网络体系,需满足以下条件. 客户机的网卡支持PXE协议,并且主板支持网络引导. 要有一台DHCP服务器以便客户机自动分配地址,指定引导文件位置. 服务器支持通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载. 但是通过PXE虽然能够通过网络实现多台客户机一起装机,但是期间还需要手动配置