作者:michaelma423 | 来源:互联网 | 2023-07-23 11:53
Cobble可做自动化部署
理论概述内容
搭建无人执守安装服务器需要使用到的服务:PXE + DHCP+TFTP+ Kickstart+ FTP
PXE原理和概念:
1.PXE严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
KickStart概述
KickStart是一种无人值守安装方式。Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
搭建无人执守安装服务器安装及相关配置文件
所有服务可以装在一台服务器上进行
需要安装的是DHCP(给客户机分发ip);FTP(存放系统安装文件)
TFTP(用来存放PEX的相关文件,如:系统引导文件)
KickStart(生成ks.cfg配置文件)
关闭防火墙&selinux
安装ftp 运行&开机自启
yum install vsftpd -ysystemctl start vsftpdsystemctl enable vsftpdmount /dev/cdrom /var/ftp/pub/ #把光盘镜像挂载到pub下 (可最后挂载 不然本地yum换了位置用不了)
做一下yum(可在服务都搭完做也可以提前做)
[development] (强调名称必须是development,否则无效)
name=my-centos7-dvd
baseurl=file:///var/ftp/pub
enabled=1
gpgcheck=0
yum makecache #重新建立yum缓存,如果不新建缓存,还是用原来带着外网源的yum缓存,那么执行system-config-kickstart就会报错
创建ks应答文件
yum install -y gdm #安装gdm,gdm是linux环境下的代码调试工具
(如有服务器因启动DHCP服务无法联网删除默认网关即可)
route -n查看
route del default gw ip
页尾查看最后安装过程
找台机器测试一下ftp是否可以访问 此次实验无需对ftp做任何配置
安装TFTP修改配置文件并开启服务
TFPT 简单文件传输协议或小型文件传输协议
yum install tftp tftp-server xinetd -y
mkdir /var/tftp 创建家目录
vim /etc/xinetd/tftp
修改配置文件里13、14行 改成以下内容
改:
13 server_args = -s /var/lib/tftpboot
14 disable = yes为:
13 server_args = -s /var/tftp
14 disable = no
注:
disable = no #不关闭tftp服务,就是开启tftp服务
server_args = -s /tftpboot #这是tftp服务器运行时的参数。-s /var/tftp表示服务器默认的目录是 /var/tftp,当你执行put a.txt时,文件会被放到服务器的/var/tftp/a.txt,省去你敲put a /var/tftp的麻烦。你也可以加其它服务器运行参数到这,具体可以执行man tftpd命令查阅。
重新启动xinetd服务,查看服务端口是否打开
systemctl restart xinetd netstat -antup | grep 69 #这种方法,只能看到xinetd进程
udp 0 0 0.0.0.0:69 0.0.0.0:* 3582/xinetd
将PXE启动所需的相关文件复制到tftp家目录下
安装软件
system-config-kickstart、syslinux
yum -y install system-config-kickstart syslinux
准备tftp需要共享出去的文件
mkdir /vat/tftp/pxelinux.cfgcp /usr/share/syslinux/pxelinux.0 /vat/tftp/ #系统引导文件
#注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。
cp /mnt/images/pxeboot/vmlinuz /vat/tftp/ #内核文件cp /mnt/images/pxeboot/initrd.img /vat/tftp/ #内核初始化镜像文件。cp /mnt/isolinux/isolinux.cfg /vat/tftp/pxelinux.cfg/default #引导菜单:isolinux.cfg -- 开机后选择启动项的菜单文件。
chmod 644 /tftpboot/pxelinux.cfg/default #赋予default文件644权限。
安装DHCP
yum install dhcp -y
修改配置开启服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcp.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y #生成配置文件
vim /etc/dhcp/dhcpd.conf 只保留一个subnet{…} 如下
subnet 192.168.8.0 netmask 255.255.255.0 {range 192.168.8.100 192.168.8.200;option domain-name-servers 192.168.8.8;option domain-name "internal.example.org";option routers 192.168.8.8;option broadcast-address 192.168.8.255;default-lease-time 600;max-lease-time 7200;next-server 192.168.8.8;filename "pxelinux.0";
}
注:
#subnet192.168.8.0 netmask 255.255.255.0 服务端IP网段及掩码。
#range 192.168.8.100 192.168.8.200; dhcp分发的地址范围,最好将本机IP包含在内。
option domain-name-servers 192.168.8.1; 指定默认DNS地址。
option domain-name “internal.example.org”; 指定默认域名。
option routers 192.168.8.1; #指定默认网关。
default-lease-time 600;max-lease-time 7200; IP地址租约时间。
next-server 192.168.8.8; TFTP服务器地址。
filename “pxelinux.0”; 指定引导文件位置,这里是TFTP根目录下的pxelinux.0。
systemctl start dhcpd
systemctl enable dhcpd
开启后找台同网段主机测试dhcp是否正常运行分配地址
到此,所需服务已经搭建成功
修改default,指定操作系统的方式和ks.cfg文件路径
vim /var/tftp/pxelinux.cfg的配置文件
改1—default vesamenu.c32
为1—default linux
#修改第一行,后面的linux意识是寻找配置文件中61行的label linux
改:
64 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
为:
64 append initrd=initrd.img inst.repo=ftp://192.168.8.8/pub inst.ks=ftp://192.168.8.8/ks.cfg
注:指定通过网络启动系统时,通过FTP服务器访问kickstart文件。
注:
第1行:default linux表示指定默认入口名称;
第61到64行:表示定义的引导入口,要开始自动安装,安装程序必须能访问kickstart文件。
有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。
扩展:使安装程序指向kickstart文件的常见书写格式:
ks=ftp://server/dir/file 如:ks=ftp://192.168.1.63/ks.cfg
ks=http://server/dir/file 如:ks=http://192.168.1.63/ks.cfg
ks=nfs:server:/dir/file 如:ks=nfs:192.168.1.63:/var/ftp/pub/ks.cfg
测试查看ftp下面是否有ks.cfg和pub
创建ks.cfg文件
运行 system-config-kickstart命令
设置后期无人值守安装配置参数
注:system-config-kickstart需要在图形界面下执行,字符界面最小化安装均无法弹出窗口,此时要生成ks文件时,可以在物理/虚拟主机上安装有图形界面的系统中执行system-config-kickstart并生成ks文件,而后上传到生产环境中
如界面显示乱码,需要安装字体文件:
yum install dejavu-sans-fonts
yum install dejavu-serif-fonts
自行设置分区大小
验证项不做修改
显示配置项选择是否安装图形桌面
如果没有配置ftpyum源获取不到软件包信息 详见
设置完成后 左上角文件保存 然后把ks.cfg文件拷贝到之前配置文件写明的位置 /var/ftp/ks.cfg
测试前关闭防火墙&selinux 如过没有关闭 tftp服务会有问题
重启服务开始测试
这边就不截图了
5-28
Cobble可做自动化部署