如何开始 Linux 的无人值守安装
一、预备知识:
I、什么是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地址,所以在配置DHCP服务器时需要增加相应的PXE设置。
在PXE client的ROM中已经存在了TFTP Client。PXE Client通过TFTP协议到TFTP服务器上传下载所需的文件。
II、什么是KickStart
KickStart是一种无人值守的安装方式。
KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写的参数的情况时,安装程序会首先去查找kickstar生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果kickstart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后只需等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
1、KickStart流程:
大体流程:
DHCP(获取IP,寻找TFTP)
TFTP(交换获取开机启动文件)
HTTP(加载安装文件)
本地安装
2、详细流程图:
III、具体怎么做
整个安装环境由一个局域网,和连接到该局域网的三台机器组成:启动服务器(Boot Server),安装服务器(Installation Server),和待安装机器(Client)。其中启动服务器和安装服务器可以部署在同一台物理机上。表1列出了对这些机器的软硬件要求,和其上负载的服务与数据。
图1 网络安装原理示意图
表1 网络安装环境里各机器上的软硬件配置
二、搭建过程:
通过对系统的简单配置完成基础准备工作的搭建。
然后开始DHCP服务的配置与测试、复制文件至TFTP并启动XINETD守护进程,测试是否可正常进入安装模式。最后部署自动化完成,本文结。
三、简单部署:
I、关闭 SELINUX
安全增强式Linux(SELinux, Security-Enhanced Linux)是一种强制访问控制(mandatory access control)的实现。它的作法是以最小权限原则(principle of least privilege)为基础,在Linux核心中使用Linux安全模块(Linux Security Modules)。
# sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
建议改为强制(permissive)而非关闭(disable),原因是强制模式下SELINUX的标签信息会保留(方便以后操作)。
II、YUM 源镜像
Yum(Yellow dog Updater, Modified)由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。
# cd /etc/yum.repos.d/
# /usr/bin/rename repo repo.bak *
# /bin/mv CentOS.Media.repo.bak CentOS.Media.repo
# sed -i "s/enabled=0/enabled=1/" CentOS-Media.repo
III、挂载光盘镜像
磁盘映像,是指将有某种存储设备(例如CD)的完整内容及结构保存为一个电脑文件,所以通常这些文件都会是很大。一般只有一个文件,里面包含了许多的文件备份。镜像的制作方法除了工具把实体磁盘的内容保存起来之外,也有专门的工具可不从实体磁盘制作出镜像(例如不需读取实体CD即可制作CD镜像)最常用到的磁盘镜像是光盘镜像,是指从CD或DVD制作的镜像。简单地说,光盘镜像就是CD或DVD的拷贝,所有的数据都存在一个文件中,借此保存CD或DVD的结构及完整性。光盘镜像通常是以ISO 9660格式存储的,其扩展名为.iso。
# mkdir /media/CentOS
# cp -ra /etc/fstab /etc/fstab.bak
# printf "/dev/sr0 /media/CentOS iso9660 defaults 0 0
" >> /etc/fstab
# cd $HOME && mount -a
V、安装并修改文件
1、安装需要的组件包
提供PXE服务所需安装包
dhcp:动态主机配置协议,给客户端提供ip地址
tftp-server:tftp服务器端,提供系统安装所需文件
xinetd:tftp服务超级守护进程,用于唤醒tftp服务
httpd:基于http服务提供安装源
syslinux:提供pxelinux.0文件,此文件用于引导系统,相当于bootloader
# yum -y install {dhcp,tftp-server,xinetd,httpd,syslinux}
2、修改文件
# cp -ra /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
注意位置是/etc/dhcp/
文件夹内。
# cat /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth0
多块网卡应指定接口。
VI、IPTABLES 防火墙
1、关闭选项:
# iptables -X && iptables -F
# /etc/init.d/iptables restart
# chkconfig iptables off
2、允许通过:
# sed -i "s/^COMMIT$//;/^$/d" /etc/sysconfig/iptables
# cat /etc/services | grep -E "^(dhcp-|tftp|syslinux|http-)" | cut -c "17-24" | awk -F "/" '{ print "iptables -A INPUT -p "$2," --dport "$1" -j ACCEPT
""iptables -A OUTPUT -p "$2" --sport "$1 "-j ACCEPT"}' >> /etc/sysconfig/iptables && echo "COMMIT" >> /etc/sysconfig/iptables
# /etc/init.d/iptables restart
四、DHCP 搭建
动态主机配置协议(DHCP)是用于互联网协议(IP)网络的标准化网络协议。 DHCP由DHCP服务器控制,DHCP服务器动态分配接口和服务等网络配置参数,如IP地址。 可以启用路由器或住宅网关作为DHCP服务器。 DHCP服务器使计算机能够自动请求IP地址和网络参数,从而减少网络管理员或用户手动配置这些设置的需要。 在没有DHCP服务器的情况下,网络上的每台计算机或其他设备(例如,打印机)需要静态地(即手动地)分配给IP地址。
I、修改配置文件
!!!重要!!!
next-server <tftp server ip>; // 使 DHCP 告知工作站 TFTP 服务器IP
filename="pxelinux.0"; // 使 工作站得到IP后,可向 TFTP 使用该文件引导
II、工作站测试
五、TFTP 搭建
打开 /etc/xinetd.d/tftp:
disable = yes
改为:
disable = no
!!!重要!!!
# cp -ra /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# pxelinux.0 是安装 syslinux 服务时自带的;pxelinux.cfg 用于自动安装
# cp -ra /media/CentOS/isolinux/* /var/lib/tftpboot/
# 启动的必要文件集合
六、HTTP 搭建
# cp -ra /media/CentOS/* /var/www/html
# 系统安装文件
# /etc/init.d/httpd start
# 启动服务生效
七:全自动部署安装
ks.cfg
可被生成。
八:备注:
其实做全自动化还是有些麻烦的,需要先同传一遍远程启动BIOS设置。按照本文搭建服务(安装介质还需选择远程),最后制作系统化安装 pxelinux.cfg 文件(别忘记最终需关机)。关闭自动安装服务并再次同传硬盘启动为先的BIOS。
另外觉得麻烦也可以研究下这个:使用 Cobbler 自动化和管理系统安装
作者现在需要出去参加培训,故先写于此。晚些更新,欢迎交流。
八:参考文献
https://www.ibm.com/developerworks/cn/linux/l-autoinstl/