搭建无人值守的安装服务器

  • 2019-06-20
  • 0
  • 0

本节内容:

  • 搭建无人执守安装服务器服务器常见概念
  • 搭建无人执守安装服务器服务器安装及相关配置文件
  • 实战:为公司内网搭建一个搭建无人执守安装服务器
  • 服务端:wang30.cn   IP:192.168.1.10
  • 客户端:shaoping64.cn   IP:自动获取

需要使用到的服务:PXE(网卡支持) + DHCP+TFTP+ Kickstart+ FTP

运行原理如下图:

新服务买到位,上架,做raid(根据业务定是raid5还是其他),重启后,做系统,网卡启动。

原理和概念:  

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引导顺序为:  硬盘,网络

模式: C/S 模式

实验环境: 

服务端:wang30.cn   IP:192.168.1.10   网卡模式: vmnet3

客户端:shaoping64.cn   IP:自动获取   网卡模式: vmnet4

执行 PXE + KickStart安装需要准备内容:

 • DHCP 服务器用来给客户机分配IP; 

• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件; 

• FTP 服务器用来存放系统安装文件; 

• KickStart所生成的ks.cfg配置文件; 

• 带有一个 PXE 支持网卡的将安装的主机;

一、配置基本环境

安装所需要的服务及修改相应配置文件:

1.yum来安装所需要的软件包,先来搭建本地yum光盘源:(如果配置了网络yum,这一步可以忽略)

[root@wang30~]# mount  /dev/cdrom  /mnt

/etc/yum.repos.d目录下创建一个以.repo结尾的文件:

[root@wang30~]# vi /etc/yum.repos.d/serverl.repo

配置内容如下:

