Linux之kickstart无人值守安装系统

前言:

    安装几十或上百台以上的Linux操作系统时,我们不可能一台一台的手动去安装,这样又费力又耗时,这时我们就需要一个批量和无操作的方法来安装系统,而Linux中的kickstart无人值守安装服务就提供了这样的功能,当然也有很多方法可以实现这样的功能,本章只讲解kickstart的方法。

1、kickstart服务器环境

    1)服务器IP地址:192.168.26.102

    2)操作系统:

[root@vms002 /]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.1 (Maipo)

    3)kickstart需要安装的服务

服务

功能

dhcp

提供给客户端IP信息及tftp服务器信息

tftp-server

存放引导程序,提供给客户端下载

ftp或http或nfs

共享操作系统

2、DHCP安装及配置

    1)yum安装dhcp服务

[root@vms002 /]# yum -y install dhcp
[root@vms002 /]# rpm -qa dhcp
dhcp-4.2.5-36.el7.x86_64

    2)编辑DHCP配置文件

#查找DHCP配置文件

[root@vms002 /]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

#编辑DHCP配置文件

[root@vms002 /]# cd /etc/dhcp/
[root@vms002 dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
#备份dhcpd.conf配置文件
[root@vms002 dhcp]# cp dhcpd.conf dhcpd.conf.back
[root@vms002 dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@vms002 dhcp]# cp /usr/share/doc/dhc
dhclient-4.2.5/    dhcp-4.2.5/        dhcp-common-4.2.5/
[root@vms002 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
cp:是否覆盖"./dhcpd.conf"? y
#编辑dhcpd.conf配置文件
[root@vms002 dhcp]# vim dhcpd.conf

subnet 192.168.26.0 netmask 255.255.255.0 {   #网段
  range 192.168.26.10 192.168.26.60;         #分配IP地址池
  option domain-name-servers 192.168.26.2;   #dns地址
  option domain-name "example.com";
  option routers 192.168.26.2;               #网关地址
  option broadcast-address 192.168.26.255;   #广播地址
  next-server 192.168.26.102;     #tftp服务器IP地址
  filename "/pxelinux.0";         #告知客户端从tftp服务器根目录下下载pxelinux.0引导程序文件
  default-lease-time 600;
  max-lease-time 7200;
}

    3)启动dhcp服务并设置开机自启动

#启动dhcpd服务
[root@vms002 dhcp]# systemctl start dhcpd
[root@vms002 dhcp]# systemctl is-active dhcpd
active
#设置开机自启动dhcpd服务
[root@vms002 dhcp]# systemctl enable dhcpd
ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
[root@vms002 dhcp]# systemctl is-enabled dhcpd
enabled

3、安装tftp-server服务

    1)yum安装tftp-server服务

[root@vms002 dhcp]# yum -y install tftp-server

    2)编辑tftp配置文件

#查询tftp配置文件
[root@vms002 dhcp]# rpm -qc tftp-server
/etc/xinetd.d/tftp
[root@vms002 dhcp]# cd /etc/xinetd.d/
[root@vms002 xinetd.d]# ls
chargen-dgram   daytime-stream  echo-dgram     tftp
chargen-stream  discard-dgram   echo-stream    time-dgram
daytime-dgram   discard-stream  tcpmux-server  time-stream
#备份tftp配置文件
[root@vms002 xinetd.d]# cp tftp tftp.back
#编辑tftp配置文件
[root@vms002 xinetd.d]# vim tftp

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation 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
}

    3)启动tftp服务并设置开机自启动

#启动xinetd服务
[root@vms002 xinetd.d]# systemctl start xinetd
[root@vms002 xinetd.d]# systemctl is-active xinetd
active
#设置开机自启动xinetd服务
[root@vms002 xinetd.d]# systemctl enable xinetd
[root@vms002 xinetd.d]# systemctl is-enabled xinetd
enabled

4、复制引导程序及网络启动的内核文件到tftp服务的根目录下

#tftp根目录路径

[root@vms002 xinetd.d]# ls /var/lib/tftpboot/

    1)查询及安装pxelinux.0引导程序,复制pxelinux.0引导程序到tftp根目录下

    #查询pxelinux.0引导程序

[root@vms002 xinetd.d]# yum whatprovides */pxelinux.0
已加载插件:langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
dvd/filelists_db                                    | 3.1 MB     00:00     
syslinux-4.05-12.el7.x86_64 : Simple kernel loader which boots from a FAT
                            : filesystem
源    :dvd
匹配来源:
文件名    :/usr/share/syslinux/pxelinux.0

    #安装pxelinux.0引导程序

[root@vms002 xinetd.d]# yum -y install syslinux-4.05-12.el7.x86_64

    #复制pxelinux.0引导程序到tftp根目录下

