Kickstart 批量安装 CentOS
本文最后更新于 2372 天前,其中的信息可能已经有所发展或是发生改变。

一、什么是Kickstart

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

二、什么是PXE

PXE(Pre-boot Execution Environment,预启动执行环境)

严格来说,PXE 并不是一种安装方式,而是一种引导方式。

需要网卡支持PEX

PXE的工作过程:

1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;

3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;

4. PXE Client 取得pxelinux.0 文件后之执行该文件;

5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

三、系统环境

实验环境:Virtualbox (两台机、一台服务器、一台待安装的)

系统平台:CentOS release 6.7 (最小化安装)

网络模式:NAT network模式,组建一个小局域网

DHCP / TFTP IP:10.0.2.5

要安装的系统也是CentOS release 6.7 (最小化安装)

关闭SELinux

系统的安装方式可以选择HTTP、FTP、 NFS,我们这里介绍HTTP方式的安装,其他两种方式的安装,大家可以自行百度。

四、准备工作

生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:

yum groupinstall "X Window System"
yum groupinstall Desktop
reboot

五、配置HTTP 服务

这里就用apche

yum -y install httpd

默认的web目录在 /var/www/html

/etc/init.d/httpd start    // 启动

Virtualbox 挂载CentOS 6.7安装光盘

开机之后挂载

mount /dev/cdrom /mnt

复制光盘内容到web目录下

cp -r /mnt/* /var/www/html/

六、配置TFTP

简单文件传输协议,比ftp更简单

yum -y install tftp-server

修改配置文件 /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
}

启动tftp

/etc/init.d/xinetd start

七、安装syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

安装之后执行以下命令

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/isolinux/{initrd.img,vmlinuz,boot.msg} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

vim /var/lib/tftpboot/pxelinux.cfg/default //修改default文件

default ks   // 标记要启动的内核(对应下面的ks内核,name随意)
#prompt 1    // 显示boot注释符
timeout 600  // 超时时间(秒)

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.7!
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 ks     // 定义标签
  kernel vmlinuz
  append ks=http://10.0.2.5/ks.cfg initrd=initrd.img  // 存放ks.cfg文件的位置
label local
  menu label Boot from ^local drive
  localboot 0xffff

八、配置DHCP

yum -y install dhcp

vim /etc/dhcp/dhcpd.conf // 添加以下内容

ddns-update-style interim;  // 表示dhcp服务器和dns服务器的动态信息更新模式  
ignore client-updates;      // 忽略客户端更新

subnet 10.0.2.0 netmask 255.255.255.0 {  
	option routers 10.0.2.1;        // 路由地址
	option subnet-mask 255.255.255.0; // 子网掩码
	range 10.0.2.2 10.0.2.254;     // 分配IP地址的范围
	default-lease-time 600;        // 默认租约时间  (秒)
	max-lease-time 7200;           // 最大租约时间  (秒)
	next-server 10.0.2.5;          // kickstart服务器
	filename "pxelinux.0";         // 
}
/etc/init.d/dhcpd start     // 启动

九、安装配置Kickstart

yum install system-config-kickstart

在桌面环境下配置Kickstart

打开 Kickstart 会出现一个图形界面程序,就像是安装系统以下,一步步的配置就行了,安装前脚本和安装后脚本不要设置

然后导出为ks.cfg文件

ks.cfg    // 内容如下

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://10.0.2.5"     // web服务器地址
# Root password
rootpw --iscrypted $1$bkB8IJP/$AatuqG17SFyqWQnE3B1pZ.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text                             // 文本模式安装
# Use graphical mode install
#graphical

firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --disabled               // 禁用 selinux
# 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 / --fstype="ext4" --size=8192
part swap --fstype="swap" --size=1024

%pre
uname
%end

%post
uname
%end

%packages --ignoremissing     // 忽略所有在这个安装源中缺少的软件包、组及环境,而不是暂停安装询问是应该放弃还是继续安装。
@basic-desktop
@fonts
@input-methods
@mysql-client
@x11

%end

复制ks.cfg文件 /var/www/html目录下

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

reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导;

clearpart –all –initlabel

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

参考:

http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html
谷歌

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