使用PXE+DHCP+TFTP+kickstart搭建无人执守系统安装服务器
原理和概念:
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服务以及开启服务,设置开机自动启动
[root@chuck ~]# yum install vsftpd -y #必须配置/etc/yum.repos.d 能够连接网络 [root@chuck /]# systemctl start vsftpd #启动ftp服务
[root@chuck /]# 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配置文件及开启服务
[root@chuck /]# yum install -y tftp tftp-server xinetd #安装服务以及守护进程服务 配置tftp服务器: vim /etc/xinetd.d/tftp 修改配置文件里面的13,14行。改成以下内容: server_args = -s /tftpboot # 表示服务器默认的目录是 /tftpboot disable = no
修改完毕需要重启一下xinetd服务,查看服务端口是否打开。
[root@chuck /]# systemctl start xinetd
[root@chuck /]# lsof -i :69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 2324 root 5u IPv4 35075 0t0 UDP *:tftp
3.安装dhcp,修改配置文件及开启服务
[root@chuck /]# yum install -y dhcp
配置DHCP服务器:
[root@chuck /]# 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网段都行)
[root@chuck ~]# ifconfig ens38 192.168.1.10/24 [root@chuck /]# >/etc/dhcp/dhcpd.conf #清空此配置文件,重新进行编写。
[root@chuck /]# 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启动所需的相关文件
安装软件:
安装包
[root@chuck /]# yum install -y system-config-kickstart && syslinux 准备tftp需要共享出去的文件 [root@chuck~]# mount /dev/cdrom /media/ [root@chuck~]# mkdir /tftpboot [root@chuck~]# mkdir /tftpboot/pxelinux.cfg [root@chuck~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。 [root@chuck~]# cp /media/images/pxeboot/initrd.img /tftpboot/ [root@chuck~]# cp /media/images/pxeboot/vmlinuz /tftpboot/ [root@chuck~]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default [root@chuck~]# 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源为本地源,否则下面在选择软件包安装这一步不能选择,提示被禁止
[root@chuck ~]# cd /etc/yum.repos.d/ [root@chuck 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 [root@chuck yum.repos.d]# mkdir bak [root@chuck yum.repos.d]# mv *.repo bak/ [root@chuck yum.repos.d]# ls bak CentOS-Base.repo.old [root@chuck yum.repos.d]# vim my.repo [development] name=my-centos7-dvd baseurl=file:///var/ftp/pub enabled=1 gpgcheck=0 [root@chuck yum.repos.d]# yum makecache
安装system-config-kickstart软件包:
[root@chuck ~]# 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
到此所有关于安装的配置已经配置完毕,保存:点击左上角的文件选择保存,选择下保存的路径
[root@chuck~]#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源,用于客户端安装时,读取软件包用:
[root@chuck~]#mount /dev/cdrom /var/ftp/pub #挂载RHEL7安装光盘到/var/ftp/pub目录下
重启下FTP服务
[root@chuck ~]# systemctl restart vsftpd 建议关闭防火墙和selinux, 如果没有关闭的话,tftp服务会有问题。 [root@xuegod63 ~]# getenforce Disabled 设置防火墙: #iptables -F 配置两台机器的网络模式为:VMnet4 给server 设置一个和DHCP 定义相同网段的IP 接着启动DHCP,设置为开机启动 [root@chuck /]# systemctl start dhcpd [root@chuck /]# 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。后续等待自动安装即可!!
使用PXE+DHCP+TFTP+kickstart搭建无人执守系统安装服务器的更多相关文章
- win2003系统网络安装——基于linux+pxe+dhcp+tftp+samba+ris
原文发表于:2010-09-16 转载至cu于:2012-07-21 一.原理简介 PXE(preboot execute environment)工作于Client/Server的网络模式,支持工作 ...
- Manjaro搭建无密访问samba服务器
为了方便Linux在Windows平台下开发,搭建Manjaro无密访问samba服务器 后面加了Windows下搭建samba方法 安装smb服务器 我用的是Manjaro gnome 18,需要安 ...
- PXE+HTTP+TFTP+Kickstart实现无人值守部署centos6.10
在联网的状态下安装所需软件: Shell> yum install dhcp httpd tftp-server xinetd syslinux system-config-kickstart ...
- PXE+DHCP+TFTP+Cobbler 无人值守安装centos 7
Cobbler(补鞋匠)是通过将DHCP.TFTP.DNS.HTTP等服务进行集成,创建一个中央管理节点,其可以实现的功能有配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电 ...
- PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统
PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统 PXE + Kickstart PXE的工作流程及配置文件 Kickstart的配置文件 Linux安装大致可以分为2个阶段 第 ...
- Linux系统网络安装——基于pxe+dhcp+nfs+tftp+kickstart
原文发表于:2010-09-05 转载至cu于:2012-07-21 一.原理简介 PXE(preboot execute environment)工作于Client/Server的网络模式,支持工作 ...
- DHCP服务基本搭建
DHCP原理 DHCP租约四部曲: A:客户端进行IP请求 当一个DHCP客户机启动时,会自动将自己的IP地址配置成0.0.0.0,由于使用0.0.0.0不能进行正常通信,所以客户机就必须通过DHCP ...
- linux上的PXE装机服务的搭建
PXE 先安装一下依赖服务 yum -y install vsftpd dhcp tftp syslinux tftp-server cd /var/ftp/pub/ mkdir dvd 设置权限 c ...
- Linux搭建基于Apache的HTTP服务器
Linux搭建基于Apache的HTTP服务器 实验目标: 通过本实验掌握基于Linux的WWW服务器搭建. 实验步骤: 1.安装http服务 2.防火墙放通http服务 3.编辑测试网页 4.开 ...
随机推荐
- Docker 自建私有Registry 私有仓库
目录 说明 介绍 原理 搭建 查看配置文件 启动 上传和下载镜像测试 测试上传镜像 测试下载镜像 说明 记录搭建 docker 私有仓库步骤 介绍 docker镜像可以托管到dockerhub中,跟代 ...
- CSRF(Cross-site request forgery)跨站请求伪造
CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写 ...
- 进入编辑模式、vim命令模式、vim实践
第4周第5次课(4月13日) 课程内容:5.5 进入编辑模式5.6 vim命令模式5.7 vim实践 5.5 进入编辑模式 所谓编辑模式就是进入到一个可以编辑文本文档的模式,常规的方式就是按小i进入编 ...
- 虚拟机中linux操作系统raid5(5块磁盘,3块做raid,2块做备份)配置流程及损坏磁盘的移除
1.打开所要用的虚拟机,点击编辑虚拟机设置,点击硬盘,添加 2.一直点击下一步不做修改,直到最后完成 3.按照以上步骤添加5块磁盘 4.点击开启虚拟机,输入用户名root密码登录进去 5.进入虚拟机后 ...
- JQuery之Ajax应用
众所周知JQuery中的Ajax主要用于数据传输,其数据传输格式为JSON格式数据,比XML格式数据传输更快. ajax 是 Asynchronous JavaScript and XML的简写,aj ...
- Java并发编程学习随笔 (一) 使用run() 和 start()的差别
java多线程run()和start()的区别 当你启动线程,使用start(),系统会把run()方法当成线程执行体来处理,这是正常的,也是正确的情况.但是,当你启动线程时,调用run()方法,系统 ...
- iOS开发-CoreMotion框架
转自: CoreMotion是一个专门处理Motion的框架,其中包含了两个部分 加速度计和陀螺仪,在iOS4之前加速度计是由 UIAccelerometer 类 来负责采集数据,现在一般都是用Cor ...
- git log详细使用参数
1. 可以看到fileName相关的commit记录 git log filename 2. 可以显示每次提交的diff git log -p filename 3. 只看某次提交中的某个文件变化,可 ...
- Redis 命令执行过程(下)
在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命令执行的整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据 ...
- Socket无法通过防火墙的问题
无论是配好端口还是例外的应用程序都不行 更改本地终结点为 socket.Bind()); IPAddress.Any 不要使用127.0.0.1 不要使用127.0.0.1 不要使用127.0.0.1