千家信息网

Linux如何配置批量装机

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章给大家分享的是有关Linux如何配置批量装机的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 项目名称:机房PXE全自动批量装配任务目标:机房里有一批(200多台)计
千家信息网最后更新 2024年09月22日Linux如何配置批量装机

这篇文章给大家分享的是有关Linux如何配置批量装机的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

 项目名称:机房PXE全自动批量装配

任务目标:机房里有一批(200多台)计算机,需要为其安装CentOS 7.5操作系统,并且部署好Web服务 …… 。
完成时间:24小时内需要交付

    应用场景:

1)XX学校机房
2)红帽认证考试环境
3)企业集群节点部署
4)数据中心服务器批量配置
Shell脚本

项目需求:
  1. 为一批机器(比如裸机)快速安装CentOS7操作系统

  2. 通过独立网络(不要有其他的DHCP服务器,必要时应关闭VMware的DHCP)来实现

  3. 自己整理一份Word版的实验报告,以备不时之需

    任务分析
    任务一:准备一台CentOS7服务器
    任务二:提供DHCP服务
    任务三:为客户机提供软件包资源(Web方式)
    任务四:提供网络启动相关的文件(构建TFTP启动服务器)
    任务五:测试PXE网络启动及安装
    任务六:提供自动应答文件(回答安装过程中的各种问题)
    任务七:客户机无人值守安装测试

TFTP,简单FTP协议(UDP 161)
FTP,TCP 21/20 。。。

相关知识:快速获取XX命令或者配置文件的使用说明/手册
man 命令名
或者
man 配置文件名

在英文环境下运行XX命令行
LANG= XX命令行

Shell脚本,长脚(自己跑)的包含了很多可执行命令行的文本文件
vim 脚本文件
。。。。。
chmod +x 脚本文件

相关知识:

PXE,预启动环境(Pre-boot eXcute Environment)
-- 默认集成在网卡BOOTROM芯片内(pxeclient)

额外准备:PXE服务器(为客户机装系统、为客户机提供系统)

如何提供一个PXE批量装机的服务器端:
1)DHCP服务,提供IP地址、告知引导服务器在哪、告知获取一个启动文件
2)TFTP服务,提供启动内核、启动配置文件等等
3)HTTP或FTP服务,提供CentOS7软件包资源
4)配置自动安装

实现过程
任务一: 准备一台CentOS7服务器

