pxe自动化安装配置

pxe自动化安装配置

一、原理

pxe(Preboot Execute Environment)工作于Client/Server的网络模式,支持工作站通过网络从远程服务器下载映像,并由此支持来自网络的操作系统的启动过程,在启动过程中,终端要求服务器分配IP地址,再用TFTP协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

大体流程为:
DHCP(获取ip,寻找tftp)–> TFTP(交换获取开机启动文件) –> HTTP(或取安装镜像,或者写好的kickstart文件) –> 自动实现安装

二、配置过程

1、安装相关软件包

1、找到并安装所需的安装包
从原理可以知道,一定需要的是DHCP、HTTP、TFTP,还需要pxe,但是控制pxe的文件是pxelinux.0,所以需要找到包含pxelinux.0配置文件的安装包,由yum whatprovides可以找到
[root@localhost ~]# yum whatprovides */pxelinux.0
Loaded plugins: langpacks
syslinux-4.05-8.el7.x86_64 : Simple kernel loader which boots from a FAT
                           : filesystem
Repo        : rhel_dvd
Matched from:
Filename    : /usr/share/syslinux/pxelinux.0
[root@localhost ~]# yum install httpd tftp-server dhcp syslinux-4.05-8.el7.x86_64 -y

2、配置DHCP

有关dhcp的其他配置,在前面有写过的文档可以参考,这里只配置需要的配置
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
##这个文件的配置除了注释,最终只需要下面几行
option domain-name "lcl.com";
option domain-name-servers 172.25.254.70;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.25.254.0 netmask 255.255.255.0 {
  range 172.25.254.175 172.25.254.185;
  option routers 172.25.254.70;
  next-server 172.25.254.170;   ##表示客户端得到分配的ip后,去找这台主机
  filename "pxelinux.0";    ##访问170主机上的pxelinux.0文件
}
[root@localhost ~]# systemctl restart dhcpd ##重启服务,若无报错,则表示配置无误

3、配置tftp-server

[root@localhost ~]# vim /etc/xinetd.d/tftp
        disable                 = no  ##将yes改为no
[root@localhost ~]# systemctl restart xinetd.service

4、配置syslinux

[root@localhost ~]# cd /usr/share/doc/syslinux-4.05/
根据这个目录里面的README,pxelinux.txt文档进行配置

配置
tftp-server的默认目录是在/var/lib/tftpboot
pxelinux.0文件所在默认目录是在/usr/share/syslinux

首先将所需的安装镜像文件拷贝到/var/lib/tftpboot目录中
[root@localhost tftpboot]# scp [email protected]:/var/www/html/rhel7.0/isolinux/* .
##文件镜像是在70主机的http默认目录里的rhel7.0/里面,而安装所需的文件都在其下的isolinux目录中,所以直接把这个目录里面的全部内容复制到/var/lib/tftpboot目录中

根据前面的文档以及原理,可以知道需要把pxelinux.0文件也复制到/var/lib/tftpboot目录中
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

创建远程主机启动时会读取的自动安装文件
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cp isolinux.cfg ./pxelinux.cfg/default
##目录和文件名都必须同自带的配置指导文档相同

需要注意的是,此时运行客户端从网卡启动,使用pxe安装,会出现提示安装的界面,但是选择之后,会发现错误,无法安装,这是因为没有指定安装的源的位置,所以还需要对/var/lib/tftpboot/pxelinux.cfg/default文件进行设置
设置如下

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Install Red Hat Enterprise Linux 7.0
  kernel vmlinuz
  append initrd=initrd.img repo=http://172.25.254.70/rhel7.0
  ##指定通过一个正确的有完整进行的位置安装

5、客户端测试

客户端通过网卡启动
pxe自动化安装配置_第1张图片

客户端获得ip成功

pxe自动化安装配置_第2张图片

选择开始安装

pxe自动化安装配置_第3张图片

但安装后还需要自己选择配置
pxe自动化安装配置_第4张图片


由测试可以知道,此时还不算完全自动化安装,从前面的关于kickstart的文档中,可以知道,这个服务才是可以真正直线全自动化安装,所以可以将pxe和kickstart联系起来

三、pxe+kickstart

pxe的配置不需要改变,只需要安装并且完成ks.cfg文件的编写,以及将该文件和pxe联系起来即可。
配置如下

先安装配置kickstart
[root@localhost ~]# yum install system-config-kickstart.noarch -y
因为运行`system-config-kickstart`就可已配置ks.cfg文件,并且使用的是图形化配置,前面的文档中每步有详细的介绍,这里就不再具体配置
这里直接将ks.cfg文件保存到了/var/www/html文件中,便于访问

修改ks.cfg文件
[root@localhost ~]# vim /var/www/html/ks.cfg   ##设置一些安装配置
##在已经存在的配置后面添加
%packages     ##表示安装的包等等,可以自己设定其中的内容
@base
lftp
%end

%post
cat >>/etc/yum.repos.d/yum.repo <//172.25.254.70/rhel7.0
gpgcheck=0
EOF
%end

kickstart配置完成之后,修改pxelinux.cfg/default的配置
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Install Red Hat Enterprise Linux 7.0
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://172.25.254.170/ks.cfg

在客户端通过dhcp得到ip开始安装后的所有配置都可以通过这个文件进行设置,比如说默认光标在的位置
默认安装时的背景图,但要注意的是,通过网络下载的图分辨率和规定的不同,可以通过convert命令修改图片,这里就不进行实验了

客户端进行测试
客户端只要开机,不用进行任何操作,便可完成所有安装
pxe自动化安装配置_第5张图片

你可能感兴趣的:(服务器)