内网搭建一个搭建无人执守安装服务器
服务端:xuegod63.cn IP:192.168.1.63
方法:PXE + DHCP+TFTP+ Kickstart+ HTTP
运行原理如下图:
原理和概念: 1.1 什么是PXE 严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
网卡中必须有PXE芯片
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
2、 什么是KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并为 ks.cfg的生成一个名文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
设置BIOS引导顺序为: 硬盘,网络
前提:硬盘中没有系统。否则直接从硬盘启动了。
模式: C/S 模式
实验环境:
服务端:xuegod63.cn IP:192.168.1.63 网卡模式: vmnet2 也可桥接模式
执行 PXE + KickStart安装需要准备内容:
• DHCP 服务器用来给客户机分配IP;
• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;
客户机 pxe client 的ROM 有tftp client 会访问 tfpt-server
• HTTP 服务器用来存放系统安装参数文件(ks.cfg),镜像 ISO;
• KickStart所生成的ks.cfg配置文件;
• 带有一个 PXE 支持网卡的将安装的主机;
开始配置
1、安装所需要的服务及修改相应配置文件: 挂载http主目录方便客户机下载
[root@xuegod63 ~]# umount /dev/sr0
[root@xuegod63 ~]# mkdir /var/www/html/mnt
[root@xuegod63 ~]# mount /dev/sr0 /var/www/html/mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
取消httpd的欢迎页面 编辑 welcome.conf
重启httpd服务
service httpd restart
验证访问
修改yum源配置
[root@xuegod63 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel]
name=rhel-server
baseurl=file:///var/www/html/mnt
enabled=1
gpgcheck=0
[root@xuegod63 ~]# yum clean all
[root@xuegod63 ~]# yum list
2、安装所需软件包httpd tftp-server dhcp xinetd system-config-kickstart
[root@xuegod63 ~]# yum -y install httpd tftp-server xinetd dhcp system-config-kickstart
3、启动httpd并设置开机启动
[root@xuegod63 ~]# service httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
[root@xuegod63 ~]# chkconfig httpd on
4、修改tftp配置文件,并启动服务
[root@xuegod63 ~]# vim /etc/xinetd.d/tftp
disable =no 修改此处
server_args = -s /var/lib/tftpboot是tftp服务器运行时的参数。-s /var/lib/tftpboot表示服务器默认的目录是 /var/lib/tftpboot
接着重新启动xinetd服务,然后查看服务端口是否打开。
[root@xuegod63 ~]# service xinetd restart
[root@xuegod63 ~]# lsof -i:69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 3160 root 5u IPv4 25112 0t0 UDP *:tftp
OK,TFTP服务正常启动。Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。
5、修改dhcp配置文件及开启服务:
配置DHCP服务器:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name “xuegod63.cn”;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.63;
filename “pxelinux.0”;
}
注: 只保留一个subnet {。。。}
[root@xuegod63 ~]# service dhcpd restart
关闭 dhcpd: [确定]
正在启动 dhcpd: [确定]
[root@xuegod63 ~]# chkconfig dhcpd on
准备工作完成
二.配置使用PXE启动所需的相关文件
准备tftp需要共享出去的文件
[root@xuegod63 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。
[root@xuegod63 ~]# cp /var/www/html/mnt/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/ 拷贝引导文件 和内核
[root@xuegod63 ~]# cp /var/www/html/mnt/isolinux/*.msg /var/lib/tftpboot/ 显示信息文件
[root@xuegod63 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@xuegod63 ~]#cp /var/www/html/mnt/isolinux/isolinux.cf g /var/lib/tftboot/pxelinux.cfg/default
[root@xuegod63 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 指定ks.cfg文件的位置值
文件里面需要修改两行,修改第1行,后面的linux意思是寻找下面18行的label linux,
然FTP后修改下22行(即在后面添加ks=http://192.168.1.63/ks.cfg)。第22行的意思是使安装程序通过http服务器访问kickstart文件。
以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。
接下来我们打开终端输入system-config-kickstart弹出来界面。
[root@xuegod63 ~]# echo $LANG
en_US.UTF-8
[root@xuegod63 ~]# LANG=zh_CN.UTF-8
[root@xuegod63 ~]# system-config-kickstart
我们设置下默认安装的语言,时区,根口令,然后不要勾选下面的安装后重新引导。然后选择安装方法。
我们配置http服务器的安装方法。选择执行全新安装。然后点击引导装载程序选项。
配置grub相关选项。
设置分区大小。
配置网络,默认没有网络设置,点击添加网络,设备名称为eth0,网络类型为dhcp
验证,默认就可以了。
防火墙和selinux根据自己需求选择开启或者禁用。我选择关闭selinux和防火墙。
打上对勾以图形界面安装系统:
取消对勾,以字符界面安装系统,安装系统快:
自定义软件包。默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。
安装脚本:在”预安装脚本”,”安装后脚本”对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易。
例如:配置客户机在完成安装后自动设置YUM仓库。
rm -rf /etc/yum.repos.d/*
echo ‘[rhel-source]
name=Red Hat Enterprise Linux
releasever−
basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release’ > /etc/yum.repos.d/rhel6.repo
到此所有关于安装的配置已经配置完毕,保存:
点击左上角的文件选择保存,选择下保存的路径
[root@xuegod63 ~]# cp /root/ks.cfg /var/www/html/
注:ks.cfg就是无人值守安装时要用的Kickstart文件。
要对应:/var/lib/tftpboot/pxelinux.cfg/default文件中设置过ks=http://192.168.1.63/ks.cfg
[root@xuegod63 ~]# service httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
建议关闭防火墙和selinux
[root@xuegod63 ~]# getenforce
Disabled
[root@xuegod63 ~]# service iptables status
iptables:未运行防火墙。
[root@xuegod63 ~]# iptables -F
[root@xuegod63 ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
修改xuegod64 BIOS启动顺序为网络优先,加电后开始启动。
通常到这里,所有教程都会说一下句,你抽根烟,休息一下了。
检查安装后,是否执行了脚本: