购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 Linux无人值守安装

前面介绍了光盘安装和U盘安装,但如果需要同时部署10台服务器呢?100台服务器呢?超哥有一段悲惨的过往,当年从事游戏运维的时候居然有2000多台服务器,现在想起来还是“默默无语两眼泪,耳边响起二胡声”……这么多台服务器如果纯手工安装,那么耗费的人力和时间都将非常可怕。怎么解决这个问题呢?采用无人值守安装!简单地讲,无人值守安装就是搭建一台安装服务器,将其他所有未安装的服务器作为客户端,客户端从服务器上下载所需的软件,并安装所有的客户端服务器,客户端服务器只需修改启动顺序为网络启动,就可以从服务器安装。这种安装方式大大简化了运维工程师的工作量,但是服务器端的搭建比较复杂,并不适合初学者使用。

如果是初学者,则请先跳过无人值守安装,因其设置复杂,所需Linux知识众多,可以在学完本书后续章节后再来玩此应用。

2.4.1 概念和原理

实现网络安装操作系统,有几个问题需要先明确。第一,既然是网络安装,那么客户端在启动时必须获取IP地址,由谁(DHCP)分配IP地址?第二,由谁(PXE)把客户端启动所必需的软件从服务器端传递到客户端?第三,由谁(KickStart)定义客户端的安装选择?比如选择什么语言?安装什么样的软件包?管理员密码是什么?第四,安装过程已经启动,本地安装是通过光盘或U盘保存安装所需的软件包的,那么网络安装通过谁(HTTP、FTP、NFS)来发送所需的软件包?下面我们一一说明这些问题。

1.DHCP是什么

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议,它可以使Client端(客户端)从Server端(服务器端)自动获取IP地址、子网掩码、网关及DNS等网络配置信息,从而简化了Client端的配置和操作,是局域网常用服务。

2.PXE是什么

PXE(Pre-boot Execution Environment)是由英特尔设计的协议,它可以使计算机通过网络启动。协议有Server端和Client端,PXE Client保存在网卡的ROM中,当计算机启动时,BIOS把PXE Client调入内存中执行,然后PXE Client通过网络将放在PXE Server端的启动文件下载到本地运行。注意,PXE Client和PXE Server之间传递数据是通过TFTP协议进行的,所以需要配置TFTP服务器。

3.KickStart是什么

KickStart是一种无人值守的安装方式。它把安装过程中所有需要人工干预填写的各种参数记录下来,并保存在一个命名为ks.cfg的文件中。如果安装过程中出现需要填写的参数,那么安装程序会从ks.cfg中查找需要的配置。如果ks.cfg文件把所有需要填写的参数都记录完整,那么安装过程中就不需要人为参与,从而实现自动安装。

4.HTTP、FTP、NFS是什么

HTTP、FTP、NFS都是Linux中文件共享的方式,在这里使用一种就可以了,我们选择HTTP服务。它的主要作用就是把安装过程中所需的软件包发布到网络上(注意:PXE发布的是启动必需文件),Client可以通过网络获取所需的软件包。

2.4.2 无人值守安装的条件

(1)在服务器上配置DHCP服务。

(2)在服务器上配置TFTP服务。

(3)在服务器上搭建用来发布安装软件包的服务,如HTTP、FTP或NFS等服务。

(4)在服务器上由KickStart生成ks.cfg自动应答配置文件。

(5)客户机的网卡支持PXE(现在的网卡一般都支持)。

(6)客户机的主板支持网络启动(现在的主板一般都支持)。

2.4.3 无人值守安装的步骤

(1)关闭防火墙和SELinux。注意一定要关闭,否则后续会报错。

chkconfig iptables off

#关闭防火墙

vi /etc/selinux/config

SELINUX=enforcing 改为SELINUX=disabled

重启系统让设置生效

#关闭SELinux

(2)在服务器上搭建本地光盘作为yum源的服务器。

① 将CentOS 6.x的安装光盘放入服务器。

② 挂载光盘到指定目录。

mkdir /mnt/cdrom

#建立光盘挂载点

mount /dev/cdrom /mnt/cdrom

#挂载光盘到/mnt/cdrom中

③ 切换所在目录到yum配置文件目录。

cd /etc/yum.repos.d/

