0%

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

  为了简化每台服务器的系统的装机过程和统一服务器配置,可以采用一键自动化安装系统的方式,实现新机器接上网线开机便可批量安装相同配置的系统,便于以后统一管理。
  想要实现自动化安装系统,
  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服务。

1
yum install dhcp

  2.启动dhcp服务。但直接启动,会报错,如下图所示,须先修改dhcpd的配置文件。
在这里插入图片描述
  打开/etc/dhcp/dhcpd.conf配置文件后发现,配置文件是空的,难怪报错,有一行“see /usr/share/doc/dhcpd.conf.example”,原来要我们参考这个模版来自己写配置文件。
在这里插入图片描述
  于是先复制模版至原配置文件目录。
在这里插入图片描述
  选择覆盖,再打开配置文件。
在这里插入图片描述
  修改⑴网段⑵租期时长⑶网关⑷DNS⑸DNS域后缀⑹提供资源下载站点IP⑺需要下载的引导文件
在这里插入图片描述
  此时重启DHCP服务成功,查看DHCP服务状态,已经启动(状态信息的提示,是指另一块网卡没有被DHCP服务器网段分配地址,分配一个就足够了,可以无视)。
在这里插入图片描述

2.搭建tftp服务器

  1.首先安装tftp服务端

1
yum install tftp-server -y

  2.生成pxelinux.0引导程序,并放入tftp服务器
   ⑴先确定引导程序所在的安装包;

1
yum search pxelinux

   ⑵安装syslinux.x86_64;

1
yum install syslinux.x86_64

   ⑶找到引导程序pxelinux.0的所在路径;

1
rpm -ql syslinux.x86_64|grep pxelinux.0

   ⑷将引导程序pxelinux.0及菜单背景模版文件menu.c32拷贝到服务器

1
cp /usr/share/syslinux/pxelinux.0 /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

  3.将准备好的内核文件和initrd.img文件拷贝到服务器

1
2
cp /cdrom6/isolinux/vmlinuz  /cdrom6/isolinux/initrd.img  /var/lib/tftpboot/6/
cp /cdrom7/isolinux/vmlinuz /cdrom7/isolinux/initrd.img /var/lib/tftpboot/7/

  最终效果如下:
在这里插入图片描述

3.搭建http服务器

  1.首先安装httpd服务端

1
yum install httpd -y

  2.启动httpd服务

1
systemctl start httpd

  3.查看httpd服务状态是否启动

1
systemctl status httpd

  4.创建安装包文件目录

1
mkdir -pv /var/www/html/CentOS/{6,7}/os/x86_64/

  5.挂载光盘安装包至目录或拷贝安装文件至目录

1
2
mount /dev/sr0 /var/www/html/CentOS/7/os/x86_64/
mount /dev/sr1 /var/www/html/CentOS/6/os/x86_64/

  效果图如下:
在这里插入图片描述
  6.挂载光盘安装包至目录或拷贝安装文件至目录

4.生成kickstart应答文件

  ks文件的生成一般有两种方法:
  ①:之前手动安装后系统自动生成的的记录文件/root/anaconda-ks.cfg文件是可以直接复制过来修改使用的。
  ②:用kickstart工具生成。
我们这里采用第二种。执行命令。(这是一个在图形化界面操作的选项命令,如果用的是Xshell工具连接虚拟机,需要开启Xmanager - Passive,来转发图形化界面)

1
system-config-kickstart

  第一步,选择语言,键盘布局,时区,设置root口令(是否加密存储),安装完成后重启,命令行模式安装;
在这里插入图片描述
  第二步,选择选择系统安装方式,通过HTTP服务站点安装,输入已经搭好的服务器IP和安装包路径;
在这里插入图片描述
  第三步,选择安装grub引导安装程序,(先不对grub进行加密了,据说会有加密方式不符的话会有报错),加内核参数net.innames=0实现不更改网卡名称;
在这里插入图片描述
  第四步,清除原有分区,清除分区标签,设置新分区表;
在这里插入图片描述
  第五步,设置网卡名eth0,及获取IP方式为DHCP;
在这里插入图片描述
  第六步,默认关闭SELINUX策略和防火墙;
在这里插入图片描述
  第七步,选择需要的系统服务;
  第八步,附加装机前后脚本;
在这里插入图片描述
  第九步,将ks应答文件复制到http服务器
  

1
mkdir -p /var/www/html/ksdir/;cp ~/centos7-ks.cfg /var/www/html/ksdir/

  (CentOS6的KS同样方式生成)

1
cp ~/centos6-ks.cfg /var/www/html/ksdir/

5.创建安装菜单

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

在这里插入图片描述
  再将菜单文件存入tftp服务器中 /linux.cfg目录重命名为fault文件。tftp服务器最终目录机构如下图所示:
在这里插入图片描述
  至此,基于PXE网卡,无人职守批量安装CentOS系统的配置就完成了。

------------------------------- The End -------------------------------
It's very nice of you to support me.