使用Kickstart自动化安装CentOS6.5

使用Kickstart自动化安装CentOS6.5

作者:Todd Liu       时间:2018年5月28日

本文介绍PXE方式引导自动化安装CentOS6.5系统,主要用到的系统服务有DHCP、TFTP、Vsftpd和Kickstart。通过配置Kickstart自动化应答脚本,实现客户端批量、无人值守安装系统。

1. PXE介绍

PXE(Preboot Execution Environment,预启动执行环境)由Intel公司开发,工作于Client/Server的网络模式,支持客户端通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。PXE可以引导windows2003/2008/XP/win7/linux系列等多种系统。

图 1  PXE网络安装服务架构图

图 2  支持PXE启动的网卡

PXE启动流程:进行PXE引导安装的必要条件是有一个支持PXE启动的网卡(NIC),即网卡ROM中必须要有PXE Client。当客户端计算机启动引导时,BIOS 把PXE Client 调入内存中执行,首先通过ARP协议广播请求IP地址与TFTP服务器地址,在获取到IP后,尝试向TFTP服务器发起TFTP请求,并将TFTP服务器根目录中的pxelinux.0文件下载到本地并执行,pxelinux.0引导程序执行后,会从TFTP根目录的pxelinux.cfg文件夹中下载default配置文件,然后根据default配置文件中指定的位置,去下载操作系统内核vmlinuz和虚拟文件系统initrd.img,同时default配置文件中还指明了ks.cfg文件的位置,ks.cfg也会被一并下载到本地,在通过网络下载操作系统安装的过程中,PXE引导程序会尝试读取ks.cfg文件内容,用于初始化系统配置,实现全自动无人值守安装。

2. Kickstart自动化安装实例

2.1   安装环境介绍

实验环境以两台VMware虚拟机为例:

虚拟机ACentOS 6.5系统,作为PXE安装服务器,网络连接到NAT网络,并关闭VMnet8的DHCP服务,IP地址:192.168.2.60/24,网关192.168.2.1/24;

虚拟机B新建空白虚拟机,作为PXE客户端,网络连接到NAT网络,也可以和虚拟机A一起放在“仅主机”或“桥接”网络(相同即可),移除DVD及其他不用的设备;

在正式进行服务配置前,最好关闭PXE服务器的防火墙和Selinux:

关闭防火墙iptables:

   [[email protected] ~]# iptables -F
   [[email protected] ~]# service iptables stop

关闭Selinux:

   [[email protected] ~]# setenforce 0    
   [[email protected] ~]# vim /etc/selinux/config      
    SELINUX=disabled

2.2   配置DHCP服务

PXE启动流程第一阶段需要通过DHCP服务为客户端分配IP地址,指定TFTP服务器地址,指定pxelinux.0引导程序。

1.      安装DHCP服务

     [[email protected] ~]# yum -y install dhcp

2.      设置DHCP服务开机启动

     [[email protected] ~]# chkconfig –level dhcpd 2345 on    
     [[email protected] ~]# chkconfig --list
     dhcpd           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

3.      修改DHCP服务主配置文件

    [[email protected] ~]# vim /etc/dhcp/dhcpd.conf    
    #响应客户端的启动查询(开机时发送的DHCP请求)
    allow booting;
    allow bootp;
    #不使用DNS动态更新,忽略客户端DNS更新
    ddns-update-style none;
    ignore client-updates;
    #为客户端指定DNS名称和DNS服务器的IP地址
    option domain-name "example.org";
    option domain-name-servers 192.168.2.60; 
    #指定客户端DHCP租期和连接DHCP服务器超时时间即最大租期
    default-lease-time 3600;
    max-lease-time 7200;
    #指定DHCP服务器发送的日志信息的日志级别
    log-facility local7;
    #子网区域
    subnet 192.168.2.0 netmask 255.255.255.0 {
    #设置客户端子网掩码
      option subnet-mask 255.255.255.0;
    #客户端IP地址池
      range dynamic-bootp 192.168.2.100 192.168.2.200;
    #tftp服务器的地址
      next-server 192.168.2.60;
    #需要从tftp服务器下载并执行的PXE引导文件
      filename "pxelinux.0";
      default-lease-time 3600;
      max-lease-time 7200;
    #指定客户端默认网关IP地址
      option routers 192.168.2.1; 
    }