[root@vms002 xinetd.d]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@vms002 xinetd.d]# ls /var/lib/tftpboot/
pxelinux.0

    2)mount挂载光盘到/rhel-7.1目录下,复制网络启动的内核文件{vmlinuz,initrd.img}到tftp根目录下

    #创建/rhel-7.1目录

[root@vms002 xinetd.d]# mkdir /rhel-7.1

    #mount挂载

[root@vms002 xinetd.d]# mount /dev/cdrom /rhel-7.1/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@vms002 xinetd.d]# ls /rhel-7.1/
addons  images      Packages                 RPM-GPG-KEY-redhat-release
EFI     isolinux    release-notes            TRANS.TBL
EULA    LiveOS      repodata
GPL     media.repo  RPM-GPG-KEY-redhat-beta

    #复制网络启动的内核文件{vmlinuz,initrd.img}到tftp根目录下

[root@vms002 xinetd.d]# cp /rhel-7.1/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@vms002 xinetd.d]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz

    3)根据自己的操作系统重命名tftp目录下的引导程序和内核文件,以便区分

[root@vms002 xinetd.d]# cd /var/lib/tftpboot/
[root@vms002 tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@vms002 tftpboot]# mv initrd.img initrd_7.1.img 
[root@vms002 tftpboot]# mv pxelinux.0 pxelinux_7.1.0 
[root@vms002 tftpboot]# mv vmlinuz vmlinuz_7.1
[root@vms002 tftpboot]# ls
initrd_7.1.img  pxelinux_7.1.0  vmlinuz_7.1

5、安装并启动vsftpd服务

    1)yum安装vsftpd服务

[root@vms002 /]# yum -y install vsftpd

    2)启动并设置开机自启动vsftpd服务

#启动vsftpd服务
[root@vms002 /]# systemctl start vsftpd
[root@vms002 /]# systemctl is-active vsftpd
active
#设置开机自启动vsftpd服务
[root@vms002 /]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
[root@vms002 /]# systemctl is-enabled vsftpd
enabled

6、安装system-config-kickstart工具包,编辑kickstart配置程序生成rhel-7.1.cfg应答文件

    1)修改yum源名称

[root@vms002 /]# vim /etc/yum.repos.d/aa.repo 

[development]  #修改此名称
name=dvd
baseurl=ftp://192.168.26.101/dvd
enabled=1
gpgcheck=0
[root@vms002 /]# yum clean all

    2)yum安装system-config-kickstart工具包

[root@vms002 /]# yum -y install system-config-kickstart

    3)编辑kickstart配置程序生成rhel-7.1.cfg应答文件,并保存在vsftpd根目录下(/var/ftp/)

[root@vms002 /]# system-config-kickstart &

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

#编辑完后保存在/var/ftp目录下
image.png

image.png

    4)检查应答文件是否生成成功

[root@vms002 /]# ls /var/ftp/
pub  rhel-7.1.cfg

7、复制并编辑PXE配置文件

    1)复制PXE配置文件

    #在tftp目录下创建pxelinux.cfg目录

[root@vms002 tftpboot]# pwd
/var/lib/tftpboot
[root@vms002 tftpboot]# mkdir pxelinux.cfg
[root@vms002 tftpboot]# ls
initrd_7.1.img  pxelinux_7.1.0  pxelinux.cfg  vmlinuz_7.1

    #复制PXE配置文件到pxelinux.cfg目录下,并命名为default文件

[root@vms002 tftpboot]# cp /rhel-7.1/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@vms002 tftpboot]# ls /var/lib/tftpboot/pxelinux.cfg
default

    2)编辑PXE配置文件

    #备份default文件

[root@vms002 tftpboot]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@vms002 pxelinux.cfg]# cp default default.back
[root@vms002 pxelinux.cfg]# ls
default  default.back

    #赋予default文件写入权限

[root@vms002 pxelinux.cfg]# chmod u+w default
[root@vms002 pxelinux.cfg]# ls -l default
-rw-r--r--. 1 root root 3166 6月   3 15:56 default

    #编辑文件

[root@vms002 pxelinux.cfg]# vim default

default rhel-7.1   #默认启动的是“label rhel-7.1”中标记的启动内核
timeout 600        #在用户输入之前的超时时间,单位为秒
prompt 0            #显示‘boot’提示符,为0时不提示,启动默认指定的启动内核
..................省略...................
label rhel-7.1
  menu label ^Install Red Hat Enterprise Linux 7.1
  kernel vmlinuz_7.1   #与tftp目录下的内核文件一样
  append initrd=initrd_7.1.img inst.ks=ftp://192.168.26.102/rhel-7.1.cfg quiet
..................省略...................

    3)重启tftp服务

[root@vms002 pxelinux.cfg]# systemctl restart xinetd

8、测试

    用VMware Workstation虚拟机,创建一个新的虚拟机,不指定使用ISO镜像文件,网络适配器要与kickstart服务器是同一个网段。

image.png


image.png











猜你喜欢

转载自blog.51cto.com/13716812/2404447