[root@wang30 Desktop]# cat  /etc/yum.repos.d/rhel-source.repo
[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

2.安装ftp服务以及开启服务,设置为开机自动启动。

[root@wang30 ~]# yum install vsftpd –y   (或者从y光盘安装)
[root@wang30 ~]# systemctl start vsftpd
[root@wang30~]# systemctl enable vsftpd

3.安装TFTP,修改tftp配置文件及开启服务

[root@wang30 ~]# yum install tftp tftp-server xinetd –y        //xinetd:互联网守护进程服务,xinetd管理tftp众多服务

配置tftp服务器:

vim /etc/xinetd.d/tftp

修改配置文件里面的13,14行。改成以下内容:

server_args = -s /tftpboot  # 表示服务器默认的目录是 /tftpboot

其中,server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot,当你执行put a.txt时,文件会被放到服务器的/tftpboot/a.txt,省去你敲put a /tftpboot/的麻烦。你也可以加其它服务器运行参数到这,具体可以执行man tftpd命令查阅。

-c  :上传文件时,服务器上没有。就自动创建这个文件。

默认tftp客户端,只能上传tftp服务器已经有的文件。也就是只能传上去并覆盖服务器上的原文件。如果想上传原来目录中没有的文件,需要修改tftp服务器的配置文件并重起服务。需要修改如下:

打开/etc/xinetd.d/tftp文件,在 server_args 增加-c参数,如下所示:

server_args = -s /tftpboot -c

TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议. 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻 击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。tftp 在嵌入式linux还是有用武之地的。需要打开防火墙,允许tftp访问网络。

接着重新启动xinetd服务,然后查看服务端口是否打开。

[root@wang30~]# systemctl start xinetd
[root@wang30 ~]# yum install lsof
[root@wang30 ~]# lsof -i :69    #查看69端口正在被哪个进程使用

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

xinetd  3582 root    5u  IPv4  21718      0t0  UDP *:tftp

[root@wang30 ~]# netstat -antup | grep 69   #这种方法,只能看到xinetd进程

udp        0      0 0.0.0.0:69       0.0.0.0:*                               3582/xinetd

4.安装dhcp,修改配置文件及开启服务:

[root@wang30~]# yum install dhcp -y

配置DHCP服务器:

# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf   #生成配置文件

cp: overwrite `/etc/dhcp/dhcpd.conf’? y

DHCP服务器添加一张VMNET3网卡,ip设置为192.168.1.10(只要是1网段都行)

[root@wang30 ~]# ifconfig eth1 192.168.1.10/24 (临时设置)

或者:

[root@wang30 network-scripts]# vi ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=00:0C:29:87:57:1A
[root@wang30 dhcp]# > dhcpd.conf
[root@localhost ~]#vi /etc/dhcp/dhcpd.conf  #只保留一个subnet {。。。} ,取掉其它subnet,改成如下内容:

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@wang30 Packages]# yum -y install system-config-kickstart.noarch syslinux

//syslinux需要在centos7.x上安装,centos6.x则不需要,linux的系统文件

准备tftp需要共享出去的文件

挂载本地光盘:需要读取本地光盘源

[root@wang30~]# mount  /dev/cdrom  /media/
[root@wang30~]# mkdir  /tftpboot
[root@wang30~]# mkdir /tftpboot/pxelinux.cfg
[root@wang30~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/    #注:系统启动的引导文件,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。
 [root@wang30~]# cp  /media/images/pxeboot/initrd.img  /tftpboot/

//内核初始化文件

[root@wang30~]# cp /media/images/pxeboot/vmlinuz  /tftpboot/

//内核初始化文件

[root@wang30~]# cp /media/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default   

//开机引导顺序的文件,需要修改成自动选择,实现无人值守安装

[root@wang30~]# chmod 644  /tftpboot/pxelinux.cfg/default

三、修改default,指定安装操作系统的方式和ks.cfg文件路径

vim  /tftpboot/pxelinux.cfg/default

然后修改/tftpboot/pxelinux.cfg/default的配置文件。

改:default

为 :default  linux

#修改第1行,后面的linux意思是寻找下面18行的label linux 。如下:


然后修改下64行(即在后面添加inst.repo=ftp://192.168.1.10/pub inst.ks=ftp://192.168.1.10/ks.cfg)。第64行的意思是使安装程序通过FTP服务器访问kickstart文件。

[root@wang30 ~]# mount /dev/cdrom /var/ftp/pub

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

[root@wang30 ~]# system-config-kickstart    //centos7没有安装图形化界面,导致无法启动x server

Could not open display because no X server is running.

不需要装图形化桌面,安装gdm即可:

[root@localhost ~]# yum -y install gdm

安装manager 4.0工具,使用xstart工具:

其中第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@wang30 ~]# cd /etc/yum.repos.d/
[root@wang30 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@wang30 yum.repos.d]# mkdir bak
[root@wang30 yum.repos.d]# mv *.repo  bak/
[root@wang30 yum.repos.d]# ls

bak  CentOS-Base.repo.old

[root@wang30 yum.repos.d]# vim my.repo
[development]        
name=my-centos7-dvd
baseurl=file:///var/ftp/pub
enabled=1
gpgcheck=0
[root@wang30 yum.repos.d]# yum makecache

安装system-config-kickstart软件包

 [root@wang30 ~]# system-config-kickstart  #执行system-config-kickstart弹出来界面。

设置自己后期无人执守安装需要配置的参数:

注意:用xshell远程连接,执行上面的命令可能无法弹出选择框,需要这样解决:

  1. 安装gdm 

yum install -y gdm

2.在Xstart 里执行:

乱码的解决:

[root@localhost ~]# yum install dejavu-serif-fonts
[root@localhost ~]# yum install dejavu-sans-fonts          //下载安装字体
[root@localhost ~]# echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# yum list|grep fonts |grep chinese

google-noto-sans-simplified-chinese-fonts.noarch

google-noto-sans-traditional-chinese-fonts.noarch

乱码问题没有解决

我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。

我们配置ftp服务器的安装方法。选择执行新安装。然后点击引导装载程序选项。

配置grub相关选项。可以不设置密码

设置分区大小。

配置网络,默认没有网络设置,点击添加网络,设备名称为eth0,网络类型为dhcp

验证,默认就可以了。

防火墙和selinux根据自己需求选择开启或者禁用。我选择关闭selinux。启用防火墙。

安装图形环境

自定义软件包。默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。

Centos7中不能选择包:

解决:更改yum源为本地即可

前提:

[root@wang30 ~]# mount /dev/cdrom /var/ftp/pub  //先挂载
[root@wang30 yum.repos.d]# vim my.repo
[development]        
name=my-centos7-dvd
baseurl=file:///var/ftp/pub
enabled=1
gpgcheck=0

//如果之前没有设置本地yum源,则执行命令无法显示选择的软件包,需要修改成本地yum源

[root@wang30 yum.repos.d]# yum makecache

Loaded plugins: fastestmirror

development                                      | 3.6 kB     00:00

(1/4): development/group_gz                        | 156 kB   00:00

(2/4): development/filelists_db                    | 3.1 MB   00:00

(3/4): development/primary_db                      | 3.1 MB   00:00

(4/4): development/other_db                        | 1.2 MB   00:00

//保证源可以使用

安装脚本:在”预安装脚本”,”安装后脚本”对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易。

把相关的包安装即可

例如:配置客户机在完成安装后自动设置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/rhel7.repo

到此所有关于安装的配置已经配置完毕,右上角保存:

点击左上角的文件选择保存,选择下保存的路径

[root@wang30 ~]# ls

anaconda-ks.cfg(记录手动安装操作系统的信息)  ks.cfg(可以复用,以后也可以使用)

[root@wang30~]#cp ks.cfg /var/ftp  #复制ks.cfg文件到/var/ftp目录下
[root@wang30 ~]# systemctl restart vsftpd
[root@wang30 ~]# systemctl start dhcpd

注:ks.cfg就是无人值守安装时要用的Kickstart文件

测试

新建虚拟机:放在vmnet3的网络中

开机从网络启动:

要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.1.10/ks.cfg

配置基于ftp的yum源,用于客户端安装时,读取软件包用:

[root@wang30~]#mount /dev/cdrom /var/ftp/pub  #挂载RHEL7安装光盘到/var/ftp/pub目录下

重启下FTP服务

[root@wang30 ~]# systemctl   restart  vsftpd

建议关闭防火墙和selinux

如果没有关闭的话,tftp服务会有问题。

[root@wang30 ~]# getenforce 

Disabled

设置防火墙:

#iptables -F

#service iptables save

配置两台机器的网络模式为:VMnet4

给server 设置一个和DHCP 定义相同网段的IP

接着启动DHCP,设置为开机启动

[root@wang30~]# /etc/init.d/dhcpd start
[root@wang30~]# chkconfig dhcpd on

进入后按F12,自动进入安装

修改wang32 BIOS启动顺序为网络优先,加电后开始启动。

报错:无法连到10.10

解决:

报错:

解决:

内存加到2G,硬盘40G

实现自动安装

下去之后了解下用NFS代理FTP 的方法

扩展:Cobbler比Kickstart更为简单和智能的自动化安装系统的工具

Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。

网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,我们就可以像哈里波特一样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是一般人都能整明白的,没有大专以上学历,通不过英语四级,根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工作啊。很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。对于我们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来说,不啻为一个晴天霹雳。

http://www.osyunwei.com/archives/7606.html

http://os.51cto.com/art/201109/288604.htm

批量安装windows:

官方推荐:WDS

Rt7lite:对镜像进行增删改,能做到无人值守安装

评论

还没有任何评论,你来说两句吧