PXE+Kickstart自动化装机

PXE+Kickstart自动化装机简介

https://docs.openeuler.org/zh/docs/22.03_LTS/docs/Installation/使用kickstart自动化安装.html

操作系统版本声明: RHEL7
使用kickstart进行Linux系统的自动化安装tftp+dhcp+ftp/http/nfs环境要求如下:
tftp:提供vmlinuzinitrd文件。
dhcpd/pxe:提供DHCP服务。
httpd:部署kickstart文件系统安装文件
ISOLinux-dvd.iso系统镜像文件。


0安装配置DHCP


配置服务器本机地址为静态192.168.10.1

# 给eth0配置静态ip,网关
nmcli con add con-name dhcpserver ifname eth0 type ethernet ip4 192.168.10.1/24
## con-name dhcpserver 表示一个会话名称叫 company
## ifname  eth0 表示指定一个网络接口eth0
## type ethernet  表示网络类型是ethernet(以太网)
## ip4 192.168.10.1 表示配置IPV4 地址 192.168.10.1/24,24是子网掩码

# 启用dhcpserver配置文件
nmcli con up dhcpserver

安装dhcp

# 安装dhcp
yum install dhcp -y

# 开始dhcpd
systemctl start dhcpd

# 开机自启dhcpd
systemctl enable dhcpd

配置dhcp

vim /etc/dhcp/dhcpd.conf

# 添加配置信息
## 允许开机时给用户分配ip
allow booting;
## 允许了BOOTP引导程序协议,没有os的机器也能获取静态IP
allow bootp;
## 固定格式 
ddns-update-style none;
## 忽略客户端请求的更新内容
ignore client-updates; 
## 作用域--固定格式
subnet 192.168.10.0 natmask 255.255.255.0 {
		## 分配100个ip
        range dynamic-bootp 192.168.10.100 192.168.10.200;
		## 分配的子网掩码
 		option subnet-mask                 255.255.255.0;
 		## dns信息--固定格式,有没有dns都要写
        option domain-name-servers         192.168.10.10;
        ## 网关(服务器本机地址)
        option routes 192.168.10.1;
        ## 作用时间21600秒--6小时
        default-lease-time                 21600;
        ## 最大租约时间12小时
        max-lease-time                     43200;
        ## 下一跳(网关)地址--固定格式/TFTP服务器ip地址
        next-server                        192.168.10.2;
        ## 用户加载的引导文件
        filename                           "pxelinux.0";
}
# 保存
:wq!

# 检查配置是否有语法错误
service dhcpd configtest

# 重启dhcp服务
systemctl restart dhcpd

# 查看DHCP的67端口是否打开
ss -tunlp |grep 67

查看客户机dhcp获取情况

# 在DHCPServer上查看该文件,即可看到客户机的dhcp获取情况
cat /var/lib/dhcpd/dhcpd.lease

1搭建tftp-server

tftp的端口号是69,基于UDP协议


安装tftp服务器

# 安装tftp-server
yum install tftp-server -y

# 启动xinetd服务
systemctl start xinetd
# 开机自启xinetd服务
systemctl enable xinetd

配置tftp

# 配置tftp
[root@local ~]# vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        ## disable 修改为 no,表示开启tftp服务
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
# 保存配置文件
:wq!

# 重启xinetd服务
systemctl restart xinetd

测试tftp服务器

tftp不支持ls列出文件目录,只能通过get ‘文件全名’ 来下载文件

# 在另一条机器上安装tftp客户端
yum install tftp -y

# 连接tftp-server
tftp 192.168.10.11

# 从服务器上拉取文件(服务器上要有test文件)
tftp> get test文件

2安装配置vsftpd服务

需要将iso文件放在ftp服务器上


安装vsftpd

# 安装
yum install vsftpd -y

# 启动
systemctl start vsfptd

# 开机自启
systemctl enable vsftpd

配置vsftpd匿名访问

# 备份vsftpd配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

# 过滤vsftpd配置文件
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
#编辑主配置文件
vim /etc/vsftpd/vsftpd.conf

#是否允许匿名登陆
anonymous_enable=yes
anon_umask=022	#匿名用户上传文件的umask值
anon_upload_enable=YES	#允许匿名用户上传文件
anon_mkdir_write_enable=YES	#允许匿名用户创建目录
anon_other_write_enable=YES	#允许匿名用户修改目录名称或删除目录

# 给匿名目录/var/ftp/pub设置777权限
chmod -Rf 777 /var/ftp/pub

