如何开始 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\t/media/CentOS\tiso9660\tdefaults\t0 0\n" >> /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\n""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/

https://my.oschina.net/u/1454868/blog/219422

http://cwtea.blog.51cto.com/4500217/834991

如何无人值守安装linux系统(上)的更多相关文章

  1. Cobbler无人值守安装linux系统

    简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提 ...

  2. 无人值守安装linux系统

    需要使用到的服务:PXE + DHCP+TFTP+ Kickstart+ FTP KickStart是一种无人职守安装方式 执行 PXE + KickStart安装需要准备内容:  • DHCP 服务 ...

  3. (转)Cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  4. Vmware部署Linux无人值守安装Centos7系统

    Linux - 无人值守安装服务 # 需求分析 - 使用光盘镜像来安装 Linux 系统的方式; 坦白讲, 该方法适用于只安装少量 Linux 系统的情况, 如果生产环境中有数百台服务器都需安装系统, ...

  5. 在windows系统上安装VMware Workstation虚拟机,然后在虚拟机VMware Workstation上安装linux系统,在linux系统安装xshell的服务端,在windows系统上安装xshell。用windows系统上的xshell连接到linux

    第一步:安装xshell: 去百度   xshell ,然后安装一下就可以了.就是普通的软件安装,在这里不做过多的接收. 第二步:安装虚拟机VMware Workstation 百度安装,不做过介绍 ...

  6. Linux系统上安装mysql数据库

    一:下载并且上传安装包到linux系统上 1:下载地址:http://dev.mysql.com/downloads/mysql/ 2:通过LeapFtp工具,将windows上的mysql安装包拷贝 ...

  7. Linux系统上安装软件(ftp服务器)

    一:安装ftp服务器 在安装linux系统的时候,自定义软件包安装时,我已经勾选了ftp服务器,所以已经 安装过了,如果没有勾选,需要额外下载ftp的安装包,进行安装. ftp服务器搭建过程中遇到的问 ...

  8. 在VMware的Linux系统上安装Redis

    在VMware的Linux系统上安装Redis 具体过程如下: 下载,解压和编译: 在执行make的时候报错,具体报错信息如下: zmalloc.o: In function `zmalloc_use ...

  9. Redis进阶实践之二如何在Linux系统上安装安装Redis

    一.引言      上一篇文章写了"如何安装VMware Pro虚拟机"和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我们才可以在该系统上安装Redis. ...

随机推荐

  1. 130. Surrounded Regions (Graph; DFS)

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  2. 26.Remove Duplicates from Sorted Array(Array)

    Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...

  3. Python编程快速上手(七)Unsplash批量下载器

    首发于个人博客:http://rhinoc.top/post/python_7.html 程序描述 V1.0输入关键字搜索图片,模拟页面下拉获取更多图片,页面加载完成后获取图片链接并下载至指定文件夹. ...

  4. android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决

    产生错误的代码: @Override protected void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(n ...

  5. 实战:MySQL Sending data导致查询很慢的问题详细分析(转)

    出处:http://blog.csdn.net/yunhua_lee/article/details/8573621 这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法.理论.工具,很有 ...

  6. 基于etcd插件的CoreDNS动态域名添加

    前提条件:已经有一个可用的etcd环境. 一.CoreDNS简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目. ...

  7. Nginx学习基础(一)

    Nginx是个可靠高效的中间件,就是跟其他语言连接,可以做为一个工具的服务器. 可以处理的问题: 1.反向代理 (1)正向代理(以客户端为主):访问网站的时候,早起是在做通过n多个路由访问网站的操作, ...

  8. awk基础05-自定义函数和脚本

        在之前文章中,我们都是在命令行中写一些简短的awk命令,而awk做为一门解释型语言,一样是支持脚本运行的. 基本语法 #!/bin/awk -f # 注释 awk 脚本体 #!:同shell, ...

  9. 深入浅出 MappedByteBuffer

    前言 java io操作中通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于MappedByteBuffer操 ...

  10. 【JAVA 学习笔记1】代码注释

    在JAVA中支持单行注释和多行注释 1.单行注释,只要在注释的一行代码中加上双斜杠即可 例如: // int a=2,b=4,c=8; 2.多行注释,在开始位置加上/* 结束位置加上*/ 例如 /* ...