如何利用kickstart实现Linux快速部署(配置步骤)

如何利用kickstart实现Linux快速部署

 

实现kickstart的前提:

  1. 一台用于提供Linux安装文件的WEB或FTP服务器;
  2. 一台用于IP地址分配及PXE启动的DHCP服务器;
  3. 一台用于下载PXE启动组件的TFTP服务器,确保kickstart能把机器启动起来;
  4. 一块可以用于PXE启动的网卡(本文用的是Hyper-V虚拟机,使用“旧版网络适配器”);
  5. 在主机的BIOS中设定系统允许网络启动;

综述:

本文档是基于DELLOptiPlex 990(12GB内存、2网卡)上的Windows2012  Hyper-V系统上完成的。

本次实验使用的WEB/DHCP/TFTP服务器均配置在同一台机器(虚拟机),操作系统是运行在Hyper-V虚拟机上的RedHatLinux 5.5。

建议安装系统时选择安装httpd、dhcp、tftp、syslinux相应软件包;实验环境的网络是独立的网络,因此可以避免DHCP服务器影响公司的生产网络。

所有步骤均在测试环境下经过验证。

以下将详细描述上述各个前提的实施步骤:

一、务器的安装配置

如果安装系统未安装httpd,则需要另外安装,参考如下命令:

[root@localhostServer]# rpm-ivh httpd-2.2.3-43.el5.x86_64.rpm

[root@localhostServer]# rpm-ivh syslinux-3.11-4.x86_64.rpm

如果你的系统可以使用yum安装软件,则执行如下命令即可:

[root@localhostServer]# yuminstall httpd syslinux

 

配置http共享文件夹:

[root@localhost ~]#vi /etc/httpd/conf/httpd.conf

添加/确保如下内容存在:

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

 

[root@localhost ~]# chkconfig --list  httpd

[root@localhost ~]# chkconfig httpd on

[root@localhost ~]# service httpd start

[root@localhost ~]# service httpd status

 

二、DHCP服务器的安装配置

[root@localhostServer]# rpm-ivh dhcp-3.0.5-23.el5.x86_64.rpm

[root@localhostServer]#yum install dhcp

 

[root@localhostServer]#cat /etc/dhcpd.conf

#

# DHCP Server Configuration file.

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

#

allow booting;

allow bootp;

ddns-update-style interim;

default-lease-time 3600;

max-lease-time 4800;

 

next-server 10.10.248.48;

 

subnet 10.10.248.0 netmask255.255.255.0 {

range 10.10.248.50 10.10.248.99;

option domain-name-servers10.10.248.10;

option subnet-mask 255.255.255.0;

option time-offset -8;

}

 

host RH01 {

hardware ethernet00:15:5D:0A:35:11;

fixed-address10.10.248.56;

option host-name"RH01";

filename"pxelinux.0";

}

[root@localhostServer]#

其中黄色部分给您需要安装系统的主机指定网卡确定IP地址;

启动DHCP服务,并设置该服务在每次系统重启时自动启动:

[root@localhostServer]#chkconfig --list  dhcp

[root@localhostServer]#chkconfig dhcp on

[root@localhostServer]#service dhcp start

[root@localhostServer]#service dhcp status

 

三、TFTP服务器的安装配置

[root@localhostServer]# rpm -ivh tftp-server-0.49-2.x86_64.rpm

[root@localhostServer]# yum install tftp-server

[root@localhostServer]#vi /etc/xinetd.d/tftp

[root@localhostServer]# cat/etc/xinetd.d/tftp

# default: off

# description: The tftp serverserves files using the trivial file transfer \

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

#       workstations, download configurationfiles to network-aware printers, \

#       and to start the installation processfor some operating systems.

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s -c -v-v -v /tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

[root@localhostServer]#

[root@localhostServer]#chkconfig --list  tftp

[root@localhostServer]#chkconfig tftp on

[root@localhostServer]#service xinetd restart

 

 

四、PXE服务器的配置

首先,PXE服务器需要使用静态IP地址,所以需要把Linux服务器eth0改成使用静态IP地址:

 [root@localhost Server]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Digital Equipment CorporationDECchip 21140 [FasterNet]

DEVICE=eth0

BOOTPROTO=STATIC

ONBOOT=yes

HWADDR=00:15:5d:0a:35:10

TYPE=ethernet

IPADDR=10.10.248.48

NETMASK=255.255.255.0

GATEWAY=10.10.248.10

[root@localhostServer]#

 

现在,我们就可以开始设置PXE的启动环境了:

PXE网络启动原理:文件传输可以是HTTPNFS


1、首先,你需要准备好一台用于安装的Linux系统盘(CD格式或把CD内容拷贝到一个可通过http共享的目录):

a.       把rhel-server-5.5-x86_64-dvd.iso文件上传到服务器;

b.       [root@localhostServer]#mkdir/var/www/html/rhel55

c.       修改/etc/fstab,增加如下内容:

