由于最近计划做分布式服务器集群,现有条件是实验室机房大多的windows系统和少有的linux系统。由于机器数量比较多所以自动化无人安装成了我的首选。我用了PXE+DHCP+NFS+Kickstar安装了实验室的centos6.5实验环境。该方法主要用于公司、学校、网吧等需要批量安装操作系统的环境,极大地简化了单个安装的重复过程,实现了自动化运维,避免了重复性劳动,极大地解放了劳动力,提高了工作效率。访问图示:
首先,我们先来介绍一下相关的原理和概念。
1、PXE
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
2、Kickstart
Kickstart是一种无人值守安装方式。它工作的目的是自动填充安装过程中需要人为干预去填写的各种参数。使用Kickstart预先配置好安装过程中可能会出现的参数,并生成配置文件ks.cfg。在安装过程中,如果配置文件中有该参数就自动填充,如果没有就需要手动干预。正常情况下程序会自动完成安装并重新启动系统。
3、实验准备条件:
NFS服务器
DHCP服务器
Kickstart软件
带有支持PXE网卡的主机
交换机
4、实验步骤:
(1)我的系统是用最小化安装的,由于后边要用到system-config-kickstart工具,该工具需要依赖于图形化界面的支持,所以我们先安装图形界面:
-
yum groupinstall -y 'X Window System'
-
yum groupinstall -y 'GNOME Desktop'
(2)安装配置DHCP服务器
注意需要先设定服务器地址为静态IP
小编的配置文件:
-
DEVICE="eth0"
-
BOOTPROTO="static"
-
HWADDR="00:0D:87:05:B4:ED"
-
NM_CONTROLLED="yes"
-
ONBOOT="yes"
-
TYPE="Ethernet"
-
DNS1=192.168.10.1
-
IPADDR=192.168.10.2
-
NETMASK=255.255.255.0
-
GATEWAY=192.168.10.1
-
UUID="68ced0f8-3307-4aaa-a3d0-5b488a2c74e3"
安装DHCP服务器:
编辑配置文件:/etc/dhcp/dhcp.conf
(注意:由于版本信息,如果放到该目录dhcp启动不了,可以尝试把配置文件放到/etc/目录下。)
文件修改后内容如下:
-
ddns-update-style interim;
-
ignore client-updates;
-
next-server 192.168.10.2;
-
filename "pxelinux.0";
-
-
subnet 192.168.10.0 netmask 255.255.255.0{
-
option routers 192.168.10.1;
-
option subnet-mask 255.255.255.0;
-
option nis-domain "sxau.com";
-
option domain-name "sxau.com";
-
option domain-name-servers 192.168.10.2;
-
option time-offset -18000;
-
range dynamic-bootp 192.168.10.100 192.168.10.200;
-
default-lease-time 21600;
-
max-lease-time 43200;
-
}
启动dhcp服务:
如果机器数量多的话,注意地址池的地址数量,避免因耗尽IP导致安装不了。
(3)安装配置NFS服务器
安装NFS服务器:
-
yum install -y nfs-utils
-
yum install -y portmap
修改配置文件:vim /etc/exports
-
vim /etc/exports
-
/mnt/cdrom 192.168.10.2/24(ro)
-
/mnt/ks 192.168.10.2/24(ro)
挂载镜像文件到/mnt/cdrom
-
mount -o loop /mnt/CentOS-6.5-i386-bin-DVD1.iso /mnt/cdrom
启动NFS服务:
(4)安装配置TFTP服务器
安装tftp服务器:
-
yum install -y tftp-server
修改配置文件(注意该配置文件在/etc/xinetd.d目录下)/etc/xinetd.d/tftp
-
service tftp
-
{
-
socket_type = dgram
-
protocol = udp
-
wait = yes
-
user = root
-
server = /usr/sbin/in.tftpd
-
server_args = -s /var/lib/tftpboot
-
disable = no
-
per_source = 11
-
cps = 100 2
-
flags = IPv4
-
}
重新启动xinetd服务:
配置PXE启动程序:
复制pxelinux.0文件至tftpboot文件夹中
-
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
复制镜像中的initrd.img和vmlinuz到tftpboot文件夹中
-
cp /mnt/cdrom/isolinux/initrd.img /var/lib/tftpboot
-
cp /mnt/cdrom/isolinux/vmlinuz /var/lib/tftpboot
在tftpboot文件夹下新建一个pxelinux.cfg目录
-
mkdir /var/lib/tftpboot/pxelinux.cfg/
复制isolinux.cfg到pxelinux.cfg目录下,同时重新命名为default
-
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件
-
default ks
-
prompt 1
-
timeout 6
-
……
-
label ks
-
menu label ^Install or update an exiting system
-
menu default
-
kernel vmlinuz
-
append ks=nfs:192.168.10.2:/mnt/ks/ks.cfg initrd=initrd.img
(5)Kickstart生成ks.cfg文件
安装Kickstart软件包:
-
yum install -y system-config-kickstart
配置Kickstart并生成ks.cfg
-
startx #进入图形化界面
-
#打开终端
-
system-config-kickstart
运行上述命令后,即可打开配置对话框,然后设置并生成配置文件。
小编的配置文件如下:
-
#platform=x86, AMD64, or Intel EM64T
-
#version=DEVEL
-
# Firewall configuration
-
firewall --disabled
-
# Install OS instead of upgrade
-
install
-
# Use NFS installation media
-
nfs --server=192.168.10.2 --dir=/mnt/cdrom/
-
# Root password
-
rootpw --iscrypted $1$V7v6id2m$csePX1JaSCjBjJA9R/nq01
-
# System authorization information
-
auth --useshadow --passalgo=sha512
-
# Use text mode install
-
text
-
firstboot --disable
-
# System keyboard
-
keyboard us
-
# System language
-
lang en_US
-
# SELinux configuration
-
selinux --disabled
-
# Installation logging level
-
logging --level=info
-
# Reboot after installation
-
reboot
-
# System timezone
-
timezone Asia/Shanghai
-
# 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=1024
-
part / --fstype="ext4" --size=10240
-
part swap --fstype="swap" --size=1024
-
-
%packages
-
@development
-
@network-tools
-
-
%end
生成的配置文件保存在/mnt/ks/目录下。
(6)配置文件注意事项:
软件包选择越少越好,建议选择最小化安装,这样利于搭建生产化环境。
如果电脑有多个网卡,建议选择名称一样的网卡。一般多网卡主机编号从上到下依次为:eth0、eth1……。小编实验室的电脑有的有一个网卡,有的有两个网卡,造成网卡选择这块有一部分手动干预了。
在设置分区时,一定要注意自己划分的总空间小于磁盘总容量。一来可以扩展数据盘、二来可以防止由于计算偏差造成安装过程中提示磁盘空间不足。
key --skip在批量安装红帽系统时,可以跳过输入序列号过程;如果时centos系统,则可以去掉该选项。
reboot 选项必须存在,但注意启动引导设置的更改。
clearpart --all --initlabel 该命令必须存在。否则系统会让你手动选择是否清楚数据并选择安装位置,造成需要人为干预,不利于自动化安装。
阅读(2106) | 评论(0) | 转发(0) |