Kickstart实现自动部署CentOS

工作中,我们有时候需要安装几十上百台服务器,这种情况下用u盘或者光驱逐台安装,太花时间与人力,显然不现实,所以应该选择自动化部署操作系统的方式,自动化部署操作系统的工具有很多,这里我用的是kickstart这个工具。

kickstart原理:
kickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

kickstart工作流程:
客户机先从网络上启动,执行pxe程序(PXE的作用就像是在网卡ROM里的一个小小的操作系统,它把自己的网络引导功能提供给系统的BIOS,就可以通过网络启动linux),再向dhcp服务器请求IP地址,获得到dhcp服务器发来的IP地址之后会请求引导文件(pxelinux.0),服务器发送引导文件;客户机引导成功之后,再向服务器请求配置文件(pxelinux.cfg),服务器发送配置文件,再请求内核文件(vmlinuz),发送内核文件,请求传送根文件系统(initrd.img),然后内核启动,请求ks文件,安装程序会根据ks.cfg中设置的选项来安装系统。
 
工作流程图:


 
实验

配置dhcp服务
[root@kickstartserver ~]# yum -y install dhcp 
[root@kickstartserver ~]# vi /etc/dhcp/dhcpd.conf 
subnet 192.168.23.0 netmask 255.255.255.0
{
    range 192.168.23.230 192.168.23.250;
    option broadcast-address 192.168.23.255;
    option routers 192.168.23.254;
    default-lease-time 3600;
    max-lease-time 7200;
}
[root@kickstartserver ~]# systemctl restart dhcpd
[root@kickstartserver ~]# systemctl enable dhcpd
[root@kickstartserver ~]# firewall-cmd --permanent --add-service=dhcp
success
[root@kickstartserver ~]# firewall-cmd --reload
 
进入客户端BISO,设置从网络引导,然后开机,查看dhcp服务的日志
[root@kickstartserver ~]# systemctl status dhcpd -l
● dhcpd.service - DHCPv4 Server Daemon
  Loaded: loaded(/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
  Active: active (running) sinceMon 2017-4-05 23:01:23 EDT; 2min 22s ago
    Docs: man:dhcpd(8)
          man:dhcpd.conf(5)
 Main PID: 4361 (dhcpd)
  Status: "Dispatchingpackets..."
  CGroup:/system.slice/dhcpd.service
          └─4361 /usr/sbin/dhcpd -f -cf/etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
 
Apr 05 23:01:23 kickstartserver.example.com dhcpd[4361]: Sendingon  Socket/fallback/fallback-net
Apr 05 23:01:23 kickstartserver.example.com systemd[1]: Started DHCPv4Server Daemon.
Apr 05 23:03:23 kickstartserver.example.com dhcpd[4361]: DHCPDISCOVERfrom 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:24 kickstartserver.example.com dhcpd[4361]: DHCPOFFER on192.168.23.230 to 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:25 kickstartserver.example.com dhcpd[4361]: DHCPDISCOVERfrom 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:25 kickstartserver.example.com dhcpd[4361]: DHCPOFFER on192.168.23.230 to 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:29 kickstartserver.example.com dhcpd[4361]: DHCPDISCOVERfrom 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:29 kickstartserver.example.com dhcpd[4361]: DHCPOFFER on192.168.23.230 to 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:37 kickstartserver.example.com dhcpd[4361]: DHCPDISCOVERfrom 00:0c:29:83:db:a3 via eno16777736
Apr 05 23:03:37 kickstartserver.example.com dhcpd[4361]: DHCPOFFER on192.168.23.230 to 00:0c:29:83:db:a3 via eno16777736
#可以看到客户机从服务端申请IP的过程

查看客户端开机引导界面,查看报错

完整PDF文档可以到Linux公社资源站下载:

------------------------------------------分割线------------------------------------------

------------------------------------------分割线------------------------------------------

猜你喜欢

转载自www.linuxidc.com/Linux/2017-05/143758.htm
今日推荐