共计 3140 个字符,预计需要花费 8 分钟才能阅读完成。
工作中,我们有时候需要安装几十上百台服务器,这种情况下用 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 公社资源站下载:
—————————————— 分割线 ——————————————
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2017 年资料 / 5 月 /14 日 /kickstart 实现自动部署 CentOS/
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
—————————————— 分割线 ——————————————
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143758.htm