kickstart自动化安装--tftp+nfs+dhcp

Posted 夕颜@伤雨痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kickstart自动化安装--tftp+nfs+dhcp相关的知识,希望对你有一定的参考价值。

使用kickstart实现Centos 自动化安装

Kickstart自动化安装简介:

规模化:同时装配多台 服务器

自动化 :安装系统,配置各种服务

远程实现:不需要光盘,U盘等安装介质

优势:

(1)流线自动化的安装

(2)快速大量的裸机部署

(3)强制建立的一致性(软件包,分区,配置,监控,安全性)

(4)减少人为的部署失误

使用Kickstart方法安装的过程:
(1). 创建一个kickstart文件
(2). 创建有kickstart文件的引导介质或者使这个文件在网络上可用;
(3). 筹备一个安装树
(4). 开始ks安装:anconda自身启动 –>选取ks安装模式–> 从ks文件读取配置 –> 最后安装
创建kickstart配置文件的方式:
(1). 文本编辑器(vim)等
(2). 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包

PXE(preboot execute environment, )是由Intel公司开发的最新技术,工作client/server的网络 模式,支持工作通过网络从远端服务器 下载映像,并由此支持  通过网络启动操作系统 ,在启动过程中,终端要求服务器 分配IP地址,在用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,更有这个启动软件 包完成终端基本软件设置,从而引导预先安装在服务器终端 操作系统,PXE可以引导 多种操作系统.

  1. 预启动执行环境,在操作系统之前运行
  2. 可用于远程安装,构建无盘工作站

服务端:远程DHCP服务,用来分配地址,定位引导程序;

             运行TFTP服务器,提供引导程序下载

客户端 :网卡支持PXE协议

            主板支持 网络启动

基本部署过程:

  1. 准备rhel/centOS安装源(YUM仓库)
  2. 启动TFTP服务,并提供内核,引导程序
  3. 启动 DHCP服务,用来分配地址,指出引导程序位置
  4. 配置启动菜单

【DHCP,TFTP安装】

[root@kickstart ~]# mkdir /media/cdrom
[root@kickstart ~]# mount /dev/cdrom /media/cdrom/

[root@kickstart ~]# yum install -y dhcp* tftp*

[root@kickstart ~]# grep disable /etc/xinetd.d/tftp | awk -F = \'{print $2}\' | sed -i \'s#yes#no#g\' /etc/xinetd.d/tftp

no
[root@kickstart ~]# grep disable /etc/xinetd.d/tftp
disable = no

1:TFTP+PXE配置

要实现远程安装系统,首先需要在tftpboot目录指定相关PXE相关内核模块机制相关参数,配置步骤如下:

Ps:如果系统 是5.x,默认tftpboot目录已经自动创建到/根目录下

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

[root@kickstart ]# find / -name "pxelinux.0"

/usr/share/syslinux/pxelinux.0

[root@kickstart-server ~]# ln -s /var/lib/tftpboot/ /

[root@kickstart-server ~]# cp /usr/share/syslinux/pxelinux.0  /tftpboot/

[root@localhost tftpboot]# cp /media/cdrom/images/pxeboot/* /tftpboot/       #将系统内核拷贝tftpboot目录下

[root@kickstart ~]# ls /tftpboot/
initrd.img pxelinux.0 TRANS.TBL vmlinuz

[root@localhost tftpboot]# rm -rf TRANS.TBL

[root@localhost tftpboot]# ls

initrd.img  pxelinux.0  vmlinuz

[root@localhost tftpboot]# mkdir -p pxelinux.cfg

 [root@localhost tftpboot]# ls

initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz

 [root@localhost tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

[root@localhost tftpboot]# vim pxelinux.cfg/default

label centos6.5
kernel vmlinuz
append ks=nfs:192.168.2.136:/Centos_install/ks.cfg ksdevice=eth0 initrd=initrd.img

详解:192.168.2.136 是kickstart服务器,

/Centos_install是nfs共享 linux镜像 的目录,也就是linux存放安装文件的路径;

ks.cfg是kickstart主配置文件;

Ksdevel-eth0代表当我们有多块网卡 的时候,要实现自动化需要设置从eth0安装

[root@kickstart tftpboot]# chkconfig tftp on     #TFTP配置完成之后,由于tftp不是独立服务,需要依赖xinetd服务来启动
[root@kickstart tftpboot]# service xinetd restart

2:NFS+kickstart配置

远程系统安装 ,客户端需要下载系统所需的软件包,所以需要使用NFS或HTTPD把镜像文件共享出来

[root@kickstart ~]# yum install -y nfs*

[root@kickstart ~]# mkdir /Centos_install/     #创建NFS共享目录,要与default目录一致

[root@kickstart ~]# nohup cp -rf /media/cdrom/* /Centos_install/ &     #后台拷贝

[root@kickstart ~]# echo "/Centos_install/ *(rw,sync)" >> /etc/exports     #在NFS配置文件/etc/exports中加入如上语句:/Centos_install    *(rw,sync),表示允许任何主机访问/Centos_install目录,有读写权限。

自定义ks.cfg,并赋予权限为chmod 777 ks.cfg

[root@localhost ~]# vim /centosinstall/ks.cfg            #这里ks.cfg需要注意一下,并没有按照anaconda-ks.cfg内容修改,该配置兼容性 较强,经过优化处理~可上生产~

#kickstart file automatically generated  by anaconda.

install

text

nfs --server=192.168.2.136 --dir=/Centos_install/     #kickstart地址

key --skip

lang zh_CN,UTF-8

keyboard us

network --device eth0 --bootproto=dhcp --noipv6

rootpw 123456    #系统密码为123456

firewall --disabled

authconfig --enableshadow --enablemd5

selinux --disabled

timezone Asia/shanghai

bootloader --location=mbr --driveorder=sda --append="rhgb quiet"

clearpart --all --initlabel

part /boot --fstype ext3 --size=200

part swap --size=1000

part / --fstype ext3 --size=10000

part /data --fstype ext3 --size=1 --grow

%packages

@base

@development-libs

@development-tools

mtools

pax

libxmu

%end

[root@kickstart Centos_install]# chmod 777 ks.cfg

[root@kickstart-server ~]# service xinetd restart

[root@kickstart-server centosinstall]# service nfs restart

3:[DHCP服务]

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

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200;     #可分配起始IP-结束IP地址池
option routers 192.168.2.136;
option subnet-mask 255.255.255.0;
default-lease-time 21600;           #设置默认的IP租用期限
max-lease-time 43200;                #设置IP最大租用期限
next-server 192.168.2.136;            #TFTP服务器IP地址
filename "pxelinux.0"; 
}

 

OK到目前为止,kickstart服务端的配置已经全部配置完成!为了保证服务正常生效,我们最后一次重启一下三个服务!

[root@localhost ~]# /etc/init.d/dhcpd restart

[root@localhost ~]# /etc/init.d/xinetd restart

 [root@localhost ~]# /etc/init.d/nfs restart

客户端验证,是否自动化安装部署系统

新建rheld虚拟机(ps:要保证系统和服务属于同一个网段)

 

输入用户名和密码(123456)即可登录系统

 

 

 

以上是关于kickstart自动化安装--tftp+nfs+dhcp的主要内容,如果未能解决你的问题,请参考以下文章

Linux下使用Kickstart自动化安装平台架构

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)

Linux系统网络安装——基于pxe+dhcp+nfs+tftp+kickstart

KickStart+nfs+dhcp+tftp无人值守批量安装CentOS6.5(或CentOS7)

Centos 6.* 下搭建pxe+dhcp+nfs+kickstart

DHCP+TFTP+SYSLINUX+NFS+KICKSTART