PXE_INSTALL.sh

#!/bin/sh

#  PXE_install.sh
#  
#
#  Created by guoguo on 2019/5/27.

 

服务器:10.100.10.41

 1、服务器禁用SElinux,然后进行重启操作

 [root@localhost ~]# cat /etc/redhat-release
  CentOS Linux release 7.2.1511 (Core)
 [root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
 [root@localhost ~]# setenforce 0
 [root@localhost ~]# systemctl reboot
 [root@localhost ~]# getenforce
 Disabled


 
 2、关闭防火墙及清空策略
 

[root@localhost ~]# systemctl stop firewalld.service
 [root@localhost ~]# systemctl disable firewalld.service
 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# iptables -F
 [root@localhost ~]# iptables -L -n
 Chain INPUT (policy ACCEPT)
 target prot opt source destination
 Chain FORWARD (policy ACCEPT)
 target prot opt source destination
 Chain OUTPUT (policy ACCEPT)
 target prot opt source destination
 [root@localhost~]#


 
 3、软件安装
 

[root@localhost ~]# yum install -y httpd dhcp tftp-server tftp syslinux lftp
 [root@localhost ~]# rpm -q httpd dhcp tftp-server tftp syslinux lftp
httpd-2.4.6-89.el7.centos.x86_64
dhcp-4.2.5-68.el7.centos.1.x86_64
tftp-server-5.2-22.el7.x86_64
tftp-5.2-22.el7.x86_64
syslinux-4.05-15.el7.x86_64
lftp-4.4.8-11.el7.x86_64


 
三、各组件配置及准备
一)DHCP服务配置
 1、修改dhcpd配置文件
[root@localhost ~]# [root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

[root@localhost ~]#

egrep -v '#|^$' /etc/dhcp/dhcpd.conf
option domain-name "sxw.com";
option domain-name-servers ns1.sxw.com, sxw.com;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.100.10.0 netmask 255.255.255.0 {
range dynamic-bootp 10.100.10.42 10.100.10.49; //dhcp分发的地址范围
option domain-name-servers 114.114.114.114; //dns
option routers 10.100.10.254; //网关
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 10.100.10.41; //TFTP服务器地址
filename "pxelinux.0"; //指定引导文件位置,这里是TFTP根目录下的pxelinux.0
}


 
 2、启动dhcpd服务,并设置为开机启动
 

[root@ localhost ~]# systemctl start dhcpd.service
[root@ localhost ~]# systemctl enable dhcpd.service


[root@localhost ~]# ss -nulp | grep dhcp
UNCONN     0      0            *:67                       *:*                   users:(("dhcpd",pid=2869,fd=7))
[root@localhost ~]#

二)Httpd服务配置
1、目录建立及光盘挂载

[root@localhost ~]# mkdir -pv /var/www/html/CentOS72
[root@localhost ~]# mount -o loop /root/CentOS-7-x86_64-Minimal-1511.iso /var/www/html/CentOS72/
 


2、启动httpd服务,并设置为开机启动

[root@ localhost ~]# systemctl start httpd.service
[root@ localhost ~]# systemctl enable httpd.service


 
3、httpd服务端口查看

[root@localhost ~]# ss -tnl | grep 80
LISTEN 0 128 :::80

 [root@localhost ~]# lftp http://10.100.10.41/CentOS72  //用lftp对CentOS7进行测试
cd: received redirection to 'http://10.100.10.41/CentOS72/'
cd ok, cwd=/CentOS72                                          
lftp 10.100.10.41:/CentOS72> ls
drwxr-xr-x  --  /                    
-rw-r--r--  --  CentOS_BuildTag
drwxr-xr-x  --  EFI
-rw-r--r--  --  EULA
-rw-r--r--  --  GPL
drwxr-xr-x  --  LiveOS
drwxr-xr-x  --  Packages
-rw-r--r--  --  RPM-GPG-KEY-CentOS-7
-rw-r--r--  --  RPM-GPG-KEY-CentOS-Testing-7
-rw-r--r--  --  TRANS.TBL
drwxr-xr-x  --  images
drwxr-xr-x  --  isolinux
drwxr-xr-x  --  repodata
lftp 10.100.10.41:/CentOS72>


 
三)tftp服务配置
1、配置xinetd
 [root@localhost ~]#

 vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot //修改tftp的根目录
