Kickstart+NFS+DHCP+PXE+TFTP全自动化安装linux

Kickstart+NFS+DHCP+PXE+TFTP全自动化安装linux

  1. 首先不敢说是原创,是经过网络搜索总结出的比较可靠稳定的设置方法及内容。

  2. 安装过程中需要注意的事项,这在其他教程中涉及很少,给初学者造成一定困难。

  3. 本教程中的ks.cfg文件严格来说是修改系统中存在的anaconda.cfg文件。

  4. 本文中所用系统为RHEL6.464位操作系统。

  5. 本文中所有操作均在虚拟机中实现,为了达到更好的效果,虚拟机网络采用内部网络。主要是为了避免系统直接给它windows系统服务给它自动分配地址,我们要用linux主机的dhcp服务分配地址。

  6. 请关闭防火墙。未关闭会连接超时的。

  7. 请关闭selinux。未关闭,会导致无法获取pxelinux.0文件。

 

好直接上内容。

配置好本地源,挂载镜像iso文件。

挂载iso文件到media目录

mount /dev/sr0 /media/

修改/etc/yum.repos.d/rhel-source.repo

[root@vmRHEL ~]# vim  /etc/yum.repos.d/rhel-source.repo

[rhel-source]

name=Red Hat Enterprise Linux $releasever -$basearch - Source

baseurl=file:///media/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[rhel-source-beta]

name=Red Hat Enterprise Linux $releaseverBeta - $basearch - Source

baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/

enabled=0

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

保存退出。

 

安装dhcptftp服务

#yum install tftp* dhcp*

 

编辑tftp

vim /etc/xinetd.d/tftp

service tftp

{

       socket_type             = dgram

       protocol                = udp

       wait                    = yes

       user                    = root

       server                  =/usr/sbin/in.tftpd

       server_args             = -unobody -s /tftpboot

       disable                = no

       per_source              = 11

       cps                     = 100 2

       flags                   = IPv4

}

 

修改:disable = no 修改为yes

 

编辑dhcp服务的配置文件

vim /etc/dhcpd.conf

 

#

# DHCP Server Configuration file.

#  see /usr/share/doc/dhcp*/dhcpd.conf.sample

#  see ‘man 5 dhcpd.conf‘

ddns-update-style interim;

ignore client-updates;

next-server 192.168.0.20;

filename "pxelinux.0";

authoritative;

allow booting;

allow bootp;

subnet 192.168.0.0 netmask 255.255.255.0{

range dynamic-bootp 192.168.0.100192.168.0.200;

option routers 192.168.0.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 192.168.0.10;

option domain-name "ssgm.net";

default-lease-time 21600;

max-lease-time 43200;

}

 

以上内容可以直接复制粘贴到配置文件中。

 

配置PXE

 

新建文件夹mkdir /rhelos

拷贝iso镜像内部文件到rhelos文件内,cp –rf  /media/* /rhelos/

编辑NFS配置文件:

vi /etc/exports    内容如下

/rhelos *(rw,sync)

 

启动服务,service dhcpd start

Service nfs start

Service rpcbind start

如果这些服务不是自动启动的,需要chkconfig配置下自动启动。

mkdir /tftpboot     tftp的根目录

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

注意:如果找不到这个文件,需要yum install syslinux,然后再/usr/share/syslinux/ 中拷贝pxelinux.0文件。

cp /media/images/pxeboot/{vmlinuz,initrd.img}/tftpboot

mkdir /tftpboot/pxelinux.cfg

cp /mnt/isolinux/isolinux.cfgpxelinux.cfg/default

vim /tftpboot/pxelinux.cfg/default (修改配置如下:)

 

default linux

prompt 1

timeout 600

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

kernel vmlinuz

append ks=nfs:192.168.0.20:/rhelos/ks.cfginitrd=initrd.img (需要修改的地方)

label text

kernel vmlinuz

append initrd=initrd.img text

label ks

kernel vmlinuz

append ks initrd=initrd.img

label local

localboot 1

label memtest86

kernel memtest

append -

设置timeout 10 /*超时时间为10S */

 

生成ks.cfg安装配置文件(拷贝到提供安装的目录 /rhelos目录)

设置权限 chmod o+wx /rhelos/ks.cfg

可以根据/root/目录下的anaconda-ks.cfg文件修改需要的系统需求。

(注意、clearpart all initlabel #如果ks.cfg脚本中不添加该语句,将不能实现自动化安装)

nfs server=NFS服务器ip dir=光盘的位置 系统安装文件存放的位置

network device eth0 bootprotodhcp(使用DHCP来实现自动分配IP地址)

启动客户端,加电+插上网线,设置网卡启动,等待安装完毕即可。

重启系统就可以了。

以下为我的ks.cfg参考配置:

# Kickstart file automatically generated byanaconda.

 

#version=DEVEL

install

text

nfs --server=192.168.0.20 --dir=/rhelos

key --skip

lang zh_CN.UTF-8

keyboard us

network --device eth0 --bootproto dhcp

rootpw --iscrypted$6$hBCzImAfUr/h6xaf$2nJtxJ/Bh1yAQUt2446ZmgseChRBBXAbBcThnPR9xWC7NbfsEWPb8IF1Vj9KqZ1oKX02ClusTb0BOFz3IJuI//

firewall --disabled

authconfig --enableshadow --passalgo=sha512

selinux --disabled

timezone Asia/Shanghai

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

# The following is the partitioninformation you requested

# Note that any partitions you deleted arenot expressed

# here so unless you clear all partitionsfirst, this is

# not guaranteed to work

#clearpart --none

clearpart --all --initlabel

part /boot --fstype ext4 --size=100

part swap --size=2000

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

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

#part / --fstype=ext4 --grow --size=200

 

 

 

%packages

@base

@chinese-support

@console-internet

@core

@debugging

@development

@dial-up

@mysql-client

@mysql

@system-management-snmp

@server-policy

python-dmidecode

sgpio

device-mapper-persistent-data

ftp

lftp

glibc-utils

systemtap-client

gdb-gdbserver

libstdc++-docs

gcc-gnat

gcc-objc

gcc-objc++

rp-pppoe

perl-DBD-MySQL

%end

 

以上配置文件为最小化安装并自定义安装包的cfg文件。注意rootpw设置的root密码,必须修改成你们自己的密码,用我的,我可不给你们说密码。

network --device eth0 --bootproto dhcp 这一项必须要设置的,否则,进入系统后,无法获取ip,就找不到ks.cfg文件了。整个启动过程中,需要获得两次ip才可以的。这步很关键。

最后,重启服务:

service dhcpd restart ;

service nfs restart ;

service xinetd restart;

service rpcbind restart


请注意标红的设置内容。


本文出自 “中华-网络技术” 博客,请务必保留此出处http://hua0221.blog.51cto.com/108877/1601463

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。