d.       /root/rhel-server-5.5-x86_64-dvd.iso/var/www/html/rhel55 iso9660 loop=/dev/loop1,ro 0 0

2、在RH的第一张系统光盘中,你可以看到一个isolinux的子目录,在该目录下你可以找到两个文件,分别是vmlinuz 和 initrd.img. 它们是Linux的 kernel 及 initrd.img,是Linux启动光盘用来启动 Linuxinstaller (anaconda) ,然后进行安装操作的。

3、拷贝这两个文件到/tftpboot目录下,并将它们改为所以人可以读取;注:如果计划多个版本的系统用于PXE启动,你可以修改相应文件的名称;

4、到此,你需要把对应系统的pxe启动的kernel(这就是PXE启动后获得DHCP地址后马上运行的核心);你可以在/usr/lib/syslinux/目录下找到pxelinux.0文件,然后将其拷贝到/tftpboot目录下,修改为所有人可读权限;

5、配置pxelinux:创建/tftpboot/pxelinux.cfg目录(修改为所有人可读权限),在该目录创建如下空文件(用touch命令):

[[email protected]]# ls-l

total 4

-rw-r--r-- 1 root root   0 Sep 19 16:18 0

-rw-r--r-- 1 root root   0 Sep 19 11:59 01-00-15-5d-0a-35-11

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0A

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0AF

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0AF8

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0AF83

-rw-r--r-- 1 root root   0 Sep 19 11:33 0A0AF838

-rwxrwxrwx 1 root root 412 Sep 1913:46 default

[[email protected]]#

 

其中01-00-15-5d-0a-35-11是01-加PXE客户端机器的MAC地址,0A0AF838是IP地址10.10.248.56的十六进制值。

 

6、 现在需要创建一个default的pxelinux配置文件,文件内容如下:

[[email protected]]# catdefault

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 initrd=initrd.img

label text

 kernel vmlinuz

 append initrd=initrd.img text

label ks

 kernel vmlinuz

 append ksdevice=eth0 ks=http://10.10.248.48/redhat5.5.cfginitrd=initrd.img

label local

 localboot 1

label memtest86

 kernel memtest

 append -

[[email protected]]#

 

五、kickstart配置文件的准备

如下kickstart配置文件需要拷贝到http的共享目前,此处为:/var/www/html

[root@localhosthtml]# catredhat5.5.cfg

#######################################################################

# This is an installation not anupgrade

install

# The location of the RPM files

url --urlhttp://10.10.248.48/rhel55/

key --skip

lang en_US

# Use text mode install

text

keyboard us

xconfig --defaultdesktop kde--resolution 640x480 --depth 8

network --device eth0 --bootprotodhcp --onboot=on

rootpw --iscrypted$1$u0Zg1qia$GLYfHZN3vrliUiL6lshmP.

authconfig --useshadow--enablemd5

selinux --disabled

timezone ASIA/HONG_KONG

firewall --disabled

firstboot --disable

# Reboot after installation

reboot

bootloader --location=mbr--append="console=ttyS0,9600n8"

clearpart --all --initlabel

 

# define partitions

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

part /opt --fstype ext3--size=10000 --grow

part /usr --fstype ext3--size=10000

part /tmp --fstype ext3--size=7500

part /var --fstype ext3--size=7500

part /home --fstype ext3--size=4500

part swap --size=2048

part / --fstype ext3 --size=2048

part /usr/local --fstype ext3--size=2000

 

#######################################################################

 

#######################################################################

%packages

@engineering-and-scientific

@mysql

@development-libs

@editors

@system-tools

@gnome-software-development

@text-internet

@gnome-desktop

@core

@base

@ftp-server

@network-server

@legacy-software-development

@java-development

@printing

@kde-desktop

@mail-server

@server-cfg

@sql-server

@admin-tools

@development-tools

@graphical-internet

festival

audit

kexec-tools

bridge-utils

device-mapper-multipath

dnsmasq

imake

-sysreport

mc

festival

audit

libgnome-java

libgtk-java

libgconf-java

kexec-tools

xorg-x11-server-Xnest

xorg-x11-server-Xvfb

-compiz-kde

-knetworkmanager

-amarok

#######################################################################

 

Kickstart的配置文件可以在每次系统安装自动生成,存放在/root/目录下,在该版本中,其文件名是anaconda-ks.cfg;

Kickstart的配置文件有很多的自定义/客户化,如安装后脚本%post等等,这方面的内容本文不详细讨论。

六、Troubleshooting

1、PXE配置问题:检查dhcpd.conf文件是否pxelinux.0文件是否已定义;

2、  客户端启动是DHCP获取IP成功,但是出现“tftp:client does not accept options”:

检查dhcpd.conf文件是否添加如下内容:

allow booting;

allow bootp;


七、参考文档:

http://linux-sxs.org/internet_serving/pxeboot.html

https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-kickstart2.html

 

 


你可能感兴趣的:(自动快速部署,Linux,云计算,linux,服务器,ftp服务器,printing,server,网络)