设为首页 收藏本站
查看: 628|回复: 0

[经验分享] 使用Kickstart自动化安装CentOS6.5

[复制链接]

尚未签到

发表于 2019-2-16 12:39:10 | 显示全部楼层 |阅读模式
      本文介绍PXE方式引导自动化安装CentOS6.5系统,主要用到的系统服务有DHCPTFTPVsftpdKickstart。通过配置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网络,并关闭VMnet8DHCP服务,IP地址:192.168.2.60/24,网关192.168.2.1/24

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

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

关闭防火墙iptables


   [root@localhost ~]#iptables -F
   [root@localhost ~]#service iptables stop
    关闭Selinux

   [root@localhost ~]#setenforce 0   
   [root@localhost ~]#vim /etc/selinux/config      
    SELINUX=disabled
2.2   配置DHCP服务
PXE启动流程第一阶段需要通过DHCP服务为客户端分配IP地址,指定TFTP服务器地址,指定pxelinux.0引导程序。

   1.      安装DHCP服务

     [root@localhost ~]# yum -y install dhcp
2.      设置DHCP服务开机启动


     [root@localhost ~]#chkconfig --level dhcpd 2345 on   
     [root@localhost ~]#chkconfig --list
     dhcpd           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
3.      修改DHCP服务主配置文件


    [root@localhost ~]#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服务

    [root@localhost ~]#service dhcpd restart2.3   配置TFTP服务
TFTP服务是一个没有主服务程序的轻量级服务,它依靠系统xinetd守护进程启动。xinetd进程监听不同网络端口,根据端口发送数据到不同的服务进程。在安装好TFTP服务后,xinetd服务就监听UDP69号端口,将这个端口收到的数据发送给TFTP程序。

1.      安装xinetdtftp-server

    [root@localhost ~]#yum -y install xinetd tftp-server
2.      设置xinetd服务开机启动


    [root@localhost ~]#chkconfig --level xinetd 345 on   
    [root@localhost ~]#chkconfig --list
    xinetd          0:关闭  1:关闭  2:关闭  3:启用  4:启用  5:启用  6:关闭
    基于 xinetd 的服务:
            tftp:           启用
3.      编辑tftp配置文件,开启tftp服务


    [root@localhost ~]#vim /etc/xinetd.d/tftp   
    #将配置文件中disable后面的yes改成no
    service tftp
    {
    ……
    disable = no
    ……
    }
4.      重启xinetd服务

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

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


    [root@localhost ~]#yum -y install syslinux   
    [root@localhost ~]#locate pxelinux.0
    /usr/share/syslinux/pxelinux.0
    #将pxe引导文件复制到TFTP根目录中
    [root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
2.      挂载CentOS光盘,复制系统引导必须文件


    [root@localhost ~]#mount /dev/cdrom /media/cdrom   
    [root@localhost cdrom]#cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    [root@localhost cdrom]#cp isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/
3.      创建系统引导模版文件default


    [root@localhost cdrom]#mkdir /var/lib/tftpboot/pxelinux.cfg   
    [root@localhost cdrom]#cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
4.      编辑系统引导模版文件default


    [root@localhost ~]#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 quiet2.5  配置Vsftpd服务
Vsftpd服务通过FTP协议发送系统光盘文件和自动化应答脚本文件ks.cfg到客户端。

1.      安装Vsftpd服务

    [root@localhost cdrom]#yum -y install vsftpd
2.      设置Vsftpd开机启动


    [root@localhost ~]#chkconfig --level vsftpd 2345 on   
    [root@localhost ~]#chkconfig --list
    vsftpd          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
3.      CentOS6.5系统安装光盘所有文件复制到FTP根目录

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

1.  RHEL桌面环境下配置Kickstart


    [root@localhost ~]#yum –y install system-config-kickstart   
    [root@localhost ~]#system-config-kickstart
A:开始设置语言,键盘,时区,Root密码,安装完毕自动重启;

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

C:安装MBR

D:设置分区;

E:配置网络;

F:认证配置;

GSELinux 和防火墙配置;

H:软件包安装选择



                                                 图 3  Kickstart配置界面

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


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

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

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


    [root@localhost ~]#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下:   
    [root@localhost ~]#cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
    #修改权限为其他人可读
    [root@localhost pub]#chmod 644 ks.cfg
    [root@localhost pub]#ls -l
    -rw-r--r-- 1 root root 1353 5月  28 08:59 ks.cfg
下面是一个典型的ks.cfg配置文件:


    [root@localhost 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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673170-1-1.html 上篇帖子: centos 6/7 系统初始化脚本 下篇帖子: centos 7.4 x86 安装saltstack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表