④ 把除光盘yum源之外的其他yum源修改一下文件名,让它失效。

mv CentOS-Base.repo CentOS-Base.repo.bak

mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

mv CentOS-Vault.repo CentOS-Vault.repo.bak

⑤ 修改光盘yum源文件。

该文件的内容按照下面修改:

[c6-media]

name=CentOS-$releasever – Media

baseurl=file:///mnt/cdrom

#修改为光盘的挂载点,注意file后有三个/

#    file:///media/cdrom/

#    file:///media/cdrecorder/

#注释掉不存在的yum源目录

gpgcheck=1

enabled=1

#把0改为1,代表启用这个yum源文件

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

(3)在服务器上安装并配置DHCP服务。

① 安装DHCP服务。

yum -y install dhcp

② 需要修改一下配置文件/etc/dhcp/dhcpd.conf。但是这个文件默认不存在,在/usr/share/doc/dhcp-4.1.1中有一个配置文件的模板文件,把它复制过去,并重新命名。

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

③ 修改配置文件。本节不是讲解DHCP服务的,所以我们把不需要的服务全部注释掉,只启用最基本的功能。

vi /etc/dhcp/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

next-server 192.168.150.239;

#指定TFTP服务器的IP地址

filename "pxelinux.0";

#PXE客户端得到IP以后的引导文件

subnet 192.168.150.0 netmask 255.255.255.0 {

#所属网段和子网掩码

option routers          192.168.150.1;

#分配给客户机的网关

option subnet-mask       255.255.255.0;

option domain-name-servers   192.168.150.1;

#分配给客户机的DNS

range dynamic-bootp 192.168.150.10 192.168.150.100;

#分配给客户机的IP地址池

default-lease-time 21600;

max-lease-time 43200;

}

④ 启动DHCP服务,并让DHCP服务开机自启动。

service dhcpd start

#启动DHCP服务

chkconfig dhcpd on

#让DHCP服务开机自启动

(4)在服务器上安装并配置TFTP服务。

① 安装tftp-server服务。

yum -y install tftp-server

② 修改TFTP服务配置文件。

vi /etc/xinetd.d/tftp

service tftp

{

socket_type     = dgram

protocol      = udp

wait        = yes

user        = root

server       = /usr/sbin/in.tftpd

server_args     = -s /tftpboot

#指定TFTP服务器目录,之后要在根目录下新建tftpboot目录,所有向客户端传

递的启动文件都要保存在此目录下

disable       = no

#把yes改为no,才能启动TFTP服务

per_source     = 11

cps         = 100 2

flags        = IPv4

}

③ 重启TFTP服务。

service xinetd restart

④ 手工建立TFTP服务器目录。

mkdir /tftpboot

⑤ 复制客户端所需的引导文件到/tftpboot目录下。注意:如果安装的是“Basic Server(基本服务器)”,那么引导文件是没有被安装到系统中的,需要手工安装。

yum -y install syslinux

然后再复制引导文件pxelinux.0到/tftpboot/目录下。

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

⑥ 复制客户端所需的配置文件到/tftpboot/目录下,配置文件在第一张光盘中。

mount /dev/cdrom /mnt/cdrom

#挂载光盘

cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/

cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot/

#以上两个文件是系统启动所必需的Linux镜像文件

