kickstart 部署 RHEL7

为什么要用kickstart?

使用kickstart可以在工作中快速的部署系统,并且根据需求自定义软件包的安装,提高效率。

配置kickstart需要什么?

client装系统所需的东西都要由kickstart-server提供,所以需在kickstart-server上配置dhcp(提供ip,prefix,dns等)。为了让client看到安装界面,所以client需要有引导程序文件--pxelinux.0(加载内核),还有两个内核文件:vmlinuz,initrd,为了获取这三个文件,kickstart-server上需配置tftp-server服务。还需要在kickstart-server上配置ftp(http,https,nfs也可以),以提供给client必要的软件包。DNS有时候也是必要的。装系统时,有必须交互的地方(设置root密码,如何分区,时区选择等),这里需要生成一个应答文件来自动选择。

下面开始配置kickstart!!!

安装dhcp服务:

yum install -y dhcp


编辑dhcp服务配置文件:

cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example > /etc/dhcp/dhcpd.conf

新装的dhcp服务配置文件是空的,可以拷贝模板中的内容到配置文件,模板可以用rpm -ql dhcp |grep example查看

vim /etc/dhcp/dhcpd.conf

  只留下subnet这一部分

  subnet 192.198.30.0 netmask 255.255.255.0 {    ##这里指定你网卡的网段和子网掩码

    range 192.168.30.110 192.168.30.120;    ##指定客户端分配的地址池

    option domain-name-servers 192.168.30.100;    ##指定客户端的dns地址

    option domain-name “example.com”;    ##指定主机名

    option routers 192.168.30.100;    ##指定网关

    option broadcast-adderss 192.168.30.255 ;   ##广播地址

    default-lease-time 600;

    max-lease-time 7200;

    filename "/pxelinux.0";    ##从tftp的主目录获取pelinux.0文件

    next-server 192.168.30.100;    ##tftp服务器的地址

    }


启动dhcp服务:

systemctl start dhcpd


安装并启动tftp服务:

yum install -y tftp-server

vim /etc/xinetd.d/tftp    ##编辑这个文件才能启动

    将其中的disable后的no改为yes

systemctl restart xinetd    ##tftp是在超级守护进程下的服务

netstat -antlp |grep 69    ##默认端口69


获取pxelinux.0,vmlinuz,initrd文件:

yum install -y syslinux -y     ##获取pxelinux.0必要的包

rpm -ql syslinux |grep pxelinux.0

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot    ##将目标文件拷贝到tftp的主目录

vmlinuz,initrd这两个文件在光盘中可以找到,这里默认将光盘已经挂载在/iso

cd /iso/images/pxeboot

cp vmlinuz initrd.img /var/lib/tftpboot    ##将目标文件拷贝到tftp的主目录

cd /var/lib/tftpboot

mkdir pxelinux.cfg    ##目录名必须是他,作为tftp的配置文件

cp /iso/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default    ##名字是固定的

chmod u+w /var/lib/tftpboot/pxelinux.cfg/default

cp /iso/isolinux/boot.msg /var/lib/tftpboot/    ##自定义启动的文件,可以改也可以不改

chmod u+w /var/lib/tftpboot/boot.msg


安装并启动ftp服务:

yum install -y vsftpd

systemctl start vsftpd

cd /var/ftp

mkdir iso

cp /iso/* /var/ftp/iso    ##最好这样,也可以将光盘挂载过来,但这样当client多的时候速度慢


DNS配置(可选项):

yum install -y bind.x86_64 bind-dyndb-ldap.x86_64 bind-libs.i686

vim /etc/named.conf    ##配置文件

    全局替换:%s/127.0.0.1/any/g

                    %s/localhost/any/g

    在最后添加两个区块

    zone "example.com" IN {

        type master;

        file "aa.zone";

    };

     zone "30.168.192.in-addr.arpa" IN {    ##反向区域

        type master;

        file "bb.zone";

    };

cd /var/named

cp  -a named.localhost aa.zone

vim aa.zone

    $TTL 1D

    $GENERATE    110-120    system$        A    192.168.30.$

    @            IN SOA server.example.com. root (

                                                                        11    ;    serial

                                                                        1D    ;    refresh

                                                                        1H    ;    retry

                                                                        1W    ;    expire

                                                                        3H  )  ;    minimum

                    NS    server.example.com.

    server        A    192.168.30.100


cp -a aa.zone bb.zone    ##编辑反向区域

vim bb.zone

    $TTL 1D

    $GENERATE    110-120    $        PTR    system$.example.com.

    @            IN SOA server.example.com. root (

                                                                        11    ;    serial

                                                                        1D    ;    refresh

                                                                        1H    ;    retry

                                                                        1W    ;    expire

                                                                        3H  )  ;    minimum

                    NS    server.example.com.

    100          PTR   server.example.com.

    注意, /var/named所有文件组都为named

rndc-confgen -r /dev/urandom -a

vim /etc/resolv.conf

    nameserver 127.0.0.1    ##加这一行

systemctl start named

host -l example.com    ##通过这个命令可以查看预设置的所有主机名

host ip    ##通过这个命令可以查看对应ip反向解析是否正确


应答文件配置:

yum install -y system-config-kickstart    ##必要的软件包

system-config-kickstart    ##启动kickstart图形化配置界面,根据自己的需求自行配置

    注意:在安装方法中,选择“ftp”(上面我安装的是ftp),ftp服务器地址:192.168.30.100,ftp目录:/iso(这里的/表  示/var/ftp),在引导装载程序选项(第三个)中勾选“安装引导装载程序”。分区信息中主引导记录选择“清除”(裸机无所谓,重装系统的机器建议清除),分区选择“删除现有分区”,磁盘标签选择“初始化磁盘标签”,在添加中添加磁盘分区信息。写完之后点击“文件“保存即可。

    如果没有图形界面,可以用以上方法先导出一个这样的文件即可。

    可以在anaconda.cfg中有%package那一段是装包的,将这一段复制到ks.cfg中%post上,以%end结束,可以在其中增加删除一些包。


共享应答文件:

cp ks.cfg /var/ftp

vim /var/lib/tftpboot/pxelinux.cfg/default

    编辑label linux这个部分的append条目,改为如下:

    append initrd=initrd.img inst.ks=ftp://192.168.10.100/ks.cfg quiet 

ksvalidator /var/ftp/ks.cfg    ##检测ks.cfg是否正确,正确则无输出。


最后注意的:

防火墙,selinux最好关闭,否则可能会失败!!


安装测试:

设置通过网络引导即可。


在ks.cfg中添加逻辑卷的内容:

在ks.cfg中分区部分:part下边开始添加:

part pv.01 --size=5000    ##创建5G的物理卷

volgroup vg0  pv.01    ##创建名为vg0的卷组

logvol /home --vgname=vg0 --size=1000 --name=lv0    ##在vg0上创建名为lv0,大小1G的逻辑卷,挂载在/home下


你可能感兴趣的:(快速部署,定制)