Linux无人值守

配置网络安装的说明及步骤演示

1、配置nfs服务器,用于存放linux系统的安装文件

2、配置tftp服务器,用于提供客户端pxe引导所必须的启动文件

3、配置dhcp服务器,用于给客户端提供ip地址及其他信息

4、配置kickstart,用于自动应答操作系统安装

5、使用网卡的pxe功能引导客户机。

配置nfs服务器

创建共享目录并将光盘内容拷贝到共享目录中去

[root@localhost ~]# mkdir /data/sys -p

[root@localhost ~]# cp -a /media/* /data/sys/

安装配置nfs

[root@localhost ~]# rpm -qa | grep nfs

nfs-utils-1.2.3-36.el6.x86_64

nfs-utils-lib-1.1.5-6.el6.x86_64

nfs4-acl-tools-0.3.3-6.el6.x86_64

[root@localhost ~]# echo "/data/sys192.168.100.0/24(ro,sync)" >> /etc/exports

[root@localhost ~]# cat /etc/exports

/data/sys 192.168.100.0/24(ro,sync)

启动服务并验证是否共享

[root@localhost ~]# service nfs start

[root@localhost ~]# showmount -e 192.168.100.1

Export list for 192.168.100.1:

/data/sys 192.168.100.0/24

 

安装配置tftp服务器

客户机需要通过tftp服务器下载引导文件并执行。因此,需要通过配置tftp服务器和pxe的引导配置完成这个过程。

安装tftp

[root@localhost ~]# yum -y install tftp-server

修改配置文件启动tftp

[root@localhost ~]# vim /etc/xinetd.d/tftp

# default: off

# description: The tftp server serves files using the trivial filetransfer \

#       protocol.  The tftp protocol is often used to bootdiskless \

#       workstations, downloadconfiguration files to network-aware printers, \

#       and to start theinstallation process for some operating systems.

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no  #yes改为no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

设置完成启动服务

[root@localhost ~]# service xinetd start

 

Pxe引导配置

Pxe启动映像文件由syslinux软件包提供,安装syslinux,就会生成一个pxelinux.0,将pxelinux.0这个文件复制到/tftpboot

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

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/

设置用于启动的内核文件(/media目录为系统盘挂载的位置)

[root@localhost ~]# cp /media/images/pxeboot/initrd.img/var/lib/tftpboot/

[root@localhost ~]# cp /media/images/pxeboot/vmlinuz/var/lib/tftpboot/

将光盘中的isolinux/isolinux.cfg文件复制为/tftpboot/pxelinux.cfg/default

[root@localhost ~]# cd /var/lib/tftpboot/

[root@localhost tftpboot]# mkdir pxelinux.cfg

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

安装配置dhcp服务器

在pxe引导安装过程中,pxe客户机通过dhcp服务获取pxe客户机的ip地址、pxe引导文件名称;然后客户机在通过tftp协议从tftp服务器下载引导文件。

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

配置dhcp服务器

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

# DHCP Server Configuration file.

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

#   see dhcpd.conf(5) man page

subnet 192.168.100.0 netmask 255.255.255.0 {

  range 192.168.100.10192.168.100.100;

  option routers192.168.100.1;

  option subnet-mask255.255.255.0;

  next-server192.168.100.1;  #指定tftp服务器位置

  filename"pxelinux.0";    #指定PXE引导程序文件名

}

启动dhcp服务

[root@localhost ~]# service dhcpd start

 

Kickstart安装配置

为了避免在能在操作系统的过程中,需要大量和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。使用这种kickstart,只需要事先定义好一个kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序只要该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。

 

[root@localhost ~]# yum -y install system-config-kickstart

安装kickstart之后,通过桌面菜单应用程序”→“系统工具”→“kickstart就可以打开kickstart配置程序。

技术分享


设置nfs服务的地址和目录

技术分享

设置磁盘信息

技术分享

设置网络信息

技术分享

防火墙设置选择禁用即可

技术分享

选择安装的相关服务

技术分享

设置安装后的脚本

技术分享

安装文件如下

[root@localhost ~]# grep -v "#" ks.cfg

firewall --disabled

install

nfs --server=192.168.100.1 --dir=/data/sys

rootpw --iscrypted$1$IT9coR8E$EjlYzCraRb5p1nF8UFWbf/

auth --passalgo=sha512

graphical

firstboot --disable

keyboard us

lang zh_CN

selinux --disabled

logging --level=info

 

timezone Asia/Shanghai

bootloader --location=mbr

zerombr

clearpart --all 

part swap --fstype="swap" --size=2048

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

 

%post --interpreter=/bin/bash

useradd zhangsan

%end

 

%packages

@base

@basic-desktop

@development

@chinese-support

 

%end

启动自动应答文件

