如何通过PXE实现一键自动化安装操作系统

如何通过PXE实现一键自动化安装操作系统,第1张

因为之前的工作需要搭建红帽实验室环境,由于机器数量比较多,所有需要批量自动化无人值守安装系统,所以我尝试使用RHEL5+PXE+DHCP+Apache+Kickstart安装了RHCE5.1 i386实验室环境,并取得了成功,不过过程比较漫长,所以我特地记录下PXE+DHCP+Apache+Kickstart无人值守安装的过程。现阶段,由于需要大规模应用CentOS5.8 x86_64系统用于集群环境,所以将此方法主要用于在公司内网批量安装新服务器系统,这极大地简化了用光盘重复安装CentOS5.8 x86_64的过程,再加上分布式自动化运维工具puppet进行批量部署,达到了自动化运维的目的,避免了重复性劳动,极大的提高了工作效率。

首先,我们来介绍一下与之相关的原理和概念。

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,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。

2. 什么是Kickstart

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

3. PXE + Kickstart的安装条件和详细步骤

执行PXE+Kickstart安装需要的设备为:

DHCP服务器。

TFTP 服务器。

Kickstart所生成的ks.cfg配置文件。

一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。

一个带有 PXE 支持网卡的主机。

系统环境绍如下:

服务器系统为CentOS 5.6 x86_64,IP为192.168.11.29(此服务器并非一定要限定为CentOS 5.8 x86_64系统),由于是最小化安装的,我们在后面要用到system-config-kickstart工具,它必须依赖于X windows,所以我们要提前安装好X windows及gnome并重启系统,步骤如下所示

先装X windows和GNOME桌面环境,命令如下所示:

yum -y groupinstall 'X Window System'

yum -y groupinstall 'GNOME Desktop Environment'

然后修改/etc/inittab文件并重启服务器,使其运行在图形模式下,主要修改文件内容如下所示:

id:5:initdefault:

重启服务器命令如下:

reboot

完成上述的准备工作后,PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8安装的步骤如下:

(1)我们先下载CentOS5.8 x86_64光盘至/usr/local/src下,并挂载至/mnt/cdrom目录下,并确认系统已安装好httpd服务,如下:

cd /usr/local/src

wget //mirror.neu.edu.cn/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-bin-DVD-1of2.iso

mkdir –p /mnt/cdrom

接下来我们挂载光盘ISO文件至/mnt/cdrom目录下,如下命令:

mount -o loop CentOS-5.8-x86_64-bin-DVD-1of2.iso /mnt/cdrom

CetnOS5.x x86_64系列已默认安装Apache,我们可以用命令看下其版本号,如下所示:

rpm -q httpd

命令显示结果如下所示:

httpd-2.2.3-65.el5.CentOS

(2)接下来我们复制光盘下的所有内容(文件和文件夹)到/var/html/www(此目录为Apache默认DocumentRoot目录)下,无论是红帽系统还是CentOS 5.x系统,如果是最小化安装,基本上第一张DVD光盘文件就够了,复制命令如下所示:

cp -rf /mnt/cdrom /var/html/www

(3)安装 tftp-server,并启用tftp服务,同时启动xinetd进程,步骤如下所示。

1.我们用命令安装tftp-server,命令如下:

yum -y install tftp-server

2.接着修改/etc/xinetd.d/tftp文件,将disable的值由yes变为no,内容如下所示:

3.接着重启xinetd进程,命令如下所示:

service xinetd restart

(4)配置支持PXE的启动程序(注意:前面已经将CentOS5.8 x86_64第一张光盘的内容复制到/var/www/html目录中了,所以需要的文件只需要从/var/www/html目录中复制就行了)。

a) 建立tftpboot文件夹,如下所示,若该文件夹已经存在则不用建立。

mkdir -p /tftpboot

b) 复制pxelinux.0文件至tftpboot文件夹中,如下所示。

cp /usr/lib/syslinux/pxelinux.0 /tftpboot

c) 把DVD光盘上的/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中,如下所示。

cp /var/www/html/images/pxeboot/vmlinuz /tftpboot

