zoukankan      html  css  js  c++  java
  • kickstart自动化安装--tftp+nfs+dhcp

    使用kickstart实现Centos 自动化安装

    Kickstart自动化安装简介:

    规模化:同时装配多台 服务器

    自动化 :安装系统,配置各种服务

    远程实现:不需要光盘,U盘等安装介质

    优势:

    (1)流线自动化的安装

    (2)快速大量的裸机部署

    (3)强制建立的一致性(软件包,分区,配置,监控,安全性)

    (4)减少人为的部署失误

    使用Kickstart方法安装的过程: (1).  创建一个kickstart文件 (2).  创建有kickstart文件的引导介质或者使这个文件在网络上可用; (3).  筹备一个安装树 (4).  开始ks安装:anconda自身启动 –>选取ks安装模式–> 从ks文件读取配置 –> 最后安装 创建kickstart配置文件的方式: (1).  文本编辑器(vim)等 (2). 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包

    PXE(preboot execute environment, )是由Intel公司开发的最新技术,工作client/server的网络 模式,支持工作通过网络从远端服务器 下载映像,并由此支持  通过网络启动操作系统 ,在启动过程中,终端要求服务器 分配IP地址,在用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,更有这个启动软件 包完成终端基本软件设置,从而引导预先安装在服务器终端 操作系统,PXE可以引导 多种操作系统.

    1. 预启动执行环境,在操作系统之前运行
    2. 可用于远程安装,构建无盘工作站

    服务端:远程DHCP服务,用来分配地址,定位引导程序;

                 运行TFTP服务器,提供引导程序下载

    客户端 :网卡支持PXE协议

                主板支持 网络启动

    基本部署过程:

    1. 准备rhel/centOS安装源(YUM仓库)
    2. 启动TFTP服务,并提供内核,引导程序
    3. 启动 DHCP服务,用来分配地址,指出引导程序位置
    4. 配置启动菜单

    【DHCP,TFTP安装】

    [root@kickstart ~]# mkdir /media/cdrom [root@kickstart ~]# mount /dev/cdrom /media/cdrom/
    
    [root@kickstart ~]# yum install -y dhcp* tftp*
    
    [root@kickstart ~]# grep disable /etc/xinetd.d/tftp | awk -F = '{print $2}' | sed -i 's#yes#no#g' /etc/xinetd.d/tftp
    
    no [root@kickstart ~]# grep disable /etc/xinetd.d/tftp disable = no


    1:TFTP+PXE配置

    要实现远程安装系统,首先需要在tftpboot目录指定相关PXE相关内核模块机制相关参数,配置步骤如下:

    Ps:如果系统 是5.x,默认tftpboot目录已经自动创建到/根目录下

    [root@localhost ~]# yum install -y syslinux
    
    [root@kickstart ]# find / -name "pxelinux.0"
    
    /usr/share/syslinux/pxelinux.0
    
    [root@kickstart-server ~]# ln -s /var/lib/tftpboot/ /
    
    [root@kickstart-server ~]# cp /usr/share/syslinux/pxelinux.0  /tftpboot/
    
    [root@localhost tftpboot]# cp /media/cdrom/images/pxeboot/* /tftpboot/       #将系统内核拷贝tftpboot目录下
    
    [root@kickstart ~]# ls /tftpboot/
    initrd.img pxelinux.0 TRANS.TBL vmlinuz
    
    [root@localhost tftpboot]# rm -rf TRANS.TBL
    
    [root@localhost tftpboot]# ls
    
    initrd.img  pxelinux.0  vmlinuz
    
    [root@localhost tftpboot]# mkdir -p pxelinux.cfg
    
     [root@localhost tftpboot]# ls
    
    initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
    
     [root@localhost tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
    
    [root@localhost tftpboot]# vim pxelinux.cfg/default
    
    label centos6.5
    
    kernel vmlinuz
    
    append ks=nfs:192.168.2.136:/Centos_install/ks.cfg ksdevice=eth0 initrd=initrd.img


     

    详解:192.168.2.136 是kickstart服务器,

    /Centos_install是nfs共享 linux镜像 的目录,也就是linux存放安装文件的路径;

    ks.cfg是kickstart主配置文件;

    Ksdevel-eth0代表当我们有多块网卡 的时候,要实现自动化需要设置从eth0安装

    [root@kickstart tftpboot]# chkconfig tftp on     #TFTP配置完成之后,由于tftp不是独立服务,需要依赖xinetd服务来启动 [root@kickstart tftpboot]# service xinetd restart

    2:NFS+kickstart配置

    远程系统安装 ,客户端需要下载系统所需的软件包,所以需要使用NFS或HTTPD把镜像文件共享出来

    [root@kickstart ~]# yum install -y nfs*
    
    [root@kickstart ~]# mkdir /Centos_install/     #创建NFS共享目录,要与default目录一致
    
    [root@kickstart ~]# nohup cp -rf /media/cdrom/* /Centos_install/ &     #后台拷贝
    
    [root@kickstart ~]# echo "/Centos_install/ *(rw,sync)" >> /etc/exports     #在NFS配置文件/etc/exports中加入如上语句:/Centos_install    *(rw,sync),表示允许任何主机访问/Centos_install目录,有读写权限。
    
    自定义ks.cfg,并赋予权限为chmod 777 ks.cfg
    
    
    
    
    [root@localhost ~]# vim /centosinstall/ks.cfg            #这里ks.cfg需要注意一下,并没有按照anaconda-ks.cfg内容修改,该配置兼容性 较强,经过优化处理~可上生产~
    #kickstart file automatically generated  by anaconda.
    
    install
    
    text
    
    nfs --server=192.168.2.136 --dir=/Centos_install/     #kickstart地址
    
    key --skip
    
    lang zh_CN,UTF-8
    
    keyboard us
    
    network --device eth0 --bootproto=dhcp --noipv6
    
    rootpw 123456    #系统密码为123456
    
    firewall --disabled
    
    authconfig --enableshadow --enablemd5
    
    selinux --disabled
    
    timezone Asia/shanghai
    
    bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
    
    clearpart --all --initlabel
    
    part /boot --fstype ext3 --size=200
    
    part swap --size=1000
    
    part / --fstype ext3 --size=10000
    
    part /data --fstype ext3 --size=1 --grow
    
    %packages
    
    @base
    
    @development-libs
    
    @development-tools
    
    mtools
    
    pax
    
    libxmu
    
    %end

    #给配置文件权限,并重启服务 [root@kickstart Centos_install]# chmod 777 ks.cfg [root@kickstart-server ~]# service xinetd restart [root@kickstart-server centosinstall]# service nfs restart

    3:[DHCP服务]

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

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

    subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.100 192.168.2.200;     #可分配起始IP-结束IP地址池
    option routers 192.168.2.136;
    option subnet-mask 255.255.255.0;
    default-lease-time 21600;           #设置默认的IP租用期限
    max-lease-time 43200;                #设置IP最大租用期限
    next-server 192.168.2.136;            #TFTP服务器IP地址
    filename "pxelinux.0"; 
    }

    OK到目前为止,kickstart服务端的配置已经全部配置完成!为了保证服务正常生效,我们最后一次重启一下三个服务!

    [root@localhost ~]# /etc/init.d/dhcpd restart

    [root@localhost ~]# /etc/init.d/xinetd restart

     [root@localhost ~]# /etc/init.d/nfs restart

    客户端验证,是否自动化安装部署系统

    新建rheld虚拟机(ps:要保证系统和服务属于同一个网段)

    输入用户名和密码(123456)即可登录系统

     

     
  • 相关阅读:
    【cocos2d-js官方文档】十七、事件分发机制
    【cocos2d-js官方文档】十一、cc.path
    c# 类成员的定义 定义方法、字段和属性【转】
    【转】算法的流程图表示
    C#中接口的深入浅出【转】
    C#中动态创建数据库和数据表,很经典【转】
    【转】c# winform 创建文件,把值写入文件,读取文件里的值,修改文件的值,对文件的创建,写入,修改
    在txt文本后追加内容
    net 提供了Thread类用于线程的操作
    美到极致是疯狂
  • 原文地址:https://www.cnblogs.com/yhaing/p/9667844.html
Copyright © 2011-2022 走看看