[root@localhost ~]# cp ks.cfg /data/sys/ks.cfg

修改安装方式为自动

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

default auto

prompt 0

label auto

  kernelvmlinuz

  appendks=nfs:192.168.100.1:/data/sys/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192

ks设置应答文件位置

如果有多块网卡可能还需要设置ksdevice=eth0

还可以设置timeout等待时间

 

设置完成之后,客户端通过网络pxe启动就可以自动安装了


无人值守一键脚本

#!/bin/bash
##################################################
# Author        : wangjunkang
# qq            : 2723216002
# Email         : [email protected]
# Last modified : 2015-03-14 10:17
# Filename      : pxe.sh
# Description   : 
##################################################
media=/media/         #设置光盘挂载位置
gongxiang=/data/sys   #设置nfs共享目录
nfsserver=192.168.100.1
#拷贝系统安装文件
if [ -d $gongxiang ];then
   daxiao=`du -sh /data/sys/ | awk ‘{print $1}‘`
   if [ $daxiao == 3.5G ];then
       echo " " >>/dev/null
   fi
else
       mkdir $gongxiang -p
       cp -a $media* $gongxiang
fi
#设置nfs共享
grep "/data/sys" /etc/exports ||  echo "/data/sys 192.168.100.0/24(ro,sync)" >> /etc/exports && service nfs start >> /dev/null
#设置tftp
rpm -qa | grep tftp-server >> /dev/null
rpmtftp=`echo $?`
if [ $rpmtftp -ne 0 ];then
   yum -y install tftp-server >>/dev/null
   sed -i ‘s/disable.*= yes/disable  = no/g‘ /etc/xinetd.d/tftp
   service xinetd start >>/dev/null
else
   grep "disable.*= yes" /etc/xinetd.d/tftp && sed -i ‘s/disable.*= yes/disable = no/g‘ /etc/xinetd.d/tftp && service xinetd reload
   echo " " >>/dev/null
fi
#设置dhcp
subnet=192.168.100.0
netmask=255.255.255.0
range="192.168.100.10 192.168.100.100"
routers="192.168.100.1"
subnetmask="255.255.255.0"
rpm -qa | grep dhcp.x86_64 >> /dev/null
if [ $? -ne 0 ];then
  yum -y install dhcp >>/dev/null && >/etc/dhcp/dhcpd.conf && cat >>/etc/dhcp/dhcpd.conf<<EOF 
  subnet $subnet netmask $netmask {
  range $range;
  option routers $routers;
  option subnet-mask $subnetmask;
  next-server $nfsserver; 
  filename "pxelinux.0";    
  }
EOF
  service dhcpd start >>/dev/null
else
>/etc/dhcp/dhcpd.conf &&   cat >>/etc/dhcp/dhcpd.conf<<EOF 
  subnet $subnet netmask $netmask {
  range $range;
  option routers $routers;
  option subnet-mask $subnetmask;
  next-server $nfsserver; 
  filename "pxelinux.0";   
 } 
EOF
  service dhcpd reload >>/dev/null
fi
#拷贝安装所需的内核文件和pxe启动文件
rpm -qa | grep syslinux >>/dev/null|| yum -y install syslinux >>/dev/null
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /$media/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /$media/images/pxeboot/vmlinuz /var/lib/tftpboot/
if [ -d /var/lib/tftpboot/pxelinux.cfg ];then
 echo "" >>/dev/null
else
  mkdir /var/lib/tftpboot/pxelinux.cfg
fi
cp /$media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#设置自动应答文件
>/data/sys/ks.cfg
cat >>/data/sys/ks.cfg<<EOF
firewall --disabled
install
nfs --server=$nfsserver --dir=$gongxiang
rootpw --iscrypted $1$IT9coR8E$EjlYzCraRb5p1nF8UFWbf/
auth  --passalgo=sha512
graphical
firstboot --disable
keyboard us
lang zh_CN
selinux --disabled
logging --level=info
timezone  Asia/Shanghai
bootloader --location=mbr
zerombr
clearpart --all  
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1
#reboot
%packages
@base
@chinese-support
@client-mgmt-tools
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
pax
python-dmidecode
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end
EOF
#设置pxe启动文件
>/var/lib/tftpboot/pxelinux.cfg/default
cat >>/var/lib/tftpboot/pxelinux.cfg/default<<EOF
default auto
prompt 0
label auto
  kernel vmlinuz
  append ks=nfs:$nfsserver:$gongxiang/ks.cfg  initrd=initrd.img devfs=nomount ramdisk_size=8192
EOF
#关闭防火墙和SElinux
iptables -F
setenforce 0


本文出自 “梅花香自苦寒来” 博客,请务必保留此出处http://wangjunkang.blog.51cto.com/8809812/1620321

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