# 修改完配置文件需要重启vsftpd服务
systemctl restart vsftpd

将iso光盘镜像和应答文件复制到/var/ftp/pub

# 复制光盘镜像里的文件到pub
cp -rf /media/cdrom/* /var/ftp/pub/
# 复制应答文件到pub
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
# 为ks.cfg添加可读权限
chmod +r /var/ftp/pub/ks.cfg

编辑应答文件ks.cfg

ks.cfg 先手动安装第一台,确保所有参数都对,这样只需要修改下面参数即可。

vim ks.cfg
# 将cdrom安装方式修改为网络安装方式
##注释cdrom,添加url --url=ftp://xxxx
url --url=ftp://192.168.10.9

## 注意修改时区

3安装配置syslinux

SYSLinux是一个用于提供引导加载的服务程序(PXE)。与其说SYSLinux是一个服务程序,不如说是一个包含了很多引导文件的文件夹。在安装好SYSLinux服务程序后,/usr/share/syslinux目录中会出现很多引导文件。


安装syslinux

# 安装syslinux
yum install syslinux -y

挂载光盘

# 创建挂载点
mkdir -p /media/cdrom

# 挂载iso文件到挂载点
mount -o loop /media/CentOS-7-x86_64-DVD-1804.iso /media/cdrom

# 查看挂载状态
df -h

# 挂载为本地yum源
[local]               #库名称
name=local                   #名称描述
baseurl=file:///media/cdrom   #yum源目录,源地址为rpm的目录
gpgcheck=1             #检查GPG-KEY,0为不检查,1为检查
enabled=1              #是否用该yum源,0为禁用,1为使用
gpgcheck=0                   #gpgcheck=0时无需配置

把pxelinux.0复制到TFTP服务程序的默认目录中

# 进入tftpboot目录
cd /var/lib/tftpboot

# 从syslinux文件夹下将引导文件复制过来
cp /usr/share/syslinux/pxelinux.0 .

# 从光盘里复制内核相关文件
cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/

# 从光盘里复制启动图形菜单界面相关文件
cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg}  /var/lib/tftpboot

# 创建开机菜单
## 创建pxe配置目录
mkdir /var/lib/tftpboot/pxelinux.cfg/
## 复制开机菜单到pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

查看ftfpboot目录树

/var/lib/tftpboot/目录树    1 directory, 7 files
    ├── boot.msg        # Linux启动菜单配置信息,可手动修改。
    ├── initrd.img      # 内存虚拟文件系统。用来临时的引导硬件到内核vmlinuz。
    ├── pxelinux.0      # PXE的启动引导文件,
    ├── pxelinux.cfg    # 启动配置文件目录,手动创建,载入什么Linux内核文件来运行
    │   └── default     # /medir/cdrom/isolinux/isolinux.cfg
    ├── splash.jpg      # 图形界面的背景图片,图片格式 640*480  jpg/png
    ├── vesamenu.c32    # 菜单主程序,启动图形界面,不可修改。
    └── vmlinuz         # 是可引导的、压缩的内核文件

编辑pxe引导的启动配置文件


查看启动配置文件参数

# /var/lib/tftpboot/pxelinux.cfg/ default 
default vesamenu.c32            # 默认加载菜单主引导程序
#prompt 1
timeout 600                     # 设置超时时间
display boot.msg                # 显示主菜单
menu background splash.jpg                   # 设置菜单背景图片
menu title Welcome to CentOS 6.5!            # 设置菜单标题
menu color border 0 #ffffffff #00000000      # 设置菜单字体颜色
...      ...    ...
label linux                                            # 设置标签
  menu label ^Install or upgrade an existing system    # 设置菜单标签
  menu default                                         # 设置默认选择菜单
  kernel vmlinuz                       # 设置内核文件位置,根目录为TFTP服务器根目录
  append initrd=initrd.img ks=http://172.16.19.2/centos6.cfg        
                           # 设置启动时加载kickstart文件
  ...     ...    ....
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
..............

修改启动配置文件参数

vim /var/lib/tftpboot/pxelinux.cfg/default
# 修改第1行default vesamenu.c32 为default linux
default linux

# 修改大约第61行下的append参数的值为加载远程目录的kickstart文件
### ks.cfg 是应答文件 quiet是静默安装参数
append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

4开始无人值守自动安装

  • 0将pxe服务器的网线插到单独的(傻瓜)交换机上;
  • 1将客户机(裸机)设置为允许网卡启动,插在同一交换机上
  • 2客户机开机即可
  • 3等待安装完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值