cp /mnt/cdrom/isolinux/*.msg /tftpboot/

#复制boot.msg文件到/tftpboot/目录下。此文件是安装过程的提示信息,可以手工修改

mkdir /tftpboot/pxelinux.cfg

#新建保存配置文件的目录

cp /mnt/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

#复制配置文件到指定目录,并修改文件名

chmod 644 /tftpboot/pxelinux.cfg/default

#修改这个文件的权限,默认是只读文件

⑦ 修改配置文件的内容。

vi /tftpboot/pxelinux.cfg/default

default linux

#修改default vesamenu.c32为default linux

#prompt 1

timeout 600

display boot.msg

menu background splash.jpg

menu title Welcome to CentOS 6.3!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

label linux

#标识哪个lable生效,以下代表lable linux会生效

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=http://192.168.150.239/ks.cfg

#加入放置发布软件包的服务器地址和服务,我用的是HTTP服务

#把自动应答文件(ks.cfg)复制到Apache主目录下

label vesa

menu label Install system with ^basic video driver

kernel vmlinuz

append initrd=initrd.img xdriver=vesa nomodeset

label rescue

menu label ^Rescue installed system

kernel vmlinuz

append initrd=initrd.img rescue

label local

menu label Boot from ^local drive

localboot 0xffff

label memtest86

menu label ^Memory test

kernel memtest

append –

(5)搭建Apache服务器,用来发布安装用软件包。

① 安装Apache服务。

yum –y install http*

② 把第一张光盘的所有内容复制到默认网页主目录。

cp –r /mnt/cdrom/* /var/www/html

③ 启动Apache服务,并保证Apache服务开机自启动。

servcie httpd start

#启动Apache服务

chkconfig httpd on

#设置Apache服务开机自启动

(6)由KickStart生成ks.cfg自动应答配置文件。

因为手工书写配置文件过于烦琐,所以我们采用图形界面工具生成ks.cfg自动应答配置文件。但是我们在安装时采用的是“Basic Server(基本服务器)”,并没有安装图形界面,所以需要先安装图形界面。

① 安装图形界面。

yum –y groupinstall "X Window System"

#安装X Window服务组件

yum –y groupinstall "Desktop"

#安装桌面组件

yum –y install system-config-kickstart

#安装桌面环境下KickStart配置工具

startx

#进入图形界面

② 启用KickStart工具。

system-config-kickstart

●Basic Configuration(基本配置)界面:调整语言、时区和root口令等,如图2-49所示。

图2-49 基本配置

●Installation Method(安装方法)界面:选择“Perform new installation(执行新安装)”,Installation source选择“HTTP”,指定HTTP服务器的IP地址和HTTP目录(这里写“/”),如图2-50所示。

图2-50 安装方法

●Partition Information(分区信息)界面:选择“Clear Master Boot Record(清除主引导记录)”,选择“Remove all existing partitions(删除所有现存分区)”,否则在安装到分区步骤时,会出现确认提示,无法实现全自动安装。然后单击“Add(添加)”按钮添加所需分区,这里我们划分了/boot分区、swap分区和/分区,如图2-51所示。

图2-51 分区信息

●Network Configuration(网络配置)界面:单击“Add Network Device(添加网络设备)”按钮,输入网络设备名,此处指定为eth0;输入网络类型,此处指定为DHCP,如图2-52所示。

图2-52 网络配置

●Firewall Configuration(防火墙配置)界面:SELinux选择为Disabled(关闭),Security level选择为Disable firewall(关闭),如图2-53所示。

图2-53 防火墙配置

●Package Selection(软件包选择)界面:选择需要的软件包,如图2-54所示。

图2-54 软件包选择

●其他页面全部保持默认设置即可。选择“File”→“Save”命令,指定保存文件名和保存位置保存。文件名指定为ks.cfg,保存目录指定为/root/目录。

③ 复制ks.cfg文件到Apache主目录下。

cp /root/ks.cfg /var/www/html

④ 修改ks.cfg文件。

vi /var/www/html

#platform=x86,AMD64,or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

key –skip

#此句实现跳过注册码输入,否则安装过程会报错

# Install OS instead of upgrade

install

# Use network installation

url --url="http://192.168.150.239/"

# Root password

rootpw --iscrypted $1$b.in331n$DDJc03wp6n4vvchCrJ9m5.

# System authorization information

auth --useshadow --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info

# System timezone

timezone Asia/Chongqing

# Network information

network --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype="ext4" --size=200

part swap --fstype="swap" --size=1000

part / --fstype="ext4" --grow --size=1

%packages

@chinese-support

@ftp-server

%end

(7)启动客户端,修改BIOS界面,选择启动方式为网络启动。如果一切顺利,那么客户端会自动安装Linux系统。

无人值守安装的服务器端配置相对复杂,并不适合新手学习。如果刚开始学习,则掌握光盘安装即可,在以后工作中用到或对无人值守安装感兴趣再来学习。 STVsIeKA0p4dY02RKX1ljcv5JQFcS8m1dx3wX+yQiSCDfv8sZwc/GUztnJvkNicu

点击中间区域
呼出菜单
上一章
目录
下一章
×