首页 服务器系统 Linux

批量部署,Kickstart自动安装linux系统

起因

当有100台机器或者更多机器需要安装Linux系统,这个时候你还是用手工一台一台安装那就很累效率也很低了,使用PXE+Kickstart可以方便的解决这些问题。

任务清单

  • 1,ks 文件
  • 2,DHCP服务器 ok
  • 3,TFTP服务器 ok
  • 4,Http服务器 ok
  • 5,网卡启动 ok
  • 6,YUM仓库安装源 ok
  • 7,安装PXE

环境准备

在Win10主机上安装Hyper-v,在Hyper-v内虚拟一台虚拟主机2.6GHz 2G 20G,然后准备一台客户机器配置一样,需要注意客户端机器启动时选从网络启动。

网卡启动

原理图

Kickstart +PXE工作原理图

根据任务清单安装系统

1,先挂载镜像

[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only

2,安装http 和创建源

[root@localhost ~]# yum install -y httpd createrepo
[root@localhost ~]# mkdir /var/www/html/CentOS-7.5-x86_64
[root@localhost ~]# cp -a /mnt/* /var/www/html/CentOS-7.5-x86_64/

3,安装 tftp、dhcp、xinetd服务

[root@localhost ~]#yum install -y tftp-server dhcp xinetd
[root@localhost ~]# vim /etc/xinetd.d/tftp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes
[root@localhost dhcp-4.2.5]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.200 192.168.0.220;
 option subnet-mask 255.255.255.0;
 next-server 192.168.0.80;
 filename "pxelinux.0";
}

TFTP

4,启动这些服务

[root@localhost dhcp-4.2.5]# systemctl start dhcpd
[root@localhost dhcp-4.2.5]# systemctl start httpd
[root@localhost dhcp-4.2.5]# systemctl start xinetd

5,测试能访问到应答文件

[root@localhost ~]# curl --head http://192.168.0.80/CentOS-7.5-x86_64/CentOS-7.5-x86_64.cfg

6,创建本地源的目录文件夹

[root@localhost ~]# createrepo -pdo /var/www/html/CentOS-7.5-x86_64/ /var/www/html/CentOS-7.5-x86_64/
[root@localhost pxelinux.cfg]# createrepo -g`ls /var/www/html/CentOS-7.5-x86_64/repodata/*-comps.xml` /var/www/html/CentOS-7.5-x86_64/

7,安装镜像文件并拷贝到启动目录

[root@localhost ~]# yum install -y syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cp /mnt/isolinux/* /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg default
[root@localhost pxelinux.cfg]# vim default 
label ks
 menu label ^Auto Install CentOS 7
 kernel vmlinuz
 append initrd=initrd.img ks=http://192.168.0.80/CentOS-7.5-x86_64/CentOS-7.5-x86_64.cfg 

7,查看日志文件,监控DHCP服务日志

[root@localhost pxelinux.cfg]# tail - f /var/log/messages 

测试

1,在Hyper-v控制台新建一台虚拟机,需要注意两点。第一点是需要建立和DHCP服务器同一段的IP地址,启动时选择优先从网卡启动。

2,从DHCP获取到地址后进入安装界面。

DHCP分配

3,经过一段时间安装后进入系统,查看了一下地址和DHCP分配的192.168.0.220一致,到此安装结束。

总结

Kickstart 安装比较繁琐,步骤有点多,服务也开的多,弄不好哪里就出错了

相关推荐