d) 复制DVD光盘上的isolinux/*.msg到/tftpboot目录下,如下所示:

cp /var/www/html/isolinux/*.msg /tftpboot/

e) 在tftpboot中新建一个pxelinux.cfg目录:

mkdir pxelinux.cfg

f) 将isolinux目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default,命令如下所示:

cd pxelinux.cfg

cp /var/www/html/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

g) 在上一个步骤,即第6点中,暂时不要修改default文件,进行到这一步时,虽然已经可以通过网络来引导并手动安装Kickstart了,但是由于这里讨论的是无人值守安装,所以先不修改这个default文件。

(5)安装dhcp服务,同时修改如下配置:

yum –y install dhcp

然后复制配置模板文件到指定的目录中,并重新命名。

cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

接着修改/etc/dhcpd.conf配置文件,文件最后修改内容如下所示:

最后启动dhcp服务:

service dhcpd start

注:如果机器数量过多的话,注意dhcp服务器的地址池,不要因为耗尽IP而导致dhcpd服务器没有IP地址release情况。

(6)用yum工具自动安装Kickstart,同时配置system-config-kickstart。

a) 首先我们需要安装Kickstart这个工具包,在CentOS最小化安装系统时,此软件包并没有默认安装,yum安装命令如下所示:

yum –y install system-config-kickstart

b) 在gnome环境下配置Kickstart,命令如下所示:

system-config-Kickstart

运行上面的命令后可以对系统的一些基本配置进行设置,例如选择时区、设置root的密码等。

c) 接下来便要进行安装了,建议选择httpd安装,切记不要输入任何账号,而是采用匿名安装。

在安装过程中,根据引导选择安装选项,不需要做更改。

d) Kickstart会让我们选择需要批量安装的CentOS5.8分区信息,按照上一节所介绍的CentOS5.5 x86_64的安装方法,我们创建四个分区,即/、/boot、/data和swap分区。

e) 在进行网络配置时,我使用的静态分配地址(动态同样如此),这里跟前面进行光盘安装是一样的。

f) 设置显示配置时可以按照我们的习惯选择。

g) 关于软件包的选择,大家可以根据实际的工作需求来选择自己需要的软件包,由于服务器安装后用途都是不一样的,建议大家这里选择最小化安装。

h) 其他都选择默认设置,不需要修改。

i) 最后将生成的文件ks.cfg保存到/var/www/html下,此为自动化无人值守安装的重难点,此文件稍有配置不当的话就会需要人为干预了,如果大家遇到问题,建议参考我下面的ks.cfg配置文件。

(7)修改/tftpboot/pxelinux.cfg/default文件,指定读取ks.cfg的方法,即修改文件第一行内容,改动后文件第一行内容如下所示:

default text ks=192.168.11.29/ks.cfg

另外,也建议将timeout时间由原先的600改为1,timeout时间是引导时等待用户手动选择的时间,设为“1”可直接引导。

(8)/var/www/html/ks.cfg文件内容如下所示(此内容是整个实验过程的重难点,请关注):

此配置过程中的重难点我这里说明下:

分区操作按照目前线上分区来操作,即分成/、/boot、/data及swap四个分区,其中/data分区是存放数据的,我们这里用--grow --size=1参数来将其余的剩余空间全部分配给/data分区。

key --skip如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 5.x系列,则可以不保留此项内容;

reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,此问题是很多朋友在论坛上发言提问的,我在实验过程中也遇到此问题,建议多做几次实验;

clearpart --all --initlabel此条命令必须添加,不然系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;

其它方面选项较容易看懂,我这里就不再重复了。

(9)将Kickstart需要的服务器均启动后,此自动化安装系统的过程就完成了,我们就可以在内网机柜中全自动同时安装CentOS5.8 x86_64系统了,服务器端启动相应命令如下:

service httpd start

chkconfig httpd on

service dhcpd start

chkconfig dhcpd on

service xinetd restart

系统完成最小化后安装后,大家可以根据自己公司的实际情况来进行系统的优化,此最小化优化脚本init.sh还可以让puppet服务器进行推送,此脚本内容如下所示:

注意:

#tune kernel parametres为内核优化部分,在这里我只做了基础处理,大家有需求可以自行修改,记住:一切以系统稳定为原则。

#vim setting选项为vim的个性化配置,如果想vim语法高亮,则必须安装vim-enhanced包,另外,vim在使用搜索功能,搜索选中内容为高亮,感觉不是特别舒服,所以我这里用了set nohlsearch选项,如果大家不介意此项功能,则不需要添加此语句;

#disable ipv6选项我在测试时发现,在CentOS5.8 x86_64系统下,如果不添加install ipv6 /bin/true此语句到/etc/modprobe.conf文件里,是关闭不了ipv6选项的,而测试的CentOS5.5 | 5.6不添加此句均可以顺利关闭ipv6,这点请大家注意,当然了,最后要reboot系统让此配置生效。

引申:相信大家的开发环境应该有不少Xen虚拟机,虽然Xen有自身的模板文件操作,但我们也可以利用Kickstart的方式快速无人值守安装Xen虚拟机系统,命令如下所示:

virt-install -n vm4 -r 300 -f /data/vm/vm4.img -s 8 -p -l -x ks=192.168.11.29/ks.cfg

我们单位有个叫noc-ps的服务器,可以通过他自动安装各种操作系统,把镜像都做好,可以像给任务一样都完全自动化,比PXE还简单,原本是一个老员工做的,他走了,老板让我现在做一个功能就是让他能自动破解windows密码,我只会家里平时用用GHOST里的工具去破解,赛光盘直接进软件然后选择磁盘的sam文件,但是通过noc-ps我就不是很清楚,老板叫我做个WINPE,然后通过脚本方式实现,既然是winpe我想论坛很多GHOST系统里开机都有WINPE的,我猜想把这个系统镜像里的系统GHOST文件去除,减少点容量,然后想办法通过NOC-PS引导到像家里光驱启动一样的界面,让他自己进入WINPE,然后系统启动后自动让他执行破解软件的脚本,不知道是这样否,现在我把系统镜像上传上去,引导就是引导不起来,不知道论坛下载的ISO文件本身带自己引导吗?因为我通常把ISO放到虚拟机里CD/DVD光驱,虚拟机只要按运行虚拟机自动会启动的,不知道NOC-ps是不是要我手工把ISO这个文件制作成带启动功能的,请大侠指点我

安装须知

1、此安装包可在阿里云所有linux系统上部署安装,此安装包包含的软件及版本为:

nginx:1.0.15、1.2.5、1.4.4

apache:2.2.22、2.4.2

MySQL:5.1.73、5.5.35、5.6.15

php:5.3.18、5.4.23、5.5.7

php扩展:memcache、Zend Engine/ OPcache

ftp:(yum/apt-get安装)

phpwind:8.7 GBK

phpmyadmin:4.1.8

2、请使用最新的一键安装包脚本安装,以前老版本都存在bug,会导致安装异常以及安装的环境混乱。

3、执行一键安装包(./install.sh),会自动清理之前一键安装包安装过的环境。

如果您已经安装过一键安装包,再次执行安装,如若有重要数据,请自行备份/alidata目录。

4、一键安装包会将软件安装在/alidata目录下。

如果您的系统不存在数据盘,则一键安装包会将软件安装到系统/alidata目录下。

如果您的系统存在数据盘,且还没有格式化挂载数据盘。则一键安装包会自动帮您格式化第一块数据盘,并挂载在/alidata目录下。

如果您的系统存在数据盘,且已格式化并挂载了第一块数据盘。一键安装包会将第一块数据盘再次挂载到/alidata目录下,并不影响您之前的挂载目录的使用。比如下图所示,安装前,已经挂载了mnt目录。安装后,一键安装包再次挂载/alidata目录。

如果您的系统存在数据盘,且已格式化数据盘,但没有挂载数据盘。一键安装包会将第一块数据盘挂载到/alidata目录下。

5、怎么样卸载一键安装包?

可以执行以下命令完成卸载:

chmod 777 -R sh-1.3.0/

cd sh-1.3.0/

./uninstall.sh

好了,下面来进行我们详细的安装步骤,come on ~~!

首先准备好连接linux服务器的工具,推荐用xshell和xftp。

xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

下载地址:http://www.newhua.com/soft/36383.htm

Xftp 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。

下载地址:http://www.newhua.com/soft/143.htm

根据上面提供的下载地址,首先安装xshell(基本上是点击Next直至安装 完成):

点击Next-->此时选择“free for Home/School”(免费版)。

再点击Next-->Next-->Next-->install即可安装(还可以选择xshell安装后的语言环境,熟悉英文的朋友,可以选择English选项)。

点击finish完成xshell的安装。

然后我们可以看到以下界面。

接下来安装xftp(用于上传文件到linux服务器的小工具),安装xftp也是非常的简单,基本上也点击Next直至安装完成。

点击Next -->此时选择“free for Home/School”,(免费版)。

录点击Next -->Next -->Next-->install (还可以选择xshell安装后的语言环境,熟悉英文的朋友,可以选择English选项)。

点击finish完成安装。

然后我们可以看到以下界。

然后我们打开xshell, 设置云服务器登录信息。

设置服务器帐号密码。

设置字符集编码(如果不设置字符集编码,则中文字符将会在xshell中显示为乱码)。

设置好了就点击ok保存。

一切准备就绪,让我们连接看看云linux服务器的庐山真面目吧!

黑不隆冬的,啥都没有,这就是linux的shell啦。shell(壳)到底是什么东东呢?

* Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

linux作为服务器专用操作系统,主要就是默默的待在机房提供各项网络服务的,为了节省系统资源,像windows那样华丽丽的用户桌面就默认不加载了。当然现在越来越多的用户使用linux作为日常家庭办公用操作系统,所以就有了像gnome、kde这样超华丽的桌面。不过作为服务器使用还是推荐用命令行界面吧,毕竟省一点资源,网站打开可能会更快一点嘛!

打下面的命令去主目录(/home)看下

输入命令:cd

用xftp上传环境安装文件。

回到shell界面,用ll命令看下情况

输入命令:ll

是不是多了一个sh-1.3.0目录,1.3.0是我们的一键安装包的版本号。 请下载最新的版本安装,版本更新介绍,我们可以在change.log中查看。也希望大家多多反馈对于一键安装包的意见。(另外,熟悉linux的朋友,直接可以用wget命令下载我们的安装包,也不用安装Xftp,这样更加便捷。)

接下来按照说明,分步骤敲入安装命令(以下为redhat系统下安装示例)。

输入命令:chmod –R 777 sh-1.3.0

cd sh-1.3.0

./install.sh

出现了一个选择提示,进入web服务器的选择界面。

这里您可以根据需要选择apache或者nginx服务器,这里是2个服务器的介绍:

apache:http://baike.baidu.com/view/28283.htm

nginx:http://baike.baidu.com/view/926025.htm

引用:

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx

0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

这里我们选择nginx,输入1,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择nginx)

然后我们再选择要安装的nginx的版本(如果web服务器选择的是apache,这里提示信息则是要安装apache的版本),总共有1.0.15/1.2.5/1.4.4三个版本可以提供我们选择,这里我们选择1.2.5版本,则输入2,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择1.0.15版本)

然后我们再选择要安装的php的版本,总共有5.3.18/5.4.23/5.5.7三个版本可以提供我们选择,这里我们选择5.5.7版本,则输入3,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择5.3.18版本)

然后我们再选择要安装的mysql的版本,总共有5.1.73/5.5.35/5.6.15三个版本可以提供我们选择,这里我们选择5.1.73版本,则输入1,回车(如果什么都不输入,直接回车,或者输入错误的字符,则默认选择5.1.73版本)

然后可以看到我们刚才选择的版本如下,我们输入y或者Y进行安装。

到这里,我们就正式进入环境安装环节了。你可以泡杯茶休息下。一般这个过程会持续半个小时的样子。

注意:

1、请在网络通畅的情况下进行安装,不要强行终止安装过程(强行关闭安装窗口或者ctrl+c强行终止安装进程),则会导致安装失败,以及出现不可预知的安装异常!

2、安装前,最好能跟系统盘打上快照,如果异常,方便回滚系统。

为了防止断掉和服务器的连接,可以新开一个shell窗口,将鼠标挪到窗口标签栏,右击,如下图所示:

可以看到,新开了一个窗口。

输入top命令

可以看到一直在跳动的系统资源统计。

好了。做完了这一些就让我们静静的等待吧!程序正在自动编译安装服务!

到这个界面说明安装已经结束了,我们可以输入以下命令再次验证是不是已经安装成功:

输入命令 :netstat -tunpl

我们可以看到正在运行状态的服务及端口:9000端口是php进程服务,3306端口是mysql服务,80端口是nginx服务,21端口是ftp服务。

如果看到以上信息,则说明安装没有异常。这里有一点需要注意的是,如果您选择安装的是apache,则没有上面的9000端口。为什么选择安装的是apache,就没有9000端口的php进程服务呢?这是因为nginx+php集成方式与apache+php集成方式不同,感兴趣的朋友可以自己入研究一下,这里就不再介绍。

大家有疑问了。那我怎么登录ftp和mysql呢?

在命令行里输入: cat account.log

看到了没

ftp的用户名是:www

mysql的用户名是:root

密码就在屏幕上了!

另外我们也可以cat /alidata/website-info.log中查看到刚才安装软件的版本信息。

好了。所有配置都已经完成了。是不是很简单!

接下来我们可以访问一下一键安装包默认安装的phpwind论坛以及phpmyadmin。

直接在浏览器中输入您的域名或者ip,如果是第一次访问phpwind,则会自动跳转到安装页面。

如果访问的时候卡主,不出来页面,则检查一下防火墙,并自行设置或者关闭防火墙。

点击“接受”进行安装。

然后选择数据库类型为mysql,数据库用户名和数据库密码填写account.log中的用户名和密码。然后根据自己的要求,设置好数据库名、管理员账号和密码等。

填写好信息后,点击下一步完成安装。

接下来我们访问phpmyadmin,在浏览器中键入我们的域名或者ip+phpmyadmin路径,即可访问我们安装的phpmyadmin。

输入mysql用户名以及密码,即可登录。

最后我们就可以在这里面操作管理我们的mysql啦。

HP服务器安装操作系统方法:

1、首先开机看到下图界面按下F10,然后进入引导操作界面。

2、点击Configure

and

Install。

3、直接点击右下角箭头下一步。

4、选中Customized

Install,点击右下角下一步。

5、默认安装。

6、点Operating

System改为要安装的版本,然后下面partition

size

分区大小处为C盘的容,可以根据自己需要分配大小。

7、选中参数预览确定,点击右下角下一步。

8、安装程序启动。

9、在I

HAVE…前打钩,点击accopt接受。

10、点击net就可以安装系统了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/354887.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存