以下配置流程均在CentOS 6.7实现
实验环境:
PXE + httpd + dhcp + tftp-server + kickstart
实现环境:
PXE+httpd + dhcp + tftp-server + kickstart
简单介绍相关概念:
PXE:是一种安装方式,支持通过网络引导,访问服务器的文件来安装系统,需要网卡支持
http:文件服务器,存放系统ISO文件
dhcp:实现客户机地址分配
tftp:存放PXE相关的文件的服务器
kickstart:是安装程序anaconda的安装配置文件
注意:若没有PXE相关文件,如pxelinux.0,则需要安装syslinux
1.配置文件服务器,http文件服务器
安装httpd并设置开机启动 1
2
3
4
5
6
7
8
9
10
11
12
| [iyunv@johnson_linux ~]# yum install httpd
======================================================================================
软件包 架构 版本 仓库 大小
=======================================================================================
正在安装:
httpd x86_64 2.2.15-47.el6.centos.4 updates 831 k
为依赖而安装:
apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k
httpd-tools x86_64 2.2.15-47.el6.centos.4 updates 77 k
#设置开机启动
[iyunv@johnson_linux ~]# chkconfig httpd on
|
挂载光盘并复制光盘的所有内容至/var/www/html目录下 我这边挂载点是/madia/dvd1,挂载点可自行创建目录 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #挂载光盘
root@johnson_linux ~]# mount /dev/cdrom /media/dvd1
#看一下挂在后光盘的内容
[iyunv@johnson_linux ~]# ls /media/dvd1
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
#cp光盘内容至/var/www/html目录
[iyunv@johnson_linux ~]# cp -r /media/dvd1 /var/www/html
#我把文件夹改名为centos6.7方便辨认
[iyunv@johnson_linux ~]# mv /var/www/html/dvd1 /var/www/html/centos6.7
|
2.配置tftp服务器:
安装tftp-server并设置开机启动 1
2
3
4
5
6
7
8
9
10
11
| [iyunv@johnson_linux ~]# yum install tftp-server
=====================================================================================
Package Arch Version
=====================================================================================
Installing:
tftp-server x86_64 0.49-7.el6
Installing for dependencies:
xinetd x86_64 2:2.3.14-39.el6_4
Transaction Summary
=====================================================================================
|
创建tftpboot文件夹 1
| [iyunv@johnson_linux ~]# mkdir /tftpboot
|
将以下这些文件复制到tftpboot目录下 boot.msg initrd.img pxelinux.0 vmlinuz isolinux.cfg 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #复制boot.msg
[iyunv@johnson_linux ~]# cp /var/www/html/centos6.7/isolinux/boot.msg /tftpboot
#复制initrd.img
[iyunv@johnson_linux ~]# ls /var/www/html/centos6.7/images/pxeboot/initrd.img /tftpboot
#复制 vmlinuz
[iyunv@johnson_linux ~]# cp /var/www/html/centos6.7/images/pxeboot/vmlinuz /tftpboot
#复制pxelinux.0
[iyunv@johnson_linux ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot
#创建pxelinux.cfg目录
[iyunv@johnson_linux ~]# mkdir /tftpboot/pxelinux.cfg
#复制isolinux.cfg文件到/tftpboot目录并改名为default
[iyunv@johnson_linux ~]# cp /var/www/html/centos6.7/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
|
配置default文件 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| default linux # 修改为下面的label名字
#prompt 1
timeout 1
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.7!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux # 此处label名对应上面的default
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=172.18.0.144 # 添加ks文件的地址
|
配置/etc/xinetd.d/tftp 修改以下两处即可 1
2
3
4
5
6
7
8
9
10
11
12
13
| service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot ------#修改为自己创建的目录路径
disable = no ------#此处的yes改为no
per_source = 11
cps = 100 2
flags = IPv4
}
|
最后重启tftp服务 1
2
3
4
5
6
| [iyunv@localhost ~]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
#设置开机启动
[iyunv@localhost ~]# chkconfig xinetd on
|
3.配置dhcp服务器
安装dhcp并设置开机启动 1
2
3
4
5
6
7
8
9
10
| [iyunv@localhost ~]# yum inatall dhcp
=====================================================================================
Package Arch Version Repository Size
=====================================================================================
Installing:
dhcp x86_64 12:4.1.1-49.P1.el6.centos base 822 k
Transaction Summary
====================================================================================
|
编辑/etc/dhcp/dhcpd.conf 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # dhcpd.conf
ddns-update-style none;
next-server 172.18.0.144; #tftp地址
filename "pxelinux.0"; # PXE文件名
subnet 172.18.0.0 netmask 255.255.0.0 { # 设定子网
range 172.18.0.0 172.18.200.200; # 设定可分配的子网范围
option routers 172.18.0.1; # 配置路由网关
}
|
4.配置kickstart文件
安装system-config-kickstart.noarch 1
| [iyunv@johnson_linux ~]# yum install system-config-kickstart.noarch
|
在图形终端打开命令行窗口键入命令system-config-kickstart启动配置窗口
基本配置
引导选项配置
分区配置
网络配置
加密配置
防火墙配置
显示配置
安装包选择
安装脚本配置
保存退出,文件名ks.cfg
最后将生成的ks.cfg文件放在/var/www/html目录下即可 至此自动化安装环境配置完毕
使用虚拟器实验一定要将网络设置为桥接,否则服务无法连接dhcp服务器 关于ks文件的配置,想尝试去自己去编写,可以查考anaconda生成的anaconda-ks.cfg文件,就在root的家目录下
贴上我的ks文件:(以下ks文件以马哥的为范本做了简要的修改) #platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall –disabled
# Install OS instead of upgrade
install
# Use network installation
url –url=”http://172.18.17.2/centos6.7″
# Root password
rootpw –iscrypted $1$Ga8vc8m.$fmBL3Rail7oAeErVtJM/9/
# System authorization information
auth –useshadow –passalgo=sha512
# Use text mode install
text
firstboot –disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux –disabled
# Installation logging level
logging –level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Network information
network –bootproto=dhcp –device=eth0 –onboot=on
# System bootloader configuration
bootloader –append=”quiet” –location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart –all
# Disk partitioning information
part /boot –fstype=”ext4″ –size=200
part pv.008 –size=61440 volgroup vg0 –pesize=8192 pv.008
logvol / –fstype=ext4 –name=root –vgname=vg0 –size=20480
logvol swap –name=swap –vgname=vg0 –size=2048
logvol /usr –fstype=ext4 –name=usr –vgname=vg0 –size=10240
logvol /var –fstype=ext4 –name=var –vgname=vg0 –size=20480 %post
# set hostname
sed -i ‘s@HOSTNAME=.*@HOSTNAME=johnson_linux.server@’ /etc/sysconfig/network # set hosts
echo “172.18.17.2 johnson_server” >> /etc/hosts %end %packages
@base %end 总结:ks文件配置比较重要,也是比较有技术含量的一环,网络环境配置可以按部就班,但是ks文件却需要自己去定制,能读懂ks文件是关键,用system-config-kickstart来生成的ks文件也有不足之处,比如分区,就不能使用LVM,需要用到逻辑卷需要自己手动去编写ks文件
|