Linux如何配置批量装机

72次阅读
没有评论

共计 5689 个字符,预计需要花费 15 分钟才能阅读完成。

自动写代码机器人,免费开通

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

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

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

  应用场景:

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

项目需求:

为一批机器(比如裸机)快速安装 CentOS7 操作系统

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

自己整理一份 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 行插入以下内容
VirtualHost  *:80
DocumentRoot    /var/www/html
/VirtualHost
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 如何配置批量装机”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计5689字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)