4.      重启DHCP服务

    [[email protected] ~]# service dhcpd restart

2.3   配置TFTP服务

TFTP服务是一个没有主服务程序的轻量级服务,它依靠系统xinetd守护进程启动。xinetd进程监听不同网络端口,根据端口发送数据到不同的服务进程。在安装好TFTP服务后,xinetd服务就监听UDP的69号端口,将这个端口收到的数据发送给TFTP程序。

1.      安装xinetd和tftp-server

    [[email protected] ~]# yum -y install xinetd tftp-server

2.      设置xinetd服务开机启动

    [[email protected] ~]# chkconfig –level xinetd 345 on    
    [[email protected] ~]# chkconfig –list
    xinetd          0:关闭  1:关闭  2:关闭  3:启用  4:启用  5:启用  6:关闭
    基于 xinetd 的服务:
            tftp:           启用

3.      编辑tftp配置文件,开启tftp服务

    [[email protected] ~]# vim /etc/xinetd.d/tftp    
    #将配置文件中disable后面的yes改成no
    service tftp
    {
    ……
    disable = no
    ……
    }

4.      重启xinetd服务

    [[email protected] ~]# service xinetd restart

2.4   配置Syslinux及系统引导必须文件

PXE系统启动引导需要一些必须的文件,其中pxelinux.0文件通过安装syslinux包获得;vmlinuz是压缩的可引导、可执行的linux内核文件,initrd.img是“initial ramdisk”,用于临时引导硬件到内核vmlinuz接管,加载文件系统和SCSI设备驱动,这两个文件可以从安装光盘images/pxeboot目录复制;

