部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)

本文首发于我的个人网站: https://hewanyue.com/
本文作者: Hechao
本文链接: https://hewanyue.com/blog/8ddda8e.html

  为了简化每台服务器的系统的装机过程和统一服务器配置,可以采用一键自动化安装系统的方式,实现新机器接上网线开机便可批量安装相同配置的系统,便于以后统一管理。
  想要实现自动化安装系统,
  1.搭建dhcp服务器,给新机器网卡分配IP地址,并引导机器去搭建好的tftp站点下载引导程序及内核文件;
  2.搭建tftp服务器,提供引导程序及内核文件;复制内核文件至服务器目录;
  3.搭建http服务器,提供应答kickstart文件、系统安装包程序的下载;挂载光盘或拷贝安装包至目录文件;
  4生成ks应答kickstart文件(放置于ftp服务器中);
  5.复制光盘中的/cdrom/isolinux/isolinux.cfg文件至目录pxelinux.cfg/,改名为pxelinux.cfg/fault文件,即为安装菜单(之后目录pxelinux.cfg/整体放入tftp服务器中)。

  
演示环境:CentOS7 Kernel Version: 3.10.0-957.el7.x86_64 本机IP:192.168.32.7

1. 配置DHCP服务器

  1.首先安装dhcp服务。yum install dhcp
  2.启动dhcp服务。但直接启动,会报错,如下图所示,须先修改dhcpd的配置文件。部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第1张图片
  打开/etc/dhcp/dhcpd.conf配置文件后发现,配置文件是空的,难怪报错,有一行“see /usr/share/doc/dhcpd.conf.example”,原来要我们参考这个模版来自己写配置文件。部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第2张图片  于是先复制模版至原配置文件目录。部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第3张图片  选择覆盖,再打开配置文件。部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第4张图片  修改⑴网段⑵租期时长⑶网关⑷DNS⑸DNS域后缀⑹提供资源下载站点IP⑺需要下载的引导文件
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第5张图片
  此时重启DHCP服务成功,查看DHCP服务状态,已经启动(状态信息的提示,是指另一块网卡没有被DHCP服务器网段分配地址,分配一个就足够了,可以无视)。
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第6张图片

2.搭建tftp服务器

  1.首先安装tftp服务端yum install tftp-server -y
  2.生成pxelinux.0引导程序,并放入tftp服务器
   ⑴先确定引导程序所在的安装包;
   yum search pxelinux
   ⑵安装syslinux.x86_64;
   yum install syslinux.x86_64
   ⑶找到引导程序pxelinux.0的所在路径;
   rpm -ql syslinux.x86_64|grep pxelinux.0
   ⑷将引导程序pxelinux.0及菜单背景模版文件menu.c32拷贝到服务器
   cp /usr/share/syslinux/pxelinux.0 /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
  3.将准备好的内核文件和initrd.img文件拷贝到服务器
  cp /cdrom6/isolinux/vmlinuz /cdrom6/isolinux/initrd.img /var/lib/tftpboot/6/
  cp /cdrom7/isolinux/vmlinuz /cdrom7/isolinux/initrd.img /var/lib/tftpboot/7/
  最终效果如下:
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第7张图片

3.搭建http服务器

  1.首先安装httpd服务端yum install httpd -y
  2.启动httpd服务systemctl start httpd
  3.查看httpd服务状态是否启动systemctl status httpd
  4.创建安装包文件目录mkdir -pv /var/www/html/CentOS/{6,7}/os/x86_64/
  5.挂载光盘安装包至目录或拷贝安装文件至目录
  mount /dev/sr0 /var/www/html/CentOS/7/os/x86_64/
  mount /dev/sr1 /var/www/html/CentOS/6/os/x86_64/
  效果图如下:
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第8张图片
  6.挂载光盘安装包至目录或拷贝安装文件至目录

4.生成kickstart应答文件

  ks文件的生成一般有两种方法:
  ①:之前手动安装后系统自动生成的的记录文件/root/anaconda-ks.cfg文件是可以直接复制过来修改使用的。
  ②:用kickstart工具生成。
我们这里采用第二种。执行system-config-kickstart命令。(这是一个在图形化界面操作的选项命令,如果用的是Xshell工具连接虚拟机,需要开启Xmanager - Passive,来转发图形化界面)
  第一步,选择语言,键盘布局,时区,设置root口令(是否加密存储),安装完成后重启,命令行模式安装;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第9张图片
  第二步,选择选择系统安装方式,通过HTTP服务站点安装,输入已经搭好的服务器IP和安装包路径;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第10张图片
  第三步,选择安装grub引导安装程序,(先不对grub进行加密了,据说会有加密方式不符的话会有报错),加内核参数net.innames=0实现不更改网卡名称;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第11张图片
  第四步,清除原有分区,清除分区标签,设置新分区表;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第12张图片
  第五步,设置网卡名eth0,及获取IP方式为DHCP;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第13张图片
  第六步,默认关闭SELINUX策略和防火墙;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第14张图片
  第七步,选择需要的系统服务;
  第八步,附加装机前后脚本;
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第15张图片
  第九步,将ks应答文件复制到http服务器
  mkdir -p /var/www/html/ksdir/;cp ~/centos7-ks.cfg /var/www/html/ksdir/
  (CentOS6的KS同样方式生成)
  cp ~/centos6-ks.cfg /var/www/html/ksdir/

5.创建安装菜单

  菜单文件的一般有两种方法:
  ①:复制修改光盘中的菜单文件/cdrom/isolinux/lisolinux.cfg文件是可以直接复制过来修改使用的。
  ①:VIM手工输入。

default menu.c32
timeout 600
menu title Auto Install CentOS
label linux 7
        mennu label Install CentOS^7
        menu default
        kernel 7/vmlinuz
        append initrd=7/initrd.img ks=http://192.168.32.7/ksdir/centos7-ks.cfg
label linux 6
        mennu label Install CentOS^6
        kernel 6/vmlinuz
        append initrd=6/initrd.img ks=http://192.168.32.7/ksdir/centos6-ks.cfg
label linux local
        mennu label Boot from ^local drive
        localboot Oxffff

部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第16张图片
  再将菜单文件存入tftp服务器中 /linux.cfg目录重命名为fault文件。tftp服务器最终目录机构如下图所示:
部署自动化安装及cobber(Http+TFTP+PXE+kickstart无人职守批量安装精简版Linux系统)_第17张图片
  至此,基于PXE网卡,无人职守批量安装CentOS系统的配置就完成了。

你可能感兴趣的:(经验分享,总结整理)