disable = no  //认disable是yes的,把它改为no即可
 per_source = 11
cps = 100 2
flags = IPv4
}


 
2、确保tftp.socket正常
 

[root@localhost ~]# systemctl start tftp.socket
[root@localhost ~]# systemctl enable tftp.socket
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost ~]# systemctl status tftp.socket

3、然后启动tftp.service
 

[root@localhost ~]# systemctl start tftp.service
[root@localhost ~]# systemctl enable tftp.service
[root@localhost ~]# systemctl status tftp.service

 
[root@localhost ~]# ss -unlp | grep 69 //端口为UDP:69
UNCONN 0 0  :::69 :::* users:(("systemd",pid=1,fd=42))
 
3、导入必要的引导文件
需要导入TFTP服务器的主要文件有:

    引导文件 - pxelinux.0
    内核文件:vmlinuz initrd.img
    引导菜单:isolinux.cfg -- 开机后选择启动项的菜单文

 

    引导文件pxelinux.0 由软件包syslinux生成,安装syslinux软件包

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/ //boot loader文件
 

    导入内核及菜单文件

内核文件:vmlinuz initrd.img
引导菜单配置文件: isolinux.cfg
系统自带的两种窗口模块之一:vesamenu.c32
窗口提示信息文件:boot.msg
窗口背景图片:splash.png
 
 

[root@localhost pxeboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/  //导入内核文件
 [root@localhost ~]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/
 [root@localhost ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/
 [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/ //新建pxelinux.cfg文件夹
 
[root@localhost ~]# ls /var/lib/tftpboot/  //查看目录下准备的文件
boot.msg chain.c32 initrd.img mboot.c32 memdisk menu.c32 pxelinux.0 pxelinux.cfg  splash.png vesamenu.c32  vmlinuz

    复制文件进行修改
 

[root@localhost ~]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

[root@localhost ~]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

//修改引导菜单选项:

[root@pxe1 pxelinux.cfg]# vim /var/lib/tftpboot/pxelinux.cfg/default

//首先修改菜单等待时间

 timeout 600  //菜单显示等待时间,单位为1/10秒,默认等待60秒。

//修改菜单等待时间为60,即等待6秒,若无操作则进入默认菜单;

 timeout 600

//然后修改显示菜单,找到文件中的以下部分

文件修改成如下

[root@localhost ~]# egrep -v '#|^$' /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 100
display boot.msg
menu clear
menu background splash.png
menu title CentOS 7
menu vshift 8
menu rows 18
menu margin 8
menu helpmsgrow 15
menu tabmsgrow 13
menu tabmsg Press Tab for full configuration options on menu items.
label linux
  menu label ^Install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.repo=http://10.100.10.41/CentOS72 inst.ks=http://10.100.10.41/CentOS72.cfg


[root@localhost ~]#

 

将CentOS7.kfg放到/var/www/html目录下面,CentOS72.cfg文件内容如下:

[root@localhost ~]# egrep -v '#|^$' /var/www/html/CentOS72.cfg
install
keyboard --vckeymap=us --xlayouts='us'
rootpw --iscrypted $6$kCUyCLUkB3YUmWz6$IoRIt5AY5QnN6zNUXSSoGEtK0u7glDYQvi3kH.AcqqPDLrBKBktDx1f2rDP4uaGvY7EA4ENq4wT5F6DWtH8c71
url --url="http://10.100.10.41/CentOS72"  //指定网络安装的服务地址及目录
lang en_US.UTF-8  
firewall --disabled
zerombr
auth --useshadow --passalgo=sha512
selinux --disabled
services --disabled="chronyd"
network  --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto --activate
network --hostname=Centos7.contoso.com //设置主机名
reboot
timezone Asia/Shanghai --isUtc --nontp
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
clearpart --none --initlabel
part / --fstype="xfs" --ondisk=sda --size=17931
part /boot --fstype="xfs" --ondisk=sda --size=500
part swap --fstype="swap" --ondisk=sda --size=2048
%packages
@^minimal
@core
kexec-tools
wget
tree
nmap
sysstat
lrzsz
dos2unix
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end


[root@localhost ~]#

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石兴稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值