pxe无人值守安装操作系统


实验环境

网关  classroom  172.25.8.254

workstation 172.25.8.9

server a-jeth0 172.25.8.10-外网

eth1 192.168.0.x内网

eth2 192.168.1.x备用

——————————————–

需求:自动化运维

设计:让服务器通过网络自动的安装操作系统

原理:1. dhcp  软件包

2. /etc/dhcpd.conf 配置文件

3. 例子配置文件 /usr/share/doc/dhcp­/dhcpd.conf.sample

1. 通过网卡引导计算机

2. 网卡和 BIOS 必须支持 PXE

3. 需要使用 DHCP 和 TFTP 服务

PXELINUX

1. SYSLINUX 启动工具主要用以启动 CD/DVD

2. 放入 /tftpboot 目录的 bootstrap 文件名必须保证和 dhcpd.conf 中配置的一样

(pxelinux.0)

3. Linux 安装和无盘工作站所需要的内核文件( vmlinuz 和 initrd.img) 也要放在 /tftpboot/ 目录

4. /tftpboot/pxelinux.cfg/ 目录放置网络启动配置文件

1. kickstart 文件位置由 PXELINUX 的启动配置文件告知安装内核

2. kickstart  文件可以由 nfs 或 http 服务器提供

3. 安装包源位置由 kickstart 文件指定

硬件:linuxserver

系统:rhel7

软件:system-config-kickstart、xinetd、 tftp-server.x86_64 、dhcp、 httpd

服务:system-config-kickstart  xinetd    vim /etc/xinetd.d/tftp    dhcpd       httpd 

部署:

(1)

yum -y install system-config-kickstart#在有图形化界面的workstation上安装,用来备份原来安装的信息

system-config-kickstart#打开软件->file->open file->设置基本信息->file->savefile

vim anaconda-ks.cfg #打开文件时会提示有些字段不能识别,打开文件删除最后的未识别的内容,其中一个end

vim ks.cfg #查看生成的ks文件,删除不用的软件包

scp ks.cfg root@172.25.8.12:/var/www/html#将生成的文件copy到serverc的http根目录

(2)

yum install tftp-server.x86_64 dhcp httpd -y

vim /etc/dhcp/dhcpd.conf #修改dhcp配置文件配置dhcp

———-

ddns-update-style interim;//配置使用 DHCP 更新 DNS

ignore client-updates;//忽略客户端更新

allow bootp;

allow booting;

default-lease-time 600;

max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {

option routers 192.168.0.1;

option subnet-mask 255.255.255.0;

next-server 192.168.0.12; 

filename “pxelinux.0”;

option time-offset -18000;

range dynamic-bootp 192.168.0.200 192.168.0.240;

default-lease-time 600;

max-lease-time 7200;

}

———————–

(3)

yum -y install xinetd#安装软件

vim /etc/xinetd.d/tftp#通过修改配置文件启动tftp服务

————-

disable= no

————-

systemctl start xinetd

(4)

updatedb

[root@serverc /]# locate pxelinux.0#查找文件

/usr/share/syslinux/gpxelinux.0

/usr/share/syslinux/pxelinux.0

cd /var/lib/tftpboot/

[root@serverc tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./

(5)

[root@serverc tftpboot]# mkdir pxelinux.cfg#新建目录存放default文件

[root@serverc tftpboot]# cd pxelinux.cfg/

[root@serverc pxelinux.cfg]# vim default#pxe 配置文件 ­­default

default vesamenu.c32

#prompt 1

timeout 60

menu title Welcom to link

label local

       menu label Boot from ^local drive

       menu default

       localboot 0xffff

label install

       menu label Install rhel7.1

       kernel vmlinuz

       append initrd=initrd.img  ks=http://192.168.0.12/ks.cfg

—————————–

(6)

cd /tmp

wget http://172.25.254.254/content/rhel7.1/x86_64/isos/rhel-server-7.1-x86_64-dvd.iso

[root@serverc pxelinux.cfg]# mount /tmp/rhel-server-7.1-x86_64-dvd.iso /var/www/html/dvd/ -o loop,ro

cp /var/www/html/dvd/isolinux/vesamenu.c32 /var/lib/tftpboot/#将网络安装所需要的启动和映像文件拷贝到 /tftpboot

cp /var/www/html/dvd/isolinux/vmlinuz /var/lib/tftpboot/

cp /var/www/html/dvd/isolinux/initrd.img /var/lib/tftpboot/

使用内网的网卡

[root@serverc ~]# ifdown eth0

[root@serverc ~]# ifdown eth2

[root@serverc pxelinux.cfg]# systemctl start xinetd

[root@serverc pxelinux.cfg]# systemctl start dhcpd

[root@serverc pxelinux.cfg]# systemctl start httpd

问题与解答:

1.报错:tftp无法启动

原因:xined没有打开

2.报错:pxlinux.0不存在

原因:pxlinux.0文件没有复制或者文件名错误

3.报错:unable to local configuration file

原因:default文件不存在

4.vmlinux   vesamenu.c32 文件等