软件包提取码:qgjl
pxe:预启动安装环境 有inter公司开发的 可以让计算机通过网络来启动操作系统(计算机需要支持pxe技)。
为了启动引导系统 从而启动整个操作系统
主要用于无人值守安装引导客户及安装操作系统
kickstart:无人值守安装的一种方式
原理:预先将原来运维人员填写的参数保存成一个文件(ks.cfg),安装过程中自执行里面的步骤。
1)DHCP给客户端分配IP,客户端发送请求,服务端分配IP。客户端会有ROM自启动芯片,本地是否有IOS,如果没有则通过网络安装。
2)TFTP简单文件传输协议,负责传输小文件,基于UDP进行传输,不需要任何验证可直接进行传输,主要用来传输引导文件
3)FTP用来传输完整的操作系统,通过目录共享的方式传递。
FTP两种模式:主动模式和被动模式
三种登录方式:
匿名用户 /var/ftp
本地用户 本地用户家目录
虚拟用户 基于本地用户家目录下
HTTPD 共享站点根目录 nfs共享指定的目录
一、传输的流程
1、client通过ROM自启动芯片来启动服务器,ROM会检测本地是否能安装操作系统,如果不能,则发送一个广播请丢,请求获取一个IP(DHCP)
2、服务器会做出响应,响应中包含IP、DNS、子网掩码和引导文件的位置以及TFTP服务器的IP
3、客户端得到TFTP服务器的IP,向TFTP服务器获取引导文件
4、TFTP传输客户端得到的TFTP服务器的IP,向TFTP和FTP服务器的IP
5、客户端向FTP服务器获取kickstart的文件和整个操作系统的安装包
6、FTP服务器将所需要的安装包传递给客户端
7、客户端安装号整个操作系统
名称 | IP |
---|---|
DHCP/FTP/TFTP | 192.168.1.1 |
二、无人值守安装系统的操作
1、安装DHCP
[root@CentOS1 ~]# yum -y install dhcp
[root@CentOS1 ~]# vim /etc/dhcp/dhcpd.conf
#添加以下内容
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.20 192.168.1.30;
next-server 192.168.1.1; #tftp服务器的IP
filename "pxeliux.0"; #引导文件的第一个文件名(相当于isolinux.bin)
}
#pxeliux.0 是通过pxe来启动引导文件
#isolinux.bin 是通过镜像来启动
2、安装TFTP服务
[root@CentOS1 ~]# yum -y install tftp-server xinetd #xinetd是tftp的管理程序
[root@CentOS1 ~]# vim /etc/xinetd.d/tftp
#修改内容
disable= yes #将yes改为no
[root@CentOS1 ~]# yum -y install syslinux #里面有引导文件
#将需要的引导文件放到TFTP目录下
[root@CentOS1 ~]# cd /var/lib/tftpboot/ #tftp的传输目录
[root@CentOS1 tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./ #引导程序
[root@CentOS1 tftpboot]# cp /cdrom/images/pxeboot/vmlinuz ./ #虚拟的内核
[root@CentOS1 tftpboot]# cp /cdrom/images/pxeboot/initrd.img ./ #虚拟的根文件系统
[root@CentOS1 tftpboot]# cp /cdrom/isolinux/vesamenu.c32 ./ #菜单
[root@CentOS1 tftpboot]# cp /cdrom/isolinux/splash.png ./ #背景图片
[root@CentOS1 tftpboot]# cp /cdrom/isolinux/boot.* ./ #提示信息
[root@CentOS1 tftpboot]# mkdir pxelinux.cfg #创建引导程序的配置文件的目录
[root@CentOS1 tftpboot]# cp /cdrom/isolinux/isolinux.cfg pxelinux.cfg/default #默认的引导程序文件 因为要让程序自动安装 所以选择默认安装配置 只能创建一个目录 让其加载default的配置文件
[root@CentOS1 tftpboot]# vim pxelinux.cfg/default
1 default linux #把菜单选择默认安装linux的选项
64 append initrd=initrd.img inst.stage2=ftp://192.168.1.1/centos ks=ftp://192.168.1.1/centos/ks.cfg quiet
#指定FTP服务的地址和kickstart配置文件的地址
[root@CentOS1 tftpboot]# systemctl start xinetd
[root@CentOS1 tftpboot]# systemctl start tftp
3、安装FTP服务
[root@CentOS1 tftpboot]# yum -y install vsftpd
[root@CentOS1 tftpboot]# cd /var/ftp/ #匿名用户共享目录
[root@CentOS1 ftp]# mkdir centos
[root@CentOS1 ftp]# cd centos/
[root@CentOS1 centos]# cp -r /cdrom/* ./ #将镜像文件复制到共享目录下
命令行界面
[root@CentOS1 centos]# cp /root/anaconda-ks.cfg ./ks.cfg #复制本机的kickstart
[root@CentOS1 centos]# chmod +r ks.cfg #添加可读权限
[root@CentOS1 centos]# vim ks.cfg
#修改以下内容
5 url --url=ftp://192.168.1.1/centos #从FTP服务器获取完整的操作系统
25 timezone Asia/Shanghai --isUtc #时间同步
#添加以下内容
69 reboot #重启
70 eula --agreed #自动同意协议
[root@CentOS1 centos]# systemctl start vsftpd
4、验证:
新建虚拟机 网络适配器两边一致 内存最少2G
图形化安装
1、需要创建一个名字为development.repo的yum源文件
[root@CentOS1 ~]# cd /etc/yum.repos.d/
[root@CentOS1 yum.repos.d]# ls
lkx.repo
[root@CentOS1 yum.repos.d]# mkdir default
[root@CentOS1 yum.repos.d]# mv lkx.repo default/
[root@CentOS1 yum.repos.d]# vim development.repo
#添加以下内容
[development]
name=development
baseurl=file:///cdrom #光盘挂载点
enabled=1
gpgcheck=0
[root@CentOS1 yum.repos.d]# yum -y install system-config-kickstart
[root@CentOS1 ~]# system-config-kickstart
编辑ks.cfg文件
#添加一下内容
37 @x11
38 initial-setup
39 initial-setup-gui
42 user --name=lkx --password=123.com
43 eula --agreed
[root@CentOS1 ~]# systemctl restart vsftpd