原理和概念:
1, 什么是 PXE 严格来说, PXE 并不是一种安装方式, 而是一种引导的方式. 进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡 (NIC), 即网卡中必须要有 PXE Client.PXE (Pre-boot Execution Environment) 协议使计算机可以通过网络启动.
协议分为 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 引导顺序为: 硬盘, 网络
执行 PXE + KickStart 安装需要准备内容:
• DHCP 服务器用来给客户机分配 IP;
• TFTP 服务器用来存放 PXE 的相关文件, 比如: 系统引导文件;
• FTP 服务器用来存放系统安装文件;
• KickStart 所生成的 ks.cfg 配置文件;
• 带有一个 PXE 支持网卡的将安装的主机;
一, 配置基础环境
1. 安装 ftp 服务以及开启服务, 设置开机自动启动
- [[email protected] ~]# yum install vsftpd -y #必须配置 / etc/yum.repos.d 能够连接网络
- [[email protected] /]# systemctl start vsftpd #启动 ftp 服务
- [[email protected] /]# systemctl enable vsftpd #设置开机自启
- Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
2. 安装 TFTP, 修改 tftp 配置文件及开启服务
[[email protected] /]# yum install -y tftp tftp-server xinetd #安装服务以及守护进程服务
配置 tftp 服务器:
VIM /etc/xinetd.d/tftp
修改配置文件里面的 13,14 行. 改成以下内容:
- server_args = -s /tftpboot # 表示服务器默认的目录是 /tftpboot
- disable = no
修改完毕需要重启一下 xinetd 服务, 查看服务端口是否打开.
- [[email protected] /]# systemctl start xinetd
- [[email protected] /]# lsof -i :69
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- xinetd 2324 root 5u IPv4 35075 0t0 UDP *:tftp
3. 安装 dhcp, 修改配置文件及开启服务
[[email protected] /]# yum install -y dhcp
配置 DHCP 服务器:
[[email protected] /]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #生成配置文件
cp: 是否覆盖 "/etc/dhcp/dhcpd.conf"? y
给 DHCP 服务器添加一张 VMNET4 网卡, ip 设置为 192.168.1.10(只要是 1 网段都行)
- [[email protected] ~]# ifconfig ens38 192.168.1.10/24
- [[email protected] /]#>/etc/dhcp/dhcpd.conf #清空此配置文件, 重新进行编写.
- [[email protected] /]# VIM /etc/dhcp/dhcpd.conf
- 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 "internal.example.org";
- 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.10;
- filename "pxelinux.0";
- }
配置完, 先不启动 DHCP , 准备工作已经完成.
二, 配置使用 PXE 启动所需的相关文件
安装软件:
安装包
[[email protected] /]# yum install -y system-config-kickstart && syslinux
准备 tftp 需要共享出去的文件
- [[email protected]~]# mount /dev/cdrom /media/
- [[email protected]~]# mkdir /tftpboot
- [[email protected]~]# mkdir /tftpboot/pxelinux.cfg
- [[email protected]~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #注, 只有安装了 system-config-kickstart 软件包, 才会有 / usr/share/syslinux / 目录及目录中的文件.
- [[email protected]~]# cp /media/images/pxeboot/initrd.img /tftpboot/
- [[email protected]~]# cp /media/images/pxeboot/vmlinuz /tftpboot/
- [[email protected]~]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
- [[email protected]~]# chmod 644 /tftpboot/pxelinux.cfg/default
三, 修改 default, 指定安装操作系统的方式和 ks.cfg 文件路径
VIM /tftpboot/pxelinux.cfg/default
然后修改 / tftpboot/pxelinux.cfg/default 的配置文件.
改: default
为 :default Linux
- # 修改第 1 行, 后面的 Linux 意思是寻找下面 61 行的 label Linux . 如下:
- default Linux #修改为 Linux
然后修改下 64 行(即在后面添加 inst.repo=ftp://192.168.10.10/pub inst.ks=ftp://192.168.10.10/ks.cfg)
append initrd=initrd.img inst.repo=ftp://192.168.1.10/pub inst.ks=ftp://192.168.1.10/sk.cfg #修改安装程序通过 FTP 服务器访问的配置文件
以上有关 default 配置文件的修改就是通过 ftp 服务器方式来访问 kickstart 文件.
其中第 1 行: default Linux 表示指定默认入口名称;
第 2 行: prompt 1 中 prompt 用来设置是否等待用户选择, 1 表示等待用户控制;
第 18,23,27,31 行 label Linux 表示定义的引导入口, 表示系统的不同安装方式, 如第 18 行定义的入口表示图形安装.
配置文件修改完了, 要开始自动安装, 安装程序必须能访问 kickstart 文件.
有多种方法可访问 kickstart 文件, 其中最常用的一种方法是通过网络服务器进行,
例如: ftp 服务器, web 服务器或 NFS 服务器, 这种方法非常易于部署, 并且也使管理更改变得十分简单. 也可以通过 USB 磁盘, CD-ROM 或本地硬盘. 如果 USB 或 CD-ROM 中的 kickstart 文件非常便于访问, 只需将 kickstart 文件放置在用来开始安装的引导介质中. 而使用 DHCP 服务器和 TFTP 及 PXE 配置起来更为复杂.
使安装程序指向 kickstart 文件的书写格式如下:
- ks=ftp://server/dir/file 如: ks=ftp://ftp 服务器 IP/ks.cfg
- ks=http://server/dir/file 如: ks=http://http 服务器 IP/ks.cfg
ks=nfs:server:/dir/file 如: ks=nfs:nfs 服务器 IP:/var/ftp/pub/ks.cfg
ks=hd:device:/dir/file 如: ks=hd:sdb1:/kickstar-files/ks.cfg
ks=cdrom:/dir/file 如: ks=cdrom:/kickstart-files/ks.cfg
以上有关 default 配置文件的修改就是通过 ftp 服务器方式来访问 kickstart 文件
接下来我们制作 kickstart 的无人值守安装文件.
在创建配置文件之前, 我们需要更改下 yum 源为本地源, 否则下面在选择软件包安装这一步不能选择, 提示被禁止
- [[email protected] ~]# cd /etc/yum.repos.d/
- [[email protected] yum.repos.d]# ls
- CentOS-Base.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
- CentOS-Base.repo.old CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo
- [[email protected] yum.repos.d]# mkdir bak
- [[email protected] yum.repos.d]# mv *.repo bak/
- [[email protected] yum.repos.d]# ls
- bak CentOS-Base.repo.old
- [[email protected] yum.repos.d]# VIM my.repo
- [development]
- name=my-centos7-dvd
- baseurl=file:///var/ftp/pub
- enabled=1
- gpgcheck=0
- [[email protected] yum.repos.d]# yum makecache
安装 system-config-kickstart 软件包:
[[email protected] ~]# system-config-kickstart #执行 system-config-kickstart 弹出来界面. 如果服务端安装了图形化界面可以直接使用此命令生成 ks.cfg, 如果是最小化安装, 需要使用 xmanager 软件中的 xstart 进行连接设置自己后期无人执守安装需要配置的参数:
注意: 用 xshell 远程连接, 执行上面的命令可能无法弹出选择框, 需要这样解决:
1. 安装 gdm
- yum install -y gdm
2. 在 Xstart 里执行: 需要输入服务端 IP:192.168.0.63 默认 SSH,user=root command:system-config-kickstart
3. 会弹出窗口配置 kickstart
设置下默认安装的语言, 时区, 根密码, 然后勾选下面的安装后重新引导.
然后选择安装方法, 使用 FTP 安装, 服务器地址填写为: 192.168.1.10 目录:/pub
点击引导装载程序选项 : 安装新的引导装载程序 安装选项: MBR
分区信息: 清除主引导记录, 删除所有现存分区, 初始化磁盘, 划分 / boot swap / 主要分区
网络配置默认即可
验证默认
防火墙全部关闭
显示配置: 可自行选择
自定义软件包: development-- 勾选里面三个子选项.
安装脚本: 在 "预安装脚本","安装后脚本" 对话框中, 可以分别添加在安装前, 安装后自动动行的可执行语句. 此项设置可以使服务器自动化配置变得更加容易.
例如: 配置客户机在完成安装后自动设置 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
到此所有关于安装的配置已经配置完毕, 保存: 点击左上角的文件选择保存, 选择下保存的路径
[[email protected]~]#cp ks.cfg /var/ftp #复制 ks.cfg 文件到 / var/ftp 目录下
注: ks.cfg 就是无人值守安装时要用的 Kickstart 文件.
要对应:/tftpboot/pxelinux.cfg/default 文件中设置过 ks=ftp://192.168.1.10/ks.cfg
配置基于 ftp 的 yum 源, 用于客户端安装时, 读取软件包用:
[[email protected]~]#mount /dev/cdrom /var/ftp/pub #挂载 RHEL7 安装光盘到 / var/ftp/pub 目录下
重启下 FTP 服务
[[email protected] ~]# systemctl restart vsftpd
建议关闭防火墙和 selinux,
如果没有关闭的话, tftp 服务会有问题.
- [[email protected] ~]# getenforce
- Disabled
设置防火墙:
#iptables -F
配置两台机器的网络模式为: VMnet4
给 server 设置一个和 DHCP 定义相同网段的 IP
接着启动 DHCP, 设置为开机启动
- [[email protected] /]# systemctl start dhcpd
- [[email protected] /]# chkconfig dhcpd on
注意: 正在将请求转发到 "systemctl enable dhcpd.service".
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
修改新建虚拟机 BIOS 启动顺序为网络优先, 加电后开始启动, 也可开机的时候直接 F12. 后续等待自动安装即可!!
来源: http://www.bubuko.com/infodetail-3340592.html