1)配置好固定主机名pxesvr、IP地址 192.168.10.7/24
#hostnamectl set-hostname pxesvr
#nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.10.7/24 connection.autoconnect yes
#nmcli connection up ens33
2)关闭防火墙、禁用SELinux保护机制
#systemctl disable firewalld --now //禁止开机自启,并立即停止
vim /etc/selinux/config
SELINUX=disabled
setenforce 0
3)把CentOS7的光盘(如果是虚拟机,要连接好ISO文件)挂载到 /mnt/dvd
mkdir /mnt/dvd
#mount /dev/cdrom /mnt/dvd
4)使用 /mnt/dvd 目录作为临时的软件源
rm -rf /etc/yum.repos.d/*.repo
yum-config-manager --add file:///mnt/dvd
vim /etc/yum.conf
gpgcheck=0
yum repolist

!!!! 如果当前主机中没有网络连接,需要先添加连接,再配置地址
1)找到网卡设备的名字(比如ens33)
nmcli device status
.. ..
2)为网卡ens33添加连接(比如也叫ens33)
格式:nmcli con add con-name 连接名 ifname 网卡名 type ethernet
nmcli connection add con-name ens33 ifname ens33 type ethernet

Linux配置文件内,# 开始的部分表示注释

任务二:提供DHCP服务

1)为客户机分配IP地址相关参数
2)告诉客户机下一步去找哪一台服务器、去索取一个网卡启动文件
!!!! Linux系统配置文件中的注释标记 #
!!!! 停用工作网络(比如NAT)中其他DHCP服务(比如VMware自带),避免冲突

yum -y install dhcp
vim /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
next-server 192.168.10.7; //告知下一个服务器(TFTP)的地址
filename "pxelinux.0"; //告知需要下载的网卡启动文件名
}
systemctl enable dhcpd --now //设置开机自启,并立即启动

其他配置参考:
#option routers 默认网关地址;
#option domain-name-servers DNS服务器1地址,DNS服务器2地址;
#default-lease-time 3600; //默认租约时间
#max-lease-time 7200; //最大租约时间

!!!! DHCP服务排错 --
1)检查服务状态
systemctl status dhcpd
状态正常应该是 绿色的 active (running)
systemctl restart dhcpd
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details. ==》说明配置文件有错误,或者本机的IP地址网段不符。

2)获知配置文件哪里有错、有什么样的错误
vim /var/log/messages //Linux服务器的日记
.. .. 从最后一行往前找
/etc/dhcp/dhcpd.conf line 10: 。。。。。 //第10行有XX错误

!!!! 本机测试以DHCP方式获取地址:
dhclient -d ens33 //-d表示调试模式,不真正修改地址
.. ..
bound to 192.168.10.X
.. ..
按Ctrl + C 终止测试

任务三:为客户机提供软件包资源(Web方式)

1)装httpd包
yum -y install httpd
2)部署软件包资源
mkdir /var/www/html/cos7dvd
cp -r /mnt/dvd/* /var/www/html/cos7dvd
.. .. 请耐心等待,不要中断
3)起httpd服务
systemctl enable httpd --now

从本机浏览器访问 http://192.168.10.7/cos7dvd,能看到软件资源页

!!!! Web配置(如果原来配置过虚拟Web主机,需要注意)
1)一旦启用虚拟主机以后,默认ServerName、DocumentRoot失效
2)如果浏览器提交过来的HTTP请求不属于任何已经定义的某一个虚拟主机,那么以第一个虚拟主机的网页目录做反馈
vim /etc/httpd/conf.d/vhosts.conf //在第1行插入以下内容

DocumentRoot /var/www/html

systemctl enable httpd --now

任务四:提供网络启动相关的文件(构建TFTP启动服务器)

1)网卡启动文件 pxelinux.0
由软件包 syslinux 提供(/usr/share/syslinux/pxelinux.0)
2)启动菜单配置 pxelinux.cfg/default (配置模块文件、背景图片……)、加载CentOS7系统安装程序(vmlinuz、initrd.img)
从CentOS7光盘目录isolinux/下获得
yum -y install tftp-server //安装TFTP服务软件
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //部署启动文件
cp /mnt/dvd/isolinux/* /var/lib/tftpboot/ //部署配套文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg //创建配置目录
cp isolinux.cfg pxelinux.cfg/default //建立默认菜单配置
vim pxelinux.cfg/default
查找 label linux,修改下方的 append 行,inst.stage2=后指定软件包来源地址
append initrd=initrd.img inst.stage2=http://192.168.10.7/cos7dvd
systemctl enable tftp --now //启动TFTP服务端

测试TFTP资源是否可以下载:
cd /root
yum -y install tftp
tftp 192.168.10.7 -c get pxelinux.0
ls -lh pxelinux.0

任务五:测试PXE网络启动及安装

1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装Install CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 手动指定安装来源 http://192.168.10.7/cos7dvd
---- 后续过程与光盘安装类似,可以不用完成安装,关闭虚拟机即可

!!!! 若客户机的内存太小,开机PXE引导时容易出现内核崩溃现象
kernel panic 内核崩溃(恐慌)

kickstart无人值守/自动应答技术

kick,踢
start,开始

Shell脚本(自己会跑/运行的文本)

kickstart无人值守技术
kick,start

Shell脚本,长脚(+x)的文本

rm -rf /etc/yum.repos.d/*.repo
echo '[development]
name=CentOS7
baseurl=http://192.168.10.7/cos7dvd/
enabled=1
gpgcheck=0' > /etc/yum.repos.d/centos7.repo

任务六:提供自动应答文件(回答安装过程中的各种问题)

1)如何获取应答文件
vim /etc/yum.repos.d/.repo
[development] //源的ID要求 改成 development
yum -y install system-config-kickstart
system-config-kickstart
基本配置:语言、时区、管理密码
安装方法:全新安装、HTTP安装源的设置
安装引导装载程序:安装新引导装载程序
分区:三个单选都选第一项、添加 swap 2000M、/ 剩余所有空间
网络配置:添加一个连接(DHCP)
软件包选择:勾选"桌面"下除了KDE以外的所有软件类
安装后脚本,参考以下内容:
rm -rf /etc/yum.repos.d/
.repo
echo '[cos7dvd]
name=added from: file:///mnt/dvd
baseurl=http://192.168.10.7/cos7dvd
enabled=1
gpgcheck=0
' > /etc/yum.repos.d/cos7dvd.repo
yum -y install httpd
echo 'NTD1906' > /var/www/html/index.html
wget http://192.168.10.7/Discuz_X3.4_SC_UTF8.zip
unzip Discuz_X3.4_SC_UTF8.zip
cp -rf upload/* /var/www/html/
systemctl enable httpd
.. ..

-- 保存到 /root/ks.cfg

2)如何让客户机用上这个应答文件
cp /root/ks.cfg /var/www/html/ks-cos7.cfg
浏览器访问 http://192.168.10.7/ks-cos7.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
查找 linux,修改下方的 append 行,
删除 inst.stage2= 部分,换成 ks=应答文件的下载地址
append initrd=initrd.img ks=http://192.168.10.7/ks-cos7.cfg

任务七:客户机无人值守安装测试

1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 自动完成安装过程

感谢各位的阅读!关于"Linux如何配置批量装机"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0