1.      安装syslinux包,复制引导文件pxelinux.0

    [[email protected] ~]# yum -y install syslinux    
    [[email protected] ~]# locate pxelinux.0
    /usr/share/syslinux/pxelinux.0
    #将pxe引导文件复制到TFTP根目录中
    [[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

2.      挂载CentOS光盘,复制系统引导必须文件

    [[email protected] ~]# mount /dev/cdrom /media/cdrom    
    [[email protected] cdrom]# cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    [[email protected] cdrom]# cp isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/

3.      创建系统引导模版文件default

    [[email protected] cdrom]# mkdir /var/lib/tftpboot/pxelinux.cfg    
    [[email protected] cdrom]# cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

4.      编辑系统引导模版文件default

    [[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default    
    #需要修改两处
    #第1处:将第一行default后面标签改成linux,表示引导时使用这个标签下指定的内容去查找操作系统的位置
    default linux
    #第2处:找到linux标签,修改inst.stage2和ks后面配置指向FTP服务器
    label linux
      menu label ^Install CentOS 6.5 32bit
      menu default
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=ftp://192.168.2.60 ks=ftp://192.168.2.60/pub/ks.cfg quiet

2.5  配置Vsftpd服务

Vsftpd服务通过FTP协议发送系统光盘文件和自动化应答脚本文件ks.cfg到客户端。

1.      安装Vsftpd服务

    [[email protected] cdrom]# yum -y install vsftpd

2.      设置Vsftpd开机启动

    [[email protected] ~]# chkconfig –level vsftpd 2345 on    
    [[email protected] ~]# chkconfig –list
    vsftpd          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

3.      将CentOS6.5系统安装光盘所有文件复制到FTP根目录

    [[email protected] ~]# cp -a /media/cdrom/* /var/ftp/

2.6   配置Kickstart

Kickstart是一种无人值守安装方式,它的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的自动应答脚本文件,在其后的安装过程中,当出现要求填写参数的情况时,安装程序会首先去查找Kickstart生成的文件,当找到合适的参数时,就采用找到的参数;当没有找到合适的参数时,才需要安装者手工干预。这样,如果告诉安装程序ks.cfg文件位置,并且文件涵盖了安装过程中出现的所有需要填写的参数时,就能实现全自动无人值守安装。

1.  RHEL桌面环境下配置Kickstart

    [[email protected] ~]# yum –y install system-config-kickstart    
    [[email protected] ~]# system-config-kickstart

A:开始设置语言,键盘,时区,Root密码,安装完毕自动重启;

B:设置安装方式(ftp/http/nfs);

C:安装MBR;

D:设置分区;

E:配置网络;

F:认证配置;

G:SELinux 和防火墙配置;

H:软件包安装选择

图 3  Kickstart配置界面

经过各种设置,最后是生成的ks.cfg文件预览界面, 文件保存在/var/www/html/文件夹。

图 4  Kickstart生成ks.cfg预览界面

2.  使用系统现有ks.cfg模版文件

在已安装好的CentOS系统root用户家目录,存在一个anaconda.cfg文件即为本系统的自动化应答脚本文件,可以以此为模版进行配置。

    [[email protected] ~]# ls -l anaconda-ks.cfg     
    -rw------- 1 root root 1080 5月  24 11:08 anaconda-ks.cfg

注意:此配置文件权限为其他人不可读,使用前需要设置权限为其他人可读,否则自动化安装时候anaconda程序会报错“找不到ks.cfg文件”。

    #复制一份anaconda-ks.cfg到FTP共享目录pub下:    
    [[email protected] ~]# cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
    #修改权限为其他人可读
    [[email protected] pub]# chmod 644 ks.cfg
    [[email protected] pub]# ls -l
    -rw-r--r-- 1 root root 1353 5月  28 08:59 ks.cfg

下面是一个典型的ks.cfg配置文件:

    [[email protected] pub]# vim ks.cfg    
    # Kickstart file automatically generated by anaconda.
     
    #version=DEVEL
    install
    graphical
    url --url="ftp://192.168.2.60/"
    lang zh_CN.UTF-8
    keyboard us
    timezone --utc Asia/Shanghai
    rootpw  --iscrypted $6$VfvSB5Zx$ufvfpkzYy/nHoDukZXm1Z6LBlUg1n2OrO1.K7F8d2fRlYDdHwwR7MVUqT2h0Qab7rRPnRGPFa1/VYyBSDeGTt1
    firewall --disabled
    selinux --disabled
    authconfig --enableshadow --passalgo=sha512
    firstboot --disable
    network --onboot yes --hostname=localhost.localdomain --device eth0 --bootproto dhcp --noipv6
    user --name=todd --password=$6$vTfBqgQT$Xkjrx/kpRYEGfS1wRnsZw5MNRMUCZ3/Ld969pTG0wv4WBrMHUpWEwRSzPqJ95dIaZasWOU3pbS2at/dRZZZA11 --iscrypted
    bootloader --location=mbr --driveorder=sda
     
    zerombr yes
    clearpart --all --initlabel
     
    part /boot --fstype=ext4 --size=200
    part swap --size=2048
    part / --fstype=ext4 --grow --size=200
     
    reboot
     
    %packages
    @core
    @base
     
    %post
    /bin/tar zcPf centos.repo.tar.gz /etc/yum.repos.d/*.repo > /dev/null 2>&1
    /bin/rm -f /etc/yum.repos.d/*.repo > /dev/null 2>&1
     
    cat >> /etc/yum.repos.d/base.repo << EOF
    [base]
    name=CentOS6.5
    baseurl=ftp://192.168.2.60/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    EOF
     
    %end

说明:

①key --skip 如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 系列,则可以不保留此项内容;

②reboot选项必须存在,否则安装完毕后kickstart显示等待用户按任意键重新引导;

③clearpart --all –initlabel 此条命令必须添加,否则系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;

④安装完毕后登录系统,root用户密码为root,todd用户密码为todd;

⑤%post安装后脚本打包备份原有yum仓库文件,生成新的base.repo仓库。

3. 测试安装

自动化应答脚本文件ks.cfg配置完毕后,初始化一个VMware虚拟机,将网络连接到NAT网络(必须和作为PXE服务器的虚拟机A在同一个网络,并且VMnet8关闭DHCP服务),移除客户端虚拟机B的DVD及其他不用的设备。

图 5  新建空白虚拟机PXE Client

启动PXE Client虚拟机B,自动选择从网卡PXE引导,DHCP 服务器开始给客户机分配IP地址,并指定TFTP服务器地址。

图 6  PXE Client向DHCP Server请求IP地址和TFTP服务器地址

图 7  加载vmlinuz和initrd.img文件

图 8  启动CentOS6.5安装过程

原文地址:http://blog.51cto.com/toddliu/2121532

时间: 2024-10-17 03:22:44

使用Kickstart自动化安装CentOS6.5的相关文章

PXE+HTTP+tftp+kickstart 网络自动化安装centos6.5

基本流程: 1.网卡作为可引导的启动设备 2.BIOS找到引导设置网卡,激活网卡的PXE功能 3.客户端通过PXE的内置dhcp客户端尝试DHCP广播请求,从DHCP服务器获取IP地址.掩码.网关.网络属性 4.DHCP服务器告知客户端tftp服务器地址(next-server),将 "filename "pxelinux.0";" 参数中指定的文件(pxelinux.0)推送给客户端: 5.PXE的内置tftp客户端到指定tftp服务器下载启动镜像文件pxelin

Kickstart自动化安装

Kickstart自动化安装 首先需要安装软件: Yum install –y dhcp* tftp*  nfs-utils Yum install –y syslinux  (没有pxelinux.0需要安装syslinux) 1.配置tftp服务器: Vi /etc/xinetd.d/tftp 把 disable = yes 改为no 就可以了 2.TFTP+PXE配置 要实现远程安装系统,需要在tftpboot目录指定相关PXE内核模块及相关参数.配置步骤如下: Mount /dev/cd

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

使用kickstart实现Centos 自动化安装 Kickstart自动化安装简介: 规模化:同时装配多台 服务器 自动化 :安装系统,配置各种服务 远程实现:不需要光盘,U盘等安装介质 优势: (1)流线自动化的安装 (2)快速大量的裸机部署 (3)强制建立的一致性(软件包,分区,配置,监控,安全性) (4)减少人为的部署失误 使用Kickstart方法安装的过程: (1). 创建一个kickstart文件 (2). 创建有kickstart文件的引导介质或者使这个文件在网络上可用: (3)

Kickstart自动化安装部署Centos系统平台的搭建

先上拓扑图吧 0.使用虚拟机做实验的规划 1.ip地址的规划,模板练习机器1对应10.0.0.11,依次类推 2.所有的服务器配置好epel源 3.所有的服务器都要做内核优化(基本) 4.每个实验都要有详细的文档 5.模拟实验故障,并做记录 6.所用系统均为centos6.5for 64bit 内核版本号为2.6.32-431 一.部署Kickstart自动化安装系统平台 第一部分:基本准备篇 实验环境为centos6.5for 64bit 经验:建议安装kickstart-server为min

vmware上搭建kickstart 网络安装centos6.2的过程

前言 什么是PXE? PXE(Pre-boot Execution Environment,预启动执行环境)协议使计算机可以通过网络启动.协议分client和server. PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行. PXE server 需要配置 DHCP 服务器和 TFTP 服务器.DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个

构建PXE环境--网络自动化安装CentOs6.5

一.构建PXE环境实验 1.当前系统版本 2.查看网络环境和yum源 当前系统的IP是192.168.1.60,子网掩码是255.255.255.0,默认网关是192.168.1.1 本次实验使用的yum源是本地光盘,构建过程如下: (1)挂载本地光盘(已做成yum仓库的)到/media/centos6.5_DVD1目录下     (2)在/etc/yum.repos.d/目录下新建yum的配置文件local.repo,并编辑该配置文件,指定yum源在本地光盘上 3.安装并启动DHCP服务 (1

kickstart自动化安装过程(搜索整理)

Kickstart自动安装配置文档(NFS+http版本) 一.什么是PXE?PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术, 工作于Client/Server的网络模式.严格来说,PXE 并不是一种安装方式,而是一种引导方式.进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-boot Execution Environment)协

PXE+DHCP+Apache+Kickstart无人值守安装CentOS-6.6

以前的工作中做过一次无人值守全自动批量安装Centos,无耐当时太忙,忘了做笔记.现在刚好公司新进了一批服务器要上架,要做系统,正好利用此次机会做了如下笔记: 什么是PXE?什么是Kickstart?此处不在一 一描述,因为网络上对这些概念解释实在是太多了,我就此对PXE+Kickstart的安装条件和详细步骤做一 阐述. 执行PXE+Kickstart安装需要先决条件: DHCP服务器: TFTP服务器: Kickstart所生成的ks.cfg配置文件: 一台存放系统安装文件的服务器,如NFS

kickstart无人值守安装centos6

1.  背景介绍 现在很多企业都有这样的需求,一次安装多台服务器,常规的光盘安装即费时也费力,只能一台一台的安装,当服务器数量几十到几百台的时候,这样安装效率就大大降低了,这样就诞生了自动化部署软件,常用的有kickstart和cubbler 1.1什么是PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动