【采用PXE方式安装17台服务器,在自己虚拟机上进行的测试】
安装的包主要包括:vsftp tftp dhcp syslinux
配置文件包括
tftp安装比较简单
[root@oracle ~]# yum install system-config-kickstart -y
[root@oracle ~]# yum install tftp vsftpd dhcp tftp-server -y
[root@oracle ~]# yum install syslinux -y
# 我的centos-everything.iso中rpm包里面好像不大全,
# 安装dhcp总是会报依赖无法解决,实际操作中从互联网上下载的
# dhcpd.conf文件是不存在的,从dhcpd.conf.sample中粘贴
其中dhcp配置文件修改如下:
[root@oracle dhcp]# pwd
/etc/dhcp
#新建dhcpd.conf文件
# A slightly different configuration for an internal subnet.
subnet 192.168.43.0 netmask 255.255.255.0 {
range 192.168.43.100 192.168.43.200;
option domain-name-servers 192.168.43.1; #没有可以随便填一个
option domain-name "internal.example.org";
option routers 192.168.43.1; #没有可以随便填一个
option broadcast-address 192.168.43.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.43.128; #指定下一个dhcp服务器的地址,就是自己
filename "pxelinux.0";
}
tftp配置文件 /etc/xinet.d
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no ###yes改成no
per_source = 11
cps = 100 2
flags = IPv4
}
vsftp服务不用配置,默认在/var/ftp目录就是主目录
重点操作:
[root@oracle ~]# cp /usr/share/syslinux/pxelinux.o /var/lib/tftpboot/[root@oracle ~]# cd /var/lib/tftpboot/[root@oracle tftpboot]# mkdir pxelinux.cfg[root@oracle tftpboot]# cp /镜像的目录/isolinux/* /var/lib/tftpboot/
[root@oracle tftpboot]# cp isolinux.cfg pxelinux.cfg/default
##default文件时新增
default文件中67行的位置:
menu separator # insert an empty line
menu separator # insert an empty line
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.43.128/rhel7 ks=ftp://192.168.43.128/ks.cfg
label check
menu label Test this ^media & install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
##label linux 是启动界面对应的两段文字,method 和ks为新改的部分
#初始的default为check可以将这个default删除,就是默认第一个启动,即直接安装
遇到的问题和处理对策
1.我使用光盘直接挂载到ftp目录下,ftp不识别,所以网络dhcp虽然可以进入开机界面,但无法正常安装。
2.请关闭selinux,会导致搭建的ftp出现问题,复制进去的文件无法读出,setenforce=0
3.如果想在安装后进行操作,可在ks文件中,最后加入
%post ###这个是关键,但是测试了几次都没有成功
rm /etc/yum.repo.d/*.repo
wget ftp://192.168.43.128/test.repo /etc/yum.repo.d/
实际上,上面的代码根本不会执行,最后使用的还是
### create the hosts file
###
cat > ~/test << EOF
127.0.0.1 localhost.localdomain localhost
137.143.111.165 ultraminos.potsdam.edu ultraminos
137.143.108.133 minotaur.potsdam.edu minotaur
EOF
ks文件出问题:报错是错误的ks文件
原因是:
在/var/ftp/pub/ 的ks文件需要 other有r权限
- 1
3.安装出问题
原因是:自动安装的ks文件的脚本中应该加上 install
前